### Patch: virtual System.Void Data::AfterDeserialize(ColossalFramework.IO.DataSerializer s) ### Replacement: static System.Void WaterManager+Data::WaterManager+Data.AfterDeserialize_Patch0(Data this, ColossalFramework.IO.DataSerializer s) IL_0000: Local var 0: WaterManager IL_0000: // start original IL_0000: call static LoadingManager ColossalFramework.Singleton`1::get_instance() IL_0005: ldfld LoadingProfiler LoadingManager::m_loadingProfilerSimulation IL_000A: ldarg.1 IL_000B: ldstr "WaterManager" IL_0010: callvirt System.Void LoadingProfiler::BeginAfterDeserialize(ColossalFramework.IO.DataSerializer s, System.String name) IL_0015: call static LoadingManager ColossalFramework.Singleton`1::get_instance() IL_001A: callvirt System.Void LoadingManager::WaitUntilEssentialScenesLoaded() IL_001F: call static WaterManager ColossalFramework.Singleton`1::get_instance() IL_0024: stloc.0 IL_0025: ldloc.0 IL_0026: ldc.i4.0 IL_0027: ldc.i4.0 IL_0028: ldc.i4 461 IL_002D: ldc.i4 461 IL_0032: callvirt System.Void WaterManager::AreaModified(System.Int32 minX, System.Int32 minZ, System.Int32 maxX, System.Int32 maxZ) IL_0037: call static LoadingManager ColossalFramework.Singleton`1::get_instance() IL_003C: ldfld LoadingProfiler LoadingManager::m_loadingProfilerSimulation IL_0041: ldarg.1 IL_0042: ldstr "WaterManager" IL_0047: callvirt System.Void LoadingProfiler::EndAfterDeserialize(ColossalFramework.IO.DataSerializer s, System.String name) IL_004C: // end original IL_004C: ret DONE ### Patch: virtual System.Void Data::Deserialize(ColossalFramework.IO.DataSerializer s) ### Replacement: static System.Void WaterManager+Data::WaterManager+Data.Deserialize_Patch0(Data this, ColossalFramework.IO.DataSerializer s) IL_0000: Local var 0: WaterManager IL_0000: Local var 1: WaterManager/Cell[] IL_0000: Local var 2: System.Int32 IL_0000: Local var 3: ColossalFramework.IO.EncodedArray/Byte IL_0000: Local var 4: System.Int32 IL_0000: Local var 5: ColossalFramework.IO.EncodedArray/Byte IL_0000: Local var 6: System.Int32 IL_0000: Local var 7: System.Int32 IL_0000: Local var 8: ColossalFramework.IO.EncodedArray/Short IL_0000: Local var 9: System.Int32 IL_0000: Local var 10: ColossalFramework.IO.EncodedArray/Short IL_0000: Local var 11: System.Int32 IL_0000: Local var 12: ColossalFramework.IO.EncodedArray/Short IL_0000: Local var 13: System.Int32 IL_0000: Local var 14: System.Int32 IL_0000: Local var 15: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 16: System.Int32 IL_0000: Local var 17: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 18: System.Int32 IL_0000: Local var 19: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 20: System.Int32 IL_0000: Local var 21: System.Int32 IL_0000: Local var 22: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 23: System.Int32 IL_0000: Local var 24: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 25: System.Int32 IL_0000: Local var 26: System.Int32 IL_0000: Local var 27: ColossalFramework.IO.EncodedArray/Bool IL_0000: Local var 28: System.Int32 IL_0000: Local var 29: ColossalFramework.IO.EncodedArray/Bool IL_0000: Local var 30: System.Int32 IL_0000: Local var 31: ColossalFramework.IO.EncodedArray/Bool IL_0000: Local var 32: System.Int32 IL_0000: Local var 33: System.Int32 IL_0000: Local var 34: ColossalFramework.IO.EncodedArray/Bool IL_0000: Local var 35: System.Int32 IL_0000: Local var 36: ColossalFramework.IO.EncodedArray/Bool IL_0000: Local var 37: System.Int32 IL_0000: Local var 38: ColossalFramework.IO.EncodedArray/Bool IL_0000: Local var 39: System.Int32 IL_0000: Local var 40: System.Int32 IL_0000: Local var 41: ColossalFramework.IO.EncodedArray/Byte IL_0000: Local var 42: System.Int32 IL_0000: Local var 43: System.Int32 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Int32 IL_0000: Local var 46: System.Int32 IL_0000: Local var 47: System.Int32 IL_0000: Local var 48: System.Int32 IL_0000: Local var 49: System.Int32 IL_0000: Local var 50: System.Int32 IL_0000: Local var 51: System.Int32 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: WaterManager/Node IL_0000: Local var 55: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 56: System.Int32 IL_0000: Local var 57: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 58: System.Int32 IL_0000: Local var 59: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 60: System.Int32 IL_0000: Local var 61: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 62: System.Int32 IL_0000: Local var 63: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 64: System.Int32 IL_0000: Local var 65: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 66: System.Int32 IL_0000: Local var 67: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 68: System.Int32 IL_0000: Local var 69: System.Int32 IL_0000: Local var 70: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 71: System.Int32 IL_0000: Local var 72: System.Int32 IL_0000: Local var 73: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 74: System.Int32 IL_0000: Local var 75: System.Int32 IL_0000: Local var 76: ColossalFramework.IO.EncodedArray/Byte IL_0000: Local var 77: System.Int32 IL_0000: Local var 78: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 79: System.Int32 IL_0000: Local var 80: ColossalFramework.IO.EncodedArray/Bool IL_0000: Local var 81: System.Int32 IL_0000: Local var 82: System.Int32 IL_0000: Local var 83: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 84: System.Int32 IL_0000: Local var 85: System.Int32 IL_0000: // start original IL_0000: call static LoadingManager ColossalFramework.Singleton`1::get_instance() IL_0005: ldfld LoadingProfiler LoadingManager::m_loadingProfilerSimulation IL_000A: ldarg.1 IL_000B: ldstr "WaterManager" IL_0010: callvirt System.Void LoadingProfiler::BeginDeserialize(ColossalFramework.IO.DataSerializer s, System.String name) IL_0015: call static WaterManager ColossalFramework.Singleton`1::get_instance() IL_001A: stloc.0 IL_001B: ldloc.0 IL_001C: ldfld Cell[] WaterManager::m_waterGrid IL_0021: stloc.1 IL_0022: ldloc.1 IL_0023: ldlen IL_0024: conv.i4 IL_0025: stloc.2 IL_0026: ldarg.1 IL_0027: call static ColossalFramework.IO.Byte ColossalFramework.IO.Byte::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_002C: stloc.3 IL_002D: ldc.i4.0 IL_002E: stloc.s 4 (System.Int32) IL_0030: br => Label0 IL_0035: Label1 IL_0035: ldloc.1 IL_0036: ldloc.s 4 (System.Int32) IL_0038: ldelema WaterManager+Cell IL_003D: ldloc.3 IL_003E: callvirt System.Byte ColossalFramework.IO.Byte::Read() IL_0043: stfld System.Byte Cell::m_conductivity IL_0048: ldloc.s 4 (System.Int32) IL_004A: ldc.i4.1 IL_004B: add IL_004C: stloc.s 4 (System.Int32) IL_004E: Label0 IL_004E: ldloc.s 4 (System.Int32) IL_0050: ldloc.2 IL_0051: blt => Label1 IL_0056: ldloc.3 IL_0057: callvirt System.Void ColossalFramework.IO.Byte::EndRead() IL_005C: ldarg.1 IL_005D: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_0062: ldc.i4 227 IL_0067: blt.un => Label2 IL_006C: ldarg.1 IL_006D: call static ColossalFramework.IO.Byte ColossalFramework.IO.Byte::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_0072: stloc.s 5 (ColossalFramework.IO.EncodedArray+Byte) IL_0074: ldc.i4.0 IL_0075: stloc.s 6 (System.Int32) IL_0077: br => Label3 IL_007C: Label4 IL_007C: ldloc.1 IL_007D: ldloc.s 6 (System.Int32) IL_007F: ldelema WaterManager+Cell IL_0084: ldloc.s 5 (ColossalFramework.IO.EncodedArray+Byte) IL_0086: callvirt System.Byte ColossalFramework.IO.Byte::Read() IL_008B: stfld System.Byte Cell::m_conductivity2 IL_0090: ldloc.s 6 (System.Int32) IL_0092: ldc.i4.1 IL_0093: add IL_0094: stloc.s 6 (System.Int32) IL_0096: Label3 IL_0096: ldloc.s 6 (System.Int32) IL_0098: ldloc.2 IL_0099: blt => Label4 IL_009E: ldloc.s 5 (ColossalFramework.IO.EncodedArray+Byte) IL_00A0: callvirt System.Void ColossalFramework.IO.Byte::EndRead() IL_00A5: br => Label5 IL_00AA: Label2 IL_00AA: ldc.i4.0 IL_00AB: stloc.s 7 (System.Int32) IL_00AD: br => Label6 IL_00B2: Label7 IL_00B2: ldloc.1 IL_00B3: ldloc.s 7 (System.Int32) IL_00B5: ldelema WaterManager+Cell IL_00BA: ldc.i4.0 IL_00BB: stfld System.Byte Cell::m_conductivity2 IL_00C0: ldloc.s 7 (System.Int32) IL_00C2: ldc.i4.1 IL_00C3: add IL_00C4: stloc.s 7 (System.Int32) IL_00C6: Label6 IL_00C6: ldloc.s 7 (System.Int32) IL_00C8: ldloc.2 IL_00C9: blt => Label7 IL_00CE: Label5 IL_00CE: ldarg.1 IL_00CF: call static ColossalFramework.IO.Short ColossalFramework.IO.Short::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_00D4: stloc.s 8 (ColossalFramework.IO.EncodedArray+Short) IL_00D6: ldc.i4.0 IL_00D7: stloc.s 9 (System.Int32) IL_00D9: br => Label8 IL_00DE: Label11 IL_00DE: ldloc.1 IL_00DF: ldloc.s 9 (System.Int32) IL_00E1: ldelema WaterManager+Cell IL_00E6: ldfld System.Byte Cell::m_conductivity IL_00EB: brfalse => Label9 IL_00F0: ldloc.1 IL_00F1: ldloc.s 9 (System.Int32) IL_00F3: ldelema WaterManager+Cell IL_00F8: ldloc.s 8 (ColossalFramework.IO.EncodedArray+Short) IL_00FA: callvirt System.Int16 ColossalFramework.IO.Short::Read() IL_00FF: stfld System.Int16 Cell::m_currentWaterPressure IL_0104: br => Label10 IL_0109: Label9 IL_0109: ldloc.1 IL_010A: ldloc.s 9 (System.Int32) IL_010C: ldelema WaterManager+Cell IL_0111: ldc.i4.0 IL_0112: stfld System.Int16 Cell::m_currentWaterPressure IL_0117: Label10 IL_0117: ldloc.s 9 (System.Int32) IL_0119: ldc.i4.1 IL_011A: add IL_011B: stloc.s 9 (System.Int32) IL_011D: Label8 IL_011D: ldloc.s 9 (System.Int32) IL_011F: ldloc.2 IL_0120: blt => Label11 IL_0125: ldloc.s 8 (ColossalFramework.IO.EncodedArray+Short) IL_0127: callvirt System.Void ColossalFramework.IO.Short::EndRead() IL_012C: ldarg.1 IL_012D: call static ColossalFramework.IO.Short ColossalFramework.IO.Short::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_0132: stloc.s 10 (ColossalFramework.IO.EncodedArray+Short) IL_0134: ldc.i4.0 IL_0135: stloc.s 11 (System.Int32) IL_0137: br => Label12 IL_013C: Label15 IL_013C: ldloc.1 IL_013D: ldloc.s 11 (System.Int32) IL_013F: ldelema WaterManager+Cell IL_0144: ldfld System.Byte Cell::m_conductivity IL_0149: brfalse => Label13 IL_014E: ldloc.1 IL_014F: ldloc.s 11 (System.Int32) IL_0151: ldelema WaterManager+Cell IL_0156: ldloc.s 10 (ColossalFramework.IO.EncodedArray+Short) IL_0158: callvirt System.Int16 ColossalFramework.IO.Short::Read() IL_015D: stfld System.Int16 Cell::m_currentSewagePressure IL_0162: br => Label14 IL_0167: Label13 IL_0167: ldloc.1 IL_0168: ldloc.s 11 (System.Int32) IL_016A: ldelema WaterManager+Cell IL_016F: ldc.i4.0 IL_0170: stfld System.Int16 Cell::m_currentSewagePressure IL_0175: Label14 IL_0175: ldloc.s 11 (System.Int32) IL_0177: ldc.i4.1 IL_0178: add IL_0179: stloc.s 11 (System.Int32) IL_017B: Label12 IL_017B: ldloc.s 11 (System.Int32) IL_017D: ldloc.2 IL_017E: blt => Label15 IL_0183: ldloc.s 10 (ColossalFramework.IO.EncodedArray+Short) IL_0185: callvirt System.Void ColossalFramework.IO.Short::EndRead() IL_018A: ldarg.1 IL_018B: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_0190: ldc.i4 227 IL_0195: blt.un => Label16 IL_019A: ldarg.1 IL_019B: call static ColossalFramework.IO.Short ColossalFramework.IO.Short::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_01A0: stloc.s 12 (ColossalFramework.IO.EncodedArray+Short) IL_01A2: ldc.i4.0 IL_01A3: stloc.s 13 (System.Int32) IL_01A5: br => Label17 IL_01AA: Label20 IL_01AA: ldloc.1 IL_01AB: ldloc.s 13 (System.Int32) IL_01AD: ldelema WaterManager+Cell IL_01B2: ldfld System.Byte Cell::m_conductivity2 IL_01B7: brfalse => Label18 IL_01BC: ldloc.1 IL_01BD: ldloc.s 13 (System.Int32) IL_01BF: ldelema WaterManager+Cell IL_01C4: ldloc.s 12 (ColossalFramework.IO.EncodedArray+Short) IL_01C6: callvirt System.Int16 ColossalFramework.IO.Short::Read() IL_01CB: stfld System.Int16 Cell::m_currentHeatingPressure IL_01D0: br => Label19 IL_01D5: Label18 IL_01D5: ldloc.1 IL_01D6: ldloc.s 13 (System.Int32) IL_01D8: ldelema WaterManager+Cell IL_01DD: ldc.i4.0 IL_01DE: stfld System.Int16 Cell::m_currentHeatingPressure IL_01E3: Label19 IL_01E3: ldloc.s 13 (System.Int32) IL_01E5: ldc.i4.1 IL_01E6: add IL_01E7: stloc.s 13 (System.Int32) IL_01E9: Label17 IL_01E9: ldloc.s 13 (System.Int32) IL_01EB: ldloc.2 IL_01EC: blt => Label20 IL_01F1: ldloc.s 12 (ColossalFramework.IO.EncodedArray+Short) IL_01F3: callvirt System.Void ColossalFramework.IO.Short::EndRead() IL_01F8: br => Label21 IL_01FD: Label16 IL_01FD: ldc.i4.0 IL_01FE: stloc.s 14 (System.Int32) IL_0200: br => Label22 IL_0205: Label23 IL_0205: ldloc.1 IL_0206: ldloc.s 14 (System.Int32) IL_0208: ldelema WaterManager+Cell IL_020D: ldc.i4.0 IL_020E: stfld System.Int16 Cell::m_currentHeatingPressure IL_0213: ldloc.s 14 (System.Int32) IL_0215: ldc.i4.1 IL_0216: add IL_0217: stloc.s 14 (System.Int32) IL_0219: Label22 IL_0219: ldloc.s 14 (System.Int32) IL_021B: ldloc.2 IL_021C: blt => Label23 IL_0221: Label21 IL_0221: ldarg.1 IL_0222: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_0227: stloc.s 15 (ColossalFramework.IO.EncodedArray+UShort) IL_0229: ldc.i4.0 IL_022A: stloc.s 16 (System.Int32) IL_022C: br => Label24 IL_0231: Label27 IL_0231: ldloc.1 IL_0232: ldloc.s 16 (System.Int32) IL_0234: ldelema WaterManager+Cell IL_0239: ldfld System.Byte Cell::m_conductivity IL_023E: brfalse => Label25 IL_0243: ldloc.1 IL_0244: ldloc.s 16 (System.Int32) IL_0246: ldelema WaterManager+Cell IL_024B: ldloc.s 15 (ColossalFramework.IO.EncodedArray+UShort) IL_024D: callvirt System.UInt16 ColossalFramework.IO.UShort::Read() IL_0252: stfld System.UInt16 Cell::m_waterPulseGroup IL_0257: br => Label26 IL_025C: Label25 IL_025C: ldloc.1 IL_025D: ldloc.s 16 (System.Int32) IL_025F: ldelema WaterManager+Cell IL_0264: ldc.i4 65535 IL_0269: stfld System.UInt16 Cell::m_waterPulseGroup IL_026E: Label26 IL_026E: ldloc.s 16 (System.Int32) IL_0270: ldc.i4.1 IL_0271: add IL_0272: stloc.s 16 (System.Int32) IL_0274: Label24 IL_0274: ldloc.s 16 (System.Int32) IL_0276: ldloc.2 IL_0277: blt => Label27 IL_027C: ldloc.s 15 (ColossalFramework.IO.EncodedArray+UShort) IL_027E: callvirt System.Void ColossalFramework.IO.UShort::EndRead() IL_0283: ldarg.1 IL_0284: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_0289: stloc.s 17 (ColossalFramework.IO.EncodedArray+UShort) IL_028B: ldc.i4.0 IL_028C: stloc.s 18 (System.Int32) IL_028E: br => Label28 IL_0293: Label31 IL_0293: ldloc.1 IL_0294: ldloc.s 18 (System.Int32) IL_0296: ldelema WaterManager+Cell IL_029B: ldfld System.Byte Cell::m_conductivity IL_02A0: brfalse => Label29 IL_02A5: ldloc.1 IL_02A6: ldloc.s 18 (System.Int32) IL_02A8: ldelema WaterManager+Cell IL_02AD: ldloc.s 17 (ColossalFramework.IO.EncodedArray+UShort) IL_02AF: callvirt System.UInt16 ColossalFramework.IO.UShort::Read() IL_02B4: stfld System.UInt16 Cell::m_sewagePulseGroup IL_02B9: br => Label30 IL_02BE: Label29 IL_02BE: ldloc.1 IL_02BF: ldloc.s 18 (System.Int32) IL_02C1: ldelema WaterManager+Cell IL_02C6: ldc.i4 65535 IL_02CB: stfld System.UInt16 Cell::m_sewagePulseGroup IL_02D0: Label30 IL_02D0: ldloc.s 18 (System.Int32) IL_02D2: ldc.i4.1 IL_02D3: add IL_02D4: stloc.s 18 (System.Int32) IL_02D6: Label28 IL_02D6: ldloc.s 18 (System.Int32) IL_02D8: ldloc.2 IL_02D9: blt => Label31 IL_02DE: ldloc.s 17 (ColossalFramework.IO.EncodedArray+UShort) IL_02E0: callvirt System.Void ColossalFramework.IO.UShort::EndRead() IL_02E5: ldarg.1 IL_02E6: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_02EB: ldc.i4 227 IL_02F0: blt.un => Label32 IL_02F5: ldarg.1 IL_02F6: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_02FB: stloc.s 19 (ColossalFramework.IO.EncodedArray+UShort) IL_02FD: ldc.i4.0 IL_02FE: stloc.s 20 (System.Int32) IL_0300: br => Label33 IL_0305: Label36 IL_0305: ldloc.1 IL_0306: ldloc.s 20 (System.Int32) IL_0308: ldelema WaterManager+Cell IL_030D: ldfld System.Byte Cell::m_conductivity2 IL_0312: brfalse => Label34 IL_0317: ldloc.1 IL_0318: ldloc.s 20 (System.Int32) IL_031A: ldelema WaterManager+Cell IL_031F: ldloc.s 19 (ColossalFramework.IO.EncodedArray+UShort) IL_0321: callvirt System.UInt16 ColossalFramework.IO.UShort::Read() IL_0326: stfld System.UInt16 Cell::m_heatingPulseGroup IL_032B: br => Label35 IL_0330: Label34 IL_0330: ldloc.1 IL_0331: ldloc.s 20 (System.Int32) IL_0333: ldelema WaterManager+Cell IL_0338: ldc.i4 65535 IL_033D: stfld System.UInt16 Cell::m_heatingPulseGroup IL_0342: Label35 IL_0342: ldloc.s 20 (System.Int32) IL_0344: ldc.i4.1 IL_0345: add IL_0346: stloc.s 20 (System.Int32) IL_0348: Label33 IL_0348: ldloc.s 20 (System.Int32) IL_034A: ldloc.2 IL_034B: blt => Label36 IL_0350: ldloc.s 19 (ColossalFramework.IO.EncodedArray+UShort) IL_0352: callvirt System.Void ColossalFramework.IO.UShort::EndRead() IL_0357: br => Label37 IL_035C: Label32 IL_035C: ldc.i4.0 IL_035D: stloc.s 21 (System.Int32) IL_035F: br => Label38 IL_0364: Label39 IL_0364: ldloc.1 IL_0365: ldloc.s 21 (System.Int32) IL_0367: ldelema WaterManager+Cell IL_036C: ldc.i4 65535 IL_0371: stfld System.UInt16 Cell::m_heatingPulseGroup IL_0376: ldloc.s 21 (System.Int32) IL_0378: ldc.i4.1 IL_0379: add IL_037A: stloc.s 21 (System.Int32) IL_037C: Label38 IL_037C: ldloc.s 21 (System.Int32) IL_037E: ldloc.2 IL_037F: blt => Label39 IL_0384: Label37 IL_0384: ldarg.1 IL_0385: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_038A: ldc.i4.s 73 IL_038C: blt.un => Label40 IL_0391: ldarg.1 IL_0392: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_0397: stloc.s 22 (ColossalFramework.IO.EncodedArray+UShort) IL_0399: ldc.i4.0 IL_039A: stloc.s 23 (System.Int32) IL_039C: br => Label41 IL_03A1: Label44 IL_03A1: ldloc.1 IL_03A2: ldloc.s 23 (System.Int32) IL_03A4: ldelema WaterManager+Cell IL_03A9: ldfld System.Byte Cell::m_conductivity IL_03AE: brfalse => Label42 IL_03B3: ldloc.1 IL_03B4: ldloc.s 23 (System.Int32) IL_03B6: ldelema WaterManager+Cell IL_03BB: ldloc.s 22 (ColossalFramework.IO.EncodedArray+UShort) IL_03BD: callvirt System.UInt16 ColossalFramework.IO.UShort::Read() IL_03C2: stfld System.UInt16 Cell::m_closestPipeSegment IL_03C7: br => Label43 IL_03CC: Label42 IL_03CC: ldloc.1 IL_03CD: ldloc.s 23 (System.Int32) IL_03CF: ldelema WaterManager+Cell IL_03D4: ldc.i4.0 IL_03D5: stfld System.UInt16 Cell::m_closestPipeSegment IL_03DA: Label43 IL_03DA: ldloc.s 23 (System.Int32) IL_03DC: ldc.i4.1 IL_03DD: add IL_03DE: stloc.s 23 (System.Int32) IL_03E0: Label41 IL_03E0: ldloc.s 23 (System.Int32) IL_03E2: ldloc.2 IL_03E3: blt => Label44 IL_03E8: ldloc.s 22 (ColossalFramework.IO.EncodedArray+UShort) IL_03EA: callvirt System.Void ColossalFramework.IO.UShort::EndRead() IL_03EF: ldloc.0 IL_03F0: ldc.i4.0 IL_03F1: stfld System.Boolean WaterManager::m_refreshGrid IL_03F6: br => Label45 IL_03FB: Label40 IL_03FB: ldloc.0 IL_03FC: ldc.i4.1 IL_03FD: stfld System.Boolean WaterManager::m_refreshGrid IL_0402: Label45 IL_0402: ldarg.1 IL_0403: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_0408: ldc.i4 227 IL_040D: blt.un => Label46 IL_0412: ldarg.1 IL_0413: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_0418: stloc.s 24 (ColossalFramework.IO.EncodedArray+UShort) IL_041A: ldc.i4.0 IL_041B: stloc.s 25 (System.Int32) IL_041D: br => Label47 IL_0422: Label50 IL_0422: ldloc.1 IL_0423: ldloc.s 25 (System.Int32) IL_0425: ldelema WaterManager+Cell IL_042A: ldfld System.Byte Cell::m_conductivity2 IL_042F: brfalse => Label48 IL_0434: ldloc.1 IL_0435: ldloc.s 25 (System.Int32) IL_0437: ldelema WaterManager+Cell IL_043C: ldloc.s 24 (ColossalFramework.IO.EncodedArray+UShort) IL_043E: callvirt System.UInt16 ColossalFramework.IO.UShort::Read() IL_0443: stfld System.UInt16 Cell::m_closestPipeSegment2 IL_0448: br => Label49 IL_044D: Label48 IL_044D: ldloc.1 IL_044E: ldloc.s 25 (System.Int32) IL_0450: ldelema WaterManager+Cell IL_0455: ldc.i4.0 IL_0456: stfld System.UInt16 Cell::m_closestPipeSegment2 IL_045B: Label49 IL_045B: ldloc.s 25 (System.Int32) IL_045D: ldc.i4.1 IL_045E: add IL_045F: stloc.s 25 (System.Int32) IL_0461: Label47 IL_0461: ldloc.s 25 (System.Int32) IL_0463: ldloc.2 IL_0464: blt => Label50 IL_0469: ldloc.s 24 (ColossalFramework.IO.EncodedArray+UShort) IL_046B: callvirt System.Void ColossalFramework.IO.UShort::EndRead() IL_0470: br => Label51 IL_0475: Label46 IL_0475: ldc.i4.0 IL_0476: stloc.s 26 (System.Int32) IL_0478: br => Label52 IL_047D: Label53 IL_047D: ldloc.1 IL_047E: ldloc.s 26 (System.Int32) IL_0480: ldelema WaterManager+Cell IL_0485: ldc.i4.0 IL_0486: stfld System.UInt16 Cell::m_closestPipeSegment2 IL_048B: ldloc.s 26 (System.Int32) IL_048D: ldc.i4.1 IL_048E: add IL_048F: stloc.s 26 (System.Int32) IL_0491: Label52 IL_0491: ldloc.s 26 (System.Int32) IL_0493: ldloc.2 IL_0494: blt => Label53 IL_0499: Label51 IL_0499: ldarg.1 IL_049A: call static ColossalFramework.IO.Bool ColossalFramework.IO.Bool::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_049F: stloc.s 27 (ColossalFramework.IO.EncodedArray+Bool) IL_04A1: ldc.i4.0 IL_04A2: stloc.s 28 (System.Int32) IL_04A4: br => Label54 IL_04A9: Label57 IL_04A9: ldloc.1 IL_04AA: ldloc.s 28 (System.Int32) IL_04AC: ldelema WaterManager+Cell IL_04B1: ldfld System.Byte Cell::m_conductivity IL_04B6: brfalse => Label55 IL_04BB: ldloc.1 IL_04BC: ldloc.s 28 (System.Int32) IL_04BE: ldelema WaterManager+Cell IL_04C3: ldloc.s 27 (ColossalFramework.IO.EncodedArray+Bool) IL_04C5: callvirt System.Boolean ColossalFramework.IO.Bool::Read() IL_04CA: stfld System.Boolean Cell::m_hasWater IL_04CF: br => Label56 IL_04D4: Label55 IL_04D4: ldloc.1 IL_04D5: ldloc.s 28 (System.Int32) IL_04D7: ldelema WaterManager+Cell IL_04DC: ldc.i4.0 IL_04DD: stfld System.Boolean Cell::m_hasWater IL_04E2: Label56 IL_04E2: ldloc.s 28 (System.Int32) IL_04E4: ldc.i4.1 IL_04E5: add IL_04E6: stloc.s 28 (System.Int32) IL_04E8: Label54 IL_04E8: ldloc.s 28 (System.Int32) IL_04EA: ldloc.2 IL_04EB: blt => Label57 IL_04F0: ldloc.s 27 (ColossalFramework.IO.EncodedArray+Bool) IL_04F2: callvirt System.Void ColossalFramework.IO.Bool::EndRead() IL_04F7: ldarg.1 IL_04F8: call static ColossalFramework.IO.Bool ColossalFramework.IO.Bool::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_04FD: stloc.s 29 (ColossalFramework.IO.EncodedArray+Bool) IL_04FF: ldc.i4.0 IL_0500: stloc.s 30 (System.Int32) IL_0502: br => Label58 IL_0507: Label61 IL_0507: ldloc.1 IL_0508: ldloc.s 30 (System.Int32) IL_050A: ldelema WaterManager+Cell IL_050F: ldfld System.Byte Cell::m_conductivity IL_0514: brfalse => Label59 IL_0519: ldloc.1 IL_051A: ldloc.s 30 (System.Int32) IL_051C: ldelema WaterManager+Cell IL_0521: ldloc.s 29 (ColossalFramework.IO.EncodedArray+Bool) IL_0523: callvirt System.Boolean ColossalFramework.IO.Bool::Read() IL_0528: stfld System.Boolean Cell::m_hasSewage IL_052D: br => Label60 IL_0532: Label59 IL_0532: ldloc.1 IL_0533: ldloc.s 30 (System.Int32) IL_0535: ldelema WaterManager+Cell IL_053A: ldc.i4.0 IL_053B: stfld System.Boolean Cell::m_hasSewage IL_0540: Label60 IL_0540: ldloc.s 30 (System.Int32) IL_0542: ldc.i4.1 IL_0543: add IL_0544: stloc.s 30 (System.Int32) IL_0546: Label58 IL_0546: ldloc.s 30 (System.Int32) IL_0548: ldloc.2 IL_0549: blt => Label61 IL_054E: ldloc.s 29 (ColossalFramework.IO.EncodedArray+Bool) IL_0550: callvirt System.Void ColossalFramework.IO.Bool::EndRead() IL_0555: ldarg.1 IL_0556: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_055B: ldc.i4 227 IL_0560: blt.un => Label62 IL_0565: ldarg.1 IL_0566: call static ColossalFramework.IO.Bool ColossalFramework.IO.Bool::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_056B: stloc.s 31 (ColossalFramework.IO.EncodedArray+Bool) IL_056D: ldc.i4.0 IL_056E: stloc.s 32 (System.Int32) IL_0570: br => Label63 IL_0575: Label66 IL_0575: ldloc.1 IL_0576: ldloc.s 32 (System.Int32) IL_0578: ldelema WaterManager+Cell IL_057D: ldfld System.Byte Cell::m_conductivity2 IL_0582: brfalse => Label64 IL_0587: ldloc.1 IL_0588: ldloc.s 32 (System.Int32) IL_058A: ldelema WaterManager+Cell IL_058F: ldloc.s 31 (ColossalFramework.IO.EncodedArray+Bool) IL_0591: callvirt System.Boolean ColossalFramework.IO.Bool::Read() IL_0596: stfld System.Boolean Cell::m_hasHeating IL_059B: br => Label65 IL_05A0: Label64 IL_05A0: ldloc.1 IL_05A1: ldloc.s 32 (System.Int32) IL_05A3: ldelema WaterManager+Cell IL_05A8: ldc.i4.0 IL_05A9: stfld System.Boolean Cell::m_hasHeating IL_05AE: Label65 IL_05AE: ldloc.s 32 (System.Int32) IL_05B0: ldc.i4.1 IL_05B1: add IL_05B2: stloc.s 32 (System.Int32) IL_05B4: Label63 IL_05B4: ldloc.s 32 (System.Int32) IL_05B6: ldloc.2 IL_05B7: blt => Label66 IL_05BC: ldloc.s 31 (ColossalFramework.IO.EncodedArray+Bool) IL_05BE: callvirt System.Void ColossalFramework.IO.Bool::EndRead() IL_05C3: br => Label67 IL_05C8: Label62 IL_05C8: ldc.i4.0 IL_05C9: stloc.s 33 (System.Int32) IL_05CB: br => Label68 IL_05D0: Label69 IL_05D0: ldloc.1 IL_05D1: ldloc.s 33 (System.Int32) IL_05D3: ldelema WaterManager+Cell IL_05D8: ldc.i4.0 IL_05D9: stfld System.Boolean Cell::m_hasHeating IL_05DE: ldloc.s 33 (System.Int32) IL_05E0: ldc.i4.1 IL_05E1: add IL_05E2: stloc.s 33 (System.Int32) IL_05E4: Label68 IL_05E4: ldloc.s 33 (System.Int32) IL_05E6: ldloc.2 IL_05E7: blt => Label69 IL_05EC: Label67 IL_05EC: ldarg.1 IL_05ED: call static ColossalFramework.IO.Bool ColossalFramework.IO.Bool::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_05F2: stloc.s 34 (ColossalFramework.IO.EncodedArray+Bool) IL_05F4: ldc.i4.0 IL_05F5: stloc.s 35 (System.Int32) IL_05F7: br => Label70 IL_05FC: Label73 IL_05FC: ldloc.1 IL_05FD: ldloc.s 35 (System.Int32) IL_05FF: ldelema WaterManager+Cell IL_0604: ldfld System.Byte Cell::m_conductivity IL_0609: brfalse => Label71 IL_060E: ldloc.1 IL_060F: ldloc.s 35 (System.Int32) IL_0611: ldelema WaterManager+Cell IL_0616: ldloc.s 34 (ColossalFramework.IO.EncodedArray+Bool) IL_0618: callvirt System.Boolean ColossalFramework.IO.Bool::Read() IL_061D: stfld System.Boolean Cell::m_tmpHasWater IL_0622: br => Label72 IL_0627: Label71 IL_0627: ldloc.1 IL_0628: ldloc.s 35 (System.Int32) IL_062A: ldelema WaterManager+Cell IL_062F: ldc.i4.0 IL_0630: stfld System.Boolean Cell::m_tmpHasWater IL_0635: Label72 IL_0635: ldloc.s 35 (System.Int32) IL_0637: ldc.i4.1 IL_0638: add IL_0639: stloc.s 35 (System.Int32) IL_063B: Label70 IL_063B: ldloc.s 35 (System.Int32) IL_063D: ldloc.2 IL_063E: blt => Label73 IL_0643: ldloc.s 34 (ColossalFramework.IO.EncodedArray+Bool) IL_0645: callvirt System.Void ColossalFramework.IO.Bool::EndRead() IL_064A: ldarg.1 IL_064B: call static ColossalFramework.IO.Bool ColossalFramework.IO.Bool::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_0650: stloc.s 36 (ColossalFramework.IO.EncodedArray+Bool) IL_0652: ldc.i4.0 IL_0653: stloc.s 37 (System.Int32) IL_0655: br => Label74 IL_065A: Label77 IL_065A: ldloc.1 IL_065B: ldloc.s 37 (System.Int32) IL_065D: ldelema WaterManager+Cell IL_0662: ldfld System.Byte Cell::m_conductivity IL_0667: brfalse => Label75 IL_066C: ldloc.1 IL_066D: ldloc.s 37 (System.Int32) IL_066F: ldelema WaterManager+Cell IL_0674: ldloc.s 36 (ColossalFramework.IO.EncodedArray+Bool) IL_0676: callvirt System.Boolean ColossalFramework.IO.Bool::Read() IL_067B: stfld System.Boolean Cell::m_tmpHasSewage IL_0680: br => Label76 IL_0685: Label75 IL_0685: ldloc.1 IL_0686: ldloc.s 37 (System.Int32) IL_0688: ldelema WaterManager+Cell IL_068D: ldc.i4.0 IL_068E: stfld System.Boolean Cell::m_tmpHasSewage IL_0693: Label76 IL_0693: ldloc.s 37 (System.Int32) IL_0695: ldc.i4.1 IL_0696: add IL_0697: stloc.s 37 (System.Int32) IL_0699: Label74 IL_0699: ldloc.s 37 (System.Int32) IL_069B: ldloc.2 IL_069C: blt => Label77 IL_06A1: ldloc.s 36 (ColossalFramework.IO.EncodedArray+Bool) IL_06A3: callvirt System.Void ColossalFramework.IO.Bool::EndRead() IL_06A8: ldarg.1 IL_06A9: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_06AE: ldc.i4 227 IL_06B3: blt.un => Label78 IL_06B8: ldarg.1 IL_06B9: call static ColossalFramework.IO.Bool ColossalFramework.IO.Bool::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_06BE: stloc.s 38 (ColossalFramework.IO.EncodedArray+Bool) IL_06C0: ldc.i4.0 IL_06C1: stloc.s 39 (System.Int32) IL_06C3: br => Label79 IL_06C8: Label82 IL_06C8: ldloc.1 IL_06C9: ldloc.s 39 (System.Int32) IL_06CB: ldelema WaterManager+Cell IL_06D0: ldfld System.Byte Cell::m_conductivity2 IL_06D5: brfalse => Label80 IL_06DA: ldloc.1 IL_06DB: ldloc.s 39 (System.Int32) IL_06DD: ldelema WaterManager+Cell IL_06E2: ldloc.s 38 (ColossalFramework.IO.EncodedArray+Bool) IL_06E4: callvirt System.Boolean ColossalFramework.IO.Bool::Read() IL_06E9: stfld System.Boolean Cell::m_tmpHasHeating IL_06EE: br => Label81 IL_06F3: Label80 IL_06F3: ldloc.1 IL_06F4: ldloc.s 39 (System.Int32) IL_06F6: ldelema WaterManager+Cell IL_06FB: ldc.i4.0 IL_06FC: stfld System.Boolean Cell::m_tmpHasHeating IL_0701: Label81 IL_0701: ldloc.s 39 (System.Int32) IL_0703: ldc.i4.1 IL_0704: add IL_0705: stloc.s 39 (System.Int32) IL_0707: Label79 IL_0707: ldloc.s 39 (System.Int32) IL_0709: ldloc.2 IL_070A: blt => Label82 IL_070F: ldloc.s 38 (ColossalFramework.IO.EncodedArray+Bool) IL_0711: callvirt System.Void ColossalFramework.IO.Bool::EndRead() IL_0716: br => Label83 IL_071B: Label78 IL_071B: ldc.i4.0 IL_071C: stloc.s 40 (System.Int32) IL_071E: br => Label84 IL_0723: Label85 IL_0723: ldloc.1 IL_0724: ldloc.s 40 (System.Int32) IL_0726: ldelema WaterManager+Cell IL_072B: ldc.i4.0 IL_072C: stfld System.Boolean Cell::m_tmpHasHeating IL_0731: ldloc.s 40 (System.Int32) IL_0733: ldc.i4.1 IL_0734: add IL_0735: stloc.s 40 (System.Int32) IL_0737: Label84 IL_0737: ldloc.s 40 (System.Int32) IL_0739: ldloc.2 IL_073A: blt => Label85 IL_073F: Label83 IL_073F: ldarg.1 IL_0740: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_0745: ldc.i4.s 23 IL_0747: blt.un => Label86 IL_074C: ldarg.1 IL_074D: call static ColossalFramework.IO.Byte ColossalFramework.IO.Byte::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_0752: stloc.s 41 (ColossalFramework.IO.EncodedArray+Byte) IL_0754: ldc.i4.0 IL_0755: stloc.s 42 (System.Int32) IL_0757: br => Label87 IL_075C: Label90 IL_075C: ldloc.1 IL_075D: ldloc.s 42 (System.Int32) IL_075F: ldelema WaterManager+Cell IL_0764: ldfld System.Byte Cell::m_conductivity IL_0769: brfalse => Label88 IL_076E: ldloc.1 IL_076F: ldloc.s 42 (System.Int32) IL_0771: ldelema WaterManager+Cell IL_0776: ldloc.s 41 (ColossalFramework.IO.EncodedArray+Byte) IL_0778: callvirt System.Byte ColossalFramework.IO.Byte::Read() IL_077D: stfld System.Byte Cell::m_pollution IL_0782: br => Label89 IL_0787: Label88 IL_0787: ldloc.1 IL_0788: ldloc.s 42 (System.Int32) IL_078A: ldelema WaterManager+Cell IL_078F: ldc.i4.0 IL_0790: stfld System.Byte Cell::m_pollution IL_0795: Label89 IL_0795: ldloc.s 42 (System.Int32) IL_0797: ldc.i4.1 IL_0798: add IL_0799: stloc.s 42 (System.Int32) IL_079B: Label87 IL_079B: ldloc.s 42 (System.Int32) IL_079D: ldloc.2 IL_079E: blt => Label90 IL_07A3: ldloc.s 41 (ColossalFramework.IO.EncodedArray+Byte) IL_07A5: callvirt System.Void ColossalFramework.IO.Byte::EndRead() IL_07AA: Label86 IL_07AA: ldloc.0 IL_07AB: ldarg.1 IL_07AC: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt16() IL_07B1: stfld System.Int32 WaterManager::m_waterPulseGroupCount IL_07B6: ldc.i4.0 IL_07B7: stloc.s 43 (System.Int32) IL_07B9: br => Label91 IL_07BE: Label94 IL_07BE: ldloc.0 IL_07BF: ldfld PulseGroup[] WaterManager::m_waterPulseGroups IL_07C4: ldloc.s 43 (System.Int32) IL_07C6: ldelema WaterManager+PulseGroup IL_07CB: ldarg.1 IL_07CC: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt32() IL_07D1: stfld System.UInt32 PulseGroup::m_origPressure IL_07D6: ldloc.0 IL_07D7: ldfld PulseGroup[] WaterManager::m_waterPulseGroups IL_07DC: ldloc.s 43 (System.Int32) IL_07DE: ldelema WaterManager+PulseGroup IL_07E3: ldarg.1 IL_07E4: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt32() IL_07E9: stfld System.UInt32 PulseGroup::m_curPressure IL_07EE: ldarg.1 IL_07EF: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_07F4: ldc.i4 270 IL_07F9: blt.un => Label92 IL_07FE: ldloc.0 IL_07FF: ldfld PulseGroup[] WaterManager::m_waterPulseGroups IL_0804: ldloc.s 43 (System.Int32) IL_0806: ldelema WaterManager+PulseGroup IL_080B: ldarg.1 IL_080C: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt32() IL_0811: stfld System.UInt32 PulseGroup::m_collectPressure IL_0816: br => Label93 IL_081B: Label92 IL_081B: ldloc.0 IL_081C: ldfld PulseGroup[] WaterManager::m_waterPulseGroups IL_0821: ldloc.s 43 (System.Int32) IL_0823: ldelema WaterManager+PulseGroup IL_0828: ldc.i4.0 IL_0829: stfld System.UInt32 PulseGroup::m_collectPressure IL_082E: Label93 IL_082E: ldloc.0 IL_082F: ldfld PulseGroup[] WaterManager::m_waterPulseGroups IL_0834: ldloc.s 43 (System.Int32) IL_0836: ldelema WaterManager+PulseGroup IL_083B: ldarg.1 IL_083C: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt16() IL_0841: conv.u2 IL_0842: stfld System.UInt16 PulseGroup::m_mergeIndex IL_0847: ldloc.0 IL_0848: ldfld PulseGroup[] WaterManager::m_waterPulseGroups IL_084D: ldloc.s 43 (System.Int32) IL_084F: ldelema WaterManager+PulseGroup IL_0854: ldarg.1 IL_0855: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt16() IL_085A: conv.u2 IL_085B: stfld System.UInt16 PulseGroup::m_mergeCount IL_0860: ldloc.0 IL_0861: ldfld PulseGroup[] WaterManager::m_waterPulseGroups IL_0866: ldloc.s 43 (System.Int32) IL_0868: ldelema WaterManager+PulseGroup IL_086D: ldarg.1 IL_086E: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt16() IL_0873: conv.u2 IL_0874: stfld System.UInt16 PulseGroup::m_node IL_0879: ldloc.s 43 (System.Int32) IL_087B: ldc.i4.1 IL_087C: add IL_087D: stloc.s 43 (System.Int32) IL_087F: Label91 IL_087F: ldloc.s 43 (System.Int32) IL_0881: ldloc.0 IL_0882: ldfld System.Int32 WaterManager::m_waterPulseGroupCount IL_0887: blt => Label94 IL_088C: ldloc.0 IL_088D: ldarg.1 IL_088E: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt16() IL_0893: stfld System.Int32 WaterManager::m_sewagePulseGroupCount IL_0898: ldc.i4.0 IL_0899: stloc.s 44 (System.Int32) IL_089B: br => Label95 IL_08A0: Label98 IL_08A0: ldloc.0 IL_08A1: ldfld PulseGroup[] WaterManager::m_sewagePulseGroups IL_08A6: ldloc.s 44 (System.Int32) IL_08A8: ldelema WaterManager+PulseGroup IL_08AD: ldarg.1 IL_08AE: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt32() IL_08B3: stfld System.UInt32 PulseGroup::m_origPressure IL_08B8: ldloc.0 IL_08B9: ldfld PulseGroup[] WaterManager::m_sewagePulseGroups IL_08BE: ldloc.s 44 (System.Int32) IL_08C0: ldelema WaterManager+PulseGroup IL_08C5: ldarg.1 IL_08C6: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt32() IL_08CB: stfld System.UInt32 PulseGroup::m_curPressure IL_08D0: ldarg.1 IL_08D1: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_08D6: ldc.i4 306 IL_08DB: blt.un => Label96 IL_08E0: ldloc.0 IL_08E1: ldfld PulseGroup[] WaterManager::m_sewagePulseGroups IL_08E6: ldloc.s 44 (System.Int32) IL_08E8: ldelema WaterManager+PulseGroup IL_08ED: ldarg.1 IL_08EE: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt32() IL_08F3: stfld System.UInt32 PulseGroup::m_collectPressure IL_08F8: br => Label97 IL_08FD: Label96 IL_08FD: ldloc.0 IL_08FE: ldfld PulseGroup[] WaterManager::m_sewagePulseGroups IL_0903: ldloc.s 44 (System.Int32) IL_0905: ldelema WaterManager+PulseGroup IL_090A: ldc.i4.0 IL_090B: stfld System.UInt32 PulseGroup::m_collectPressure IL_0910: Label97 IL_0910: ldloc.0 IL_0911: ldfld PulseGroup[] WaterManager::m_sewagePulseGroups IL_0916: ldloc.s 44 (System.Int32) IL_0918: ldelema WaterManager+PulseGroup IL_091D: ldarg.1 IL_091E: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt16() IL_0923: conv.u2 IL_0924: stfld System.UInt16 PulseGroup::m_mergeIndex IL_0929: ldloc.0 IL_092A: ldfld PulseGroup[] WaterManager::m_sewagePulseGroups IL_092F: ldloc.s 44 (System.Int32) IL_0931: ldelema WaterManager+PulseGroup IL_0936: ldarg.1 IL_0937: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt16() IL_093C: conv.u2 IL_093D: stfld System.UInt16 PulseGroup::m_mergeCount IL_0942: ldloc.0 IL_0943: ldfld PulseGroup[] WaterManager::m_sewagePulseGroups IL_0948: ldloc.s 44 (System.Int32) IL_094A: ldelema WaterManager+PulseGroup IL_094F: ldarg.1 IL_0950: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt16() IL_0955: conv.u2 IL_0956: stfld System.UInt16 PulseGroup::m_node IL_095B: ldloc.s 44 (System.Int32) IL_095D: ldc.i4.1 IL_095E: add IL_095F: stloc.s 44 (System.Int32) IL_0961: Label95 IL_0961: ldloc.s 44 (System.Int32) IL_0963: ldloc.0 IL_0964: ldfld System.Int32 WaterManager::m_sewagePulseGroupCount IL_0969: blt => Label98 IL_096E: ldarg.1 IL_096F: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_0974: ldc.i4 227 IL_0979: blt.un => Label99 IL_097E: ldloc.0 IL_097F: ldarg.1 IL_0980: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt16() IL_0985: stfld System.Int32 WaterManager::m_heatingPulseGroupCount IL_098A: ldc.i4.0 IL_098B: stloc.s 45 (System.Int32) IL_098D: br => Label100 IL_0992: Label101 IL_0992: ldloc.0 IL_0993: ldfld PulseGroup[] WaterManager::m_heatingPulseGroups IL_0998: ldloc.s 45 (System.Int32) IL_099A: ldelema WaterManager+PulseGroup IL_099F: ldarg.1 IL_09A0: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt32() IL_09A5: stfld System.UInt32 PulseGroup::m_origPressure IL_09AA: ldloc.0 IL_09AB: ldfld PulseGroup[] WaterManager::m_heatingPulseGroups IL_09B0: ldloc.s 45 (System.Int32) IL_09B2: ldelema WaterManager+PulseGroup IL_09B7: ldarg.1 IL_09B8: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt32() IL_09BD: stfld System.UInt32 PulseGroup::m_curPressure IL_09C2: ldloc.0 IL_09C3: ldfld PulseGroup[] WaterManager::m_heatingPulseGroups IL_09C8: ldloc.s 45 (System.Int32) IL_09CA: ldelema WaterManager+PulseGroup IL_09CF: ldarg.1 IL_09D0: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt16() IL_09D5: conv.u2 IL_09D6: stfld System.UInt16 PulseGroup::m_mergeIndex IL_09DB: ldloc.0 IL_09DC: ldfld PulseGroup[] WaterManager::m_heatingPulseGroups IL_09E1: ldloc.s 45 (System.Int32) IL_09E3: ldelema WaterManager+PulseGroup IL_09E8: ldarg.1 IL_09E9: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt16() IL_09EE: conv.u2 IL_09EF: stfld System.UInt16 PulseGroup::m_mergeCount IL_09F4: ldloc.0 IL_09F5: ldfld PulseGroup[] WaterManager::m_heatingPulseGroups IL_09FA: ldloc.s 45 (System.Int32) IL_09FC: ldelema WaterManager+PulseGroup IL_0A01: ldarg.1 IL_0A02: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt16() IL_0A07: conv.u2 IL_0A08: stfld System.UInt16 PulseGroup::m_node IL_0A0D: ldloc.s 45 (System.Int32) IL_0A0F: ldc.i4.1 IL_0A10: add IL_0A11: stloc.s 45 (System.Int32) IL_0A13: Label100 IL_0A13: ldloc.s 45 (System.Int32) IL_0A15: ldloc.0 IL_0A16: ldfld System.Int32 WaterManager::m_heatingPulseGroupCount IL_0A1B: blt => Label101 IL_0A20: br => Label102 IL_0A25: Label99 IL_0A25: ldloc.0 IL_0A26: ldc.i4.0 IL_0A27: stfld System.Int32 WaterManager::m_heatingPulseGroupCount IL_0A2C: Label102 IL_0A2C: ldarg.1 IL_0A2D: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt16() IL_0A32: stloc.s 46 (System.Int32) IL_0A34: ldloc.0 IL_0A35: ldc.i4.0 IL_0A36: stfld System.Int32 WaterManager::m_waterPulseUnitStart IL_0A3B: ldloc.0 IL_0A3C: ldloc.s 46 (System.Int32) IL_0A3E: ldloc.0 IL_0A3F: ldfld PulseUnit[] WaterManager::m_waterPulseUnits IL_0A44: ldlen IL_0A45: conv.i4 IL_0A46: rem IL_0A47: stfld System.Int32 WaterManager::m_waterPulseUnitEnd IL_0A4C: ldc.i4.0 IL_0A4D: stloc.s 47 (System.Int32) IL_0A4F: br => Label103 IL_0A54: Label104 IL_0A54: ldloc.0 IL_0A55: ldfld PulseUnit[] WaterManager::m_waterPulseUnits IL_0A5A: ldloc.s 47 (System.Int32) IL_0A5C: ldelema WaterManager+PulseUnit IL_0A61: ldarg.1 IL_0A62: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt16() IL_0A67: conv.u2 IL_0A68: stfld System.UInt16 PulseUnit::m_group IL_0A6D: ldloc.0 IL_0A6E: ldfld PulseUnit[] WaterManager::m_waterPulseUnits IL_0A73: ldloc.s 47 (System.Int32) IL_0A75: ldelema WaterManager+PulseUnit IL_0A7A: ldarg.1 IL_0A7B: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt16() IL_0A80: conv.u2 IL_0A81: stfld System.UInt16 PulseUnit::m_node IL_0A86: ldloc.0 IL_0A87: ldfld PulseUnit[] WaterManager::m_waterPulseUnits IL_0A8C: ldloc.s 47 (System.Int32) IL_0A8E: ldelema WaterManager+PulseUnit IL_0A93: ldarg.1 IL_0A94: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt8() IL_0A99: conv.u1 IL_0A9A: stfld System.Byte PulseUnit::m_x IL_0A9F: ldloc.0 IL_0AA0: ldfld PulseUnit[] WaterManager::m_waterPulseUnits IL_0AA5: ldloc.s 47 (System.Int32) IL_0AA7: ldelema WaterManager+PulseUnit IL_0AAC: ldarg.1 IL_0AAD: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt8() IL_0AB2: conv.u1 IL_0AB3: stfld System.Byte PulseUnit::m_z IL_0AB8: ldloc.s 47 (System.Int32) IL_0ABA: ldc.i4.1 IL_0ABB: add IL_0ABC: stloc.s 47 (System.Int32) IL_0ABE: Label103 IL_0ABE: ldloc.s 47 (System.Int32) IL_0AC0: ldloc.s 46 (System.Int32) IL_0AC2: blt => Label104 IL_0AC7: ldarg.1 IL_0AC8: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt16() IL_0ACD: stloc.s 48 (System.Int32) IL_0ACF: ldloc.0 IL_0AD0: ldc.i4.0 IL_0AD1: stfld System.Int32 WaterManager::m_sewagePulseUnitStart IL_0AD6: ldloc.0 IL_0AD7: ldloc.s 48 (System.Int32) IL_0AD9: ldloc.0 IL_0ADA: ldfld PulseUnit[] WaterManager::m_sewagePulseUnits IL_0ADF: ldlen IL_0AE0: conv.i4 IL_0AE1: rem IL_0AE2: stfld System.Int32 WaterManager::m_sewagePulseUnitEnd IL_0AE7: ldc.i4.0 IL_0AE8: stloc.s 49 (System.Int32) IL_0AEA: br => Label105 IL_0AEF: Label106 IL_0AEF: ldloc.0 IL_0AF0: ldfld PulseUnit[] WaterManager::m_sewagePulseUnits IL_0AF5: ldloc.s 49 (System.Int32) IL_0AF7: ldelema WaterManager+PulseUnit IL_0AFC: ldarg.1 IL_0AFD: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt16() IL_0B02: conv.u2 IL_0B03: stfld System.UInt16 PulseUnit::m_group IL_0B08: ldloc.0 IL_0B09: ldfld PulseUnit[] WaterManager::m_sewagePulseUnits IL_0B0E: ldloc.s 49 (System.Int32) IL_0B10: ldelema WaterManager+PulseUnit IL_0B15: ldarg.1 IL_0B16: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt16() IL_0B1B: conv.u2 IL_0B1C: stfld System.UInt16 PulseUnit::m_node IL_0B21: ldloc.0 IL_0B22: ldfld PulseUnit[] WaterManager::m_sewagePulseUnits IL_0B27: ldloc.s 49 (System.Int32) IL_0B29: ldelema WaterManager+PulseUnit IL_0B2E: ldarg.1 IL_0B2F: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt8() IL_0B34: conv.u1 IL_0B35: stfld System.Byte PulseUnit::m_x IL_0B3A: ldloc.0 IL_0B3B: ldfld PulseUnit[] WaterManager::m_sewagePulseUnits IL_0B40: ldloc.s 49 (System.Int32) IL_0B42: ldelema WaterManager+PulseUnit IL_0B47: ldarg.1 IL_0B48: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt8() IL_0B4D: conv.u1 IL_0B4E: stfld System.Byte PulseUnit::m_z IL_0B53: ldloc.s 49 (System.Int32) IL_0B55: ldc.i4.1 IL_0B56: add IL_0B57: stloc.s 49 (System.Int32) IL_0B59: Label105 IL_0B59: ldloc.s 49 (System.Int32) IL_0B5B: ldloc.s 48 (System.Int32) IL_0B5D: blt => Label106 IL_0B62: ldarg.1 IL_0B63: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_0B68: ldc.i4 227 IL_0B6D: blt.un => Label107 IL_0B72: ldarg.1 IL_0B73: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt16() IL_0B78: stloc.s 50 (System.Int32) IL_0B7A: ldloc.0 IL_0B7B: ldc.i4.0 IL_0B7C: stfld System.Int32 WaterManager::m_heatingPulseUnitStart IL_0B81: ldloc.0 IL_0B82: ldloc.s 50 (System.Int32) IL_0B84: ldloc.0 IL_0B85: ldfld PulseUnit[] WaterManager::m_heatingPulseUnits IL_0B8A: ldlen IL_0B8B: conv.i4 IL_0B8C: rem IL_0B8D: stfld System.Int32 WaterManager::m_heatingPulseUnitEnd IL_0B92: ldc.i4.0 IL_0B93: stloc.s 51 (System.Int32) IL_0B95: br => Label108 IL_0B9A: Label109 IL_0B9A: ldloc.0 IL_0B9B: ldfld PulseUnit[] WaterManager::m_heatingPulseUnits IL_0BA0: ldloc.s 51 (System.Int32) IL_0BA2: ldelema WaterManager+PulseUnit IL_0BA7: ldarg.1 IL_0BA8: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt16() IL_0BAD: conv.u2 IL_0BAE: stfld System.UInt16 PulseUnit::m_group IL_0BB3: ldloc.0 IL_0BB4: ldfld PulseUnit[] WaterManager::m_heatingPulseUnits IL_0BB9: ldloc.s 51 (System.Int32) IL_0BBB: ldelema WaterManager+PulseUnit IL_0BC0: ldarg.1 IL_0BC1: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt16() IL_0BC6: conv.u2 IL_0BC7: stfld System.UInt16 PulseUnit::m_node IL_0BCC: ldloc.0 IL_0BCD: ldfld PulseUnit[] WaterManager::m_heatingPulseUnits IL_0BD2: ldloc.s 51 (System.Int32) IL_0BD4: ldelema WaterManager+PulseUnit IL_0BD9: ldarg.1 IL_0BDA: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt8() IL_0BDF: conv.u1 IL_0BE0: stfld System.Byte PulseUnit::m_x IL_0BE5: ldloc.0 IL_0BE6: ldfld PulseUnit[] WaterManager::m_heatingPulseUnits IL_0BEB: ldloc.s 51 (System.Int32) IL_0BED: ldelema WaterManager+PulseUnit IL_0BF2: ldarg.1 IL_0BF3: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt8() IL_0BF8: conv.u1 IL_0BF9: stfld System.Byte PulseUnit::m_z IL_0BFE: ldloc.s 51 (System.Int32) IL_0C00: ldc.i4.1 IL_0C01: add IL_0C02: stloc.s 51 (System.Int32) IL_0C04: Label108 IL_0C04: ldloc.s 51 (System.Int32) IL_0C06: ldloc.s 50 (System.Int32) IL_0C08: blt => Label109 IL_0C0D: br => Label110 IL_0C12: Label107 IL_0C12: ldloc.0 IL_0C13: ldc.i4.0 IL_0C14: stfld System.Int32 WaterManager::m_heatingPulseUnitStart IL_0C19: ldloc.0 IL_0C1A: ldc.i4.0 IL_0C1B: stfld System.Int32 WaterManager::m_heatingPulseUnitEnd IL_0C20: Label110 IL_0C20: ldarg.1 IL_0C21: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_0C26: ldc.i4 202 IL_0C2B: bge.un => Label111 IL_0C30: ldc.i4 16384 IL_0C35: stloc.s 52 (System.Int32) IL_0C37: ldloc.s 52 (System.Int32) IL_0C39: stloc.s 53 (System.Int32) IL_0C3B: br => Label112 IL_0C40: Label113 IL_0C40: ldloc.0 IL_0C41: ldfld Node[] WaterManager::m_nodeData IL_0C46: ldloc.s 53 (System.Int32) IL_0C48: ldelema WaterManager+Node IL_0C4D: ldloca.s 54 (WaterManager+Node) IL_0C4F: initobj WaterManager+Node IL_0C55: ldloc.s 54 (WaterManager+Node) IL_0C57: stobj WaterManager+Node IL_0C5C: ldloc.s 53 (System.Int32) IL_0C5E: ldc.i4.1 IL_0C5F: add IL_0C60: stloc.s 53 (System.Int32) IL_0C62: Label112 IL_0C62: ldloc.s 53 (System.Int32) IL_0C64: ldc.i4 32768 IL_0C69: blt => Label113 IL_0C6E: br => Label114 IL_0C73: Label111 IL_0C73: ldc.i4 32768 IL_0C78: stloc.s 52 (System.Int32) IL_0C7A: Label114 IL_0C7A: ldarg.1 IL_0C7B: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_0C80: stloc.s 55 (ColossalFramework.IO.EncodedArray+UShort) IL_0C82: ldc.i4.0 IL_0C83: stloc.s 56 (System.Int32) IL_0C85: br => Label115 IL_0C8A: Label116 IL_0C8A: ldloc.0 IL_0C8B: ldfld Node[] WaterManager::m_nodeData IL_0C90: ldloc.s 56 (System.Int32) IL_0C92: ldelema WaterManager+Node IL_0C97: ldloc.s 55 (ColossalFramework.IO.EncodedArray+UShort) IL_0C99: callvirt System.UInt16 ColossalFramework.IO.UShort::Read() IL_0C9E: stfld System.UInt16 Node::m_waterPulseGroup IL_0CA3: ldloc.s 56 (System.Int32) IL_0CA5: ldc.i4.1 IL_0CA6: add IL_0CA7: stloc.s 56 (System.Int32) IL_0CA9: Label115 IL_0CA9: ldloc.s 56 (System.Int32) IL_0CAB: ldloc.s 52 (System.Int32) IL_0CAD: blt => Label116 IL_0CB2: ldloc.s 55 (ColossalFramework.IO.EncodedArray+UShort) IL_0CB4: callvirt System.Void ColossalFramework.IO.UShort::EndRead() IL_0CB9: ldarg.1 IL_0CBA: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_0CBF: stloc.s 57 (ColossalFramework.IO.EncodedArray+UShort) IL_0CC1: ldc.i4.0 IL_0CC2: stloc.s 58 (System.Int32) IL_0CC4: br => Label117 IL_0CC9: Label118 IL_0CC9: ldloc.0 IL_0CCA: ldfld Node[] WaterManager::m_nodeData IL_0CCF: ldloc.s 58 (System.Int32) IL_0CD1: ldelema WaterManager+Node IL_0CD6: ldloc.s 57 (ColossalFramework.IO.EncodedArray+UShort) IL_0CD8: callvirt System.UInt16 ColossalFramework.IO.UShort::Read() IL_0CDD: stfld System.UInt16 Node::m_curWaterPressure IL_0CE2: ldloc.s 58 (System.Int32) IL_0CE4: ldc.i4.1 IL_0CE5: add IL_0CE6: stloc.s 58 (System.Int32) IL_0CE8: Label117 IL_0CE8: ldloc.s 58 (System.Int32) IL_0CEA: ldloc.s 52 (System.Int32) IL_0CEC: blt => Label118 IL_0CF1: ldloc.s 57 (ColossalFramework.IO.EncodedArray+UShort) IL_0CF3: callvirt System.Void ColossalFramework.IO.UShort::EndRead() IL_0CF8: ldarg.1 IL_0CF9: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_0CFE: stloc.s 59 (ColossalFramework.IO.EncodedArray+UShort) IL_0D00: ldc.i4.0 IL_0D01: stloc.s 60 (System.Int32) IL_0D03: br => Label119 IL_0D08: Label120 IL_0D08: ldloc.0 IL_0D09: ldfld Node[] WaterManager::m_nodeData IL_0D0E: ldloc.s 60 (System.Int32) IL_0D10: ldelema WaterManager+Node IL_0D15: ldloc.s 59 (ColossalFramework.IO.EncodedArray+UShort) IL_0D17: callvirt System.UInt16 ColossalFramework.IO.UShort::Read() IL_0D1C: stfld System.UInt16 Node::m_extraWaterPressure IL_0D21: ldloc.s 60 (System.Int32) IL_0D23: ldc.i4.1 IL_0D24: add IL_0D25: stloc.s 60 (System.Int32) IL_0D27: Label119 IL_0D27: ldloc.s 60 (System.Int32) IL_0D29: ldloc.s 52 (System.Int32) IL_0D2B: blt => Label120 IL_0D30: ldloc.s 59 (ColossalFramework.IO.EncodedArray+UShort) IL_0D32: callvirt System.Void ColossalFramework.IO.UShort::EndRead() IL_0D37: ldarg.1 IL_0D38: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_0D3D: stloc.s 61 (ColossalFramework.IO.EncodedArray+UShort) IL_0D3F: ldc.i4.0 IL_0D40: stloc.s 62 (System.Int32) IL_0D42: br => Label121 IL_0D47: Label122 IL_0D47: ldloc.0 IL_0D48: ldfld Node[] WaterManager::m_nodeData IL_0D4D: ldloc.s 62 (System.Int32) IL_0D4F: ldelema WaterManager+Node IL_0D54: ldloc.s 61 (ColossalFramework.IO.EncodedArray+UShort) IL_0D56: callvirt System.UInt16 ColossalFramework.IO.UShort::Read() IL_0D5B: stfld System.UInt16 Node::m_sewagePulseGroup IL_0D60: ldloc.s 62 (System.Int32) IL_0D62: ldc.i4.1 IL_0D63: add IL_0D64: stloc.s 62 (System.Int32) IL_0D66: Label121 IL_0D66: ldloc.s 62 (System.Int32) IL_0D68: ldloc.s 52 (System.Int32) IL_0D6A: blt => Label122 IL_0D6F: ldloc.s 61 (ColossalFramework.IO.EncodedArray+UShort) IL_0D71: callvirt System.Void ColossalFramework.IO.UShort::EndRead() IL_0D76: ldarg.1 IL_0D77: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_0D7C: stloc.s 63 (ColossalFramework.IO.EncodedArray+UShort) IL_0D7E: ldc.i4.0 IL_0D7F: stloc.s 64 (System.Int32) IL_0D81: br => Label123 IL_0D86: Label124 IL_0D86: ldloc.0 IL_0D87: ldfld Node[] WaterManager::m_nodeData IL_0D8C: ldloc.s 64 (System.Int32) IL_0D8E: ldelema WaterManager+Node IL_0D93: ldloc.s 63 (ColossalFramework.IO.EncodedArray+UShort) IL_0D95: callvirt System.UInt16 ColossalFramework.IO.UShort::Read() IL_0D9A: stfld System.UInt16 Node::m_curSewagePressure IL_0D9F: ldloc.s 64 (System.Int32) IL_0DA1: ldc.i4.1 IL_0DA2: add IL_0DA3: stloc.s 64 (System.Int32) IL_0DA5: Label123 IL_0DA5: ldloc.s 64 (System.Int32) IL_0DA7: ldloc.s 52 (System.Int32) IL_0DA9: blt => Label124 IL_0DAE: ldloc.s 63 (ColossalFramework.IO.EncodedArray+UShort) IL_0DB0: callvirt System.Void ColossalFramework.IO.UShort::EndRead() IL_0DB5: ldarg.1 IL_0DB6: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_0DBB: stloc.s 65 (ColossalFramework.IO.EncodedArray+UShort) IL_0DBD: ldc.i4.0 IL_0DBE: stloc.s 66 (System.Int32) IL_0DC0: br => Label125 IL_0DC5: Label126 IL_0DC5: ldloc.0 IL_0DC6: ldfld Node[] WaterManager::m_nodeData IL_0DCB: ldloc.s 66 (System.Int32) IL_0DCD: ldelema WaterManager+Node IL_0DD2: ldloc.s 65 (ColossalFramework.IO.EncodedArray+UShort) IL_0DD4: callvirt System.UInt16 ColossalFramework.IO.UShort::Read() IL_0DD9: stfld System.UInt16 Node::m_extraSewagePressure IL_0DDE: ldloc.s 66 (System.Int32) IL_0DE0: ldc.i4.1 IL_0DE1: add IL_0DE2: stloc.s 66 (System.Int32) IL_0DE4: Label125 IL_0DE4: ldloc.s 66 (System.Int32) IL_0DE6: ldloc.s 52 (System.Int32) IL_0DE8: blt => Label126 IL_0DED: ldloc.s 65 (ColossalFramework.IO.EncodedArray+UShort) IL_0DEF: callvirt System.Void ColossalFramework.IO.UShort::EndRead() IL_0DF4: ldarg.1 IL_0DF5: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_0DFA: ldc.i4 227 IL_0DFF: blt.un => Label127 IL_0E04: ldarg.1 IL_0E05: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_0E0A: stloc.s 67 (ColossalFramework.IO.EncodedArray+UShort) IL_0E0C: ldc.i4.0 IL_0E0D: stloc.s 68 (System.Int32) IL_0E0F: br => Label128 IL_0E14: Label129 IL_0E14: ldloc.0 IL_0E15: ldfld Node[] WaterManager::m_nodeData IL_0E1A: ldloc.s 68 (System.Int32) IL_0E1C: ldelema WaterManager+Node IL_0E21: ldloc.s 67 (ColossalFramework.IO.EncodedArray+UShort) IL_0E23: callvirt System.UInt16 ColossalFramework.IO.UShort::Read() IL_0E28: stfld System.UInt16 Node::m_heatingPulseGroup IL_0E2D: ldloc.s 68 (System.Int32) IL_0E2F: ldc.i4.1 IL_0E30: add IL_0E31: stloc.s 68 (System.Int32) IL_0E33: Label128 IL_0E33: ldloc.s 68 (System.Int32) IL_0E35: ldloc.s 52 (System.Int32) IL_0E37: blt => Label129 IL_0E3C: ldloc.s 67 (ColossalFramework.IO.EncodedArray+UShort) IL_0E3E: callvirt System.Void ColossalFramework.IO.UShort::EndRead() IL_0E43: br => Label130 IL_0E48: Label127 IL_0E48: ldc.i4.0 IL_0E49: stloc.s 69 (System.Int32) IL_0E4B: br => Label131 IL_0E50: Label132 IL_0E50: ldloc.0 IL_0E51: ldfld Node[] WaterManager::m_nodeData IL_0E56: ldloc.s 69 (System.Int32) IL_0E58: ldelema WaterManager+Node IL_0E5D: ldc.i4 65535 IL_0E62: stfld System.UInt16 Node::m_heatingPulseGroup IL_0E67: ldloc.s 69 (System.Int32) IL_0E69: ldc.i4.1 IL_0E6A: add IL_0E6B: stloc.s 69 (System.Int32) IL_0E6D: Label131 IL_0E6D: ldloc.s 69 (System.Int32) IL_0E6F: ldloc.s 52 (System.Int32) IL_0E71: blt => Label132 IL_0E76: Label130 IL_0E76: ldarg.1 IL_0E77: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_0E7C: ldc.i4 227 IL_0E81: blt.un => Label133 IL_0E86: ldarg.1 IL_0E87: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_0E8C: stloc.s 70 (ColossalFramework.IO.EncodedArray+UShort) IL_0E8E: ldc.i4.0 IL_0E8F: stloc.s 71 (System.Int32) IL_0E91: br => Label134 IL_0E96: Label135 IL_0E96: ldloc.0 IL_0E97: ldfld Node[] WaterManager::m_nodeData IL_0E9C: ldloc.s 71 (System.Int32) IL_0E9E: ldelema WaterManager+Node IL_0EA3: ldloc.s 70 (ColossalFramework.IO.EncodedArray+UShort) IL_0EA5: callvirt System.UInt16 ColossalFramework.IO.UShort::Read() IL_0EAA: stfld System.UInt16 Node::m_curHeatingPressure IL_0EAF: ldloc.s 71 (System.Int32) IL_0EB1: ldc.i4.1 IL_0EB2: add IL_0EB3: stloc.s 71 (System.Int32) IL_0EB5: Label134 IL_0EB5: ldloc.s 71 (System.Int32) IL_0EB7: ldloc.s 52 (System.Int32) IL_0EB9: blt => Label135 IL_0EBE: ldloc.s 70 (ColossalFramework.IO.EncodedArray+UShort) IL_0EC0: callvirt System.Void ColossalFramework.IO.UShort::EndRead() IL_0EC5: br => Label136 IL_0ECA: Label133 IL_0ECA: ldc.i4.0 IL_0ECB: stloc.s 72 (System.Int32) IL_0ECD: br => Label137 IL_0ED2: Label138 IL_0ED2: ldloc.0 IL_0ED3: ldfld Node[] WaterManager::m_nodeData IL_0ED8: ldloc.s 72 (System.Int32) IL_0EDA: ldelema WaterManager+Node IL_0EDF: ldc.i4.0 IL_0EE0: stfld System.UInt16 Node::m_curHeatingPressure IL_0EE5: ldloc.s 72 (System.Int32) IL_0EE7: ldc.i4.1 IL_0EE8: add IL_0EE9: stloc.s 72 (System.Int32) IL_0EEB: Label137 IL_0EEB: ldloc.s 72 (System.Int32) IL_0EED: ldloc.s 52 (System.Int32) IL_0EEF: blt => Label138 IL_0EF4: Label136 IL_0EF4: ldarg.1 IL_0EF5: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_0EFA: ldc.i4 227 IL_0EFF: blt.un => Label139 IL_0F04: ldarg.1 IL_0F05: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_0F0A: stloc.s 73 (ColossalFramework.IO.EncodedArray+UShort) IL_0F0C: ldc.i4.0 IL_0F0D: stloc.s 74 (System.Int32) IL_0F0F: br => Label140 IL_0F14: Label141 IL_0F14: ldloc.0 IL_0F15: ldfld Node[] WaterManager::m_nodeData IL_0F1A: ldloc.s 74 (System.Int32) IL_0F1C: ldelema WaterManager+Node IL_0F21: ldloc.s 73 (ColossalFramework.IO.EncodedArray+UShort) IL_0F23: callvirt System.UInt16 ColossalFramework.IO.UShort::Read() IL_0F28: stfld System.UInt16 Node::m_extraHeatingPressure IL_0F2D: ldloc.s 74 (System.Int32) IL_0F2F: ldc.i4.1 IL_0F30: add IL_0F31: stloc.s 74 (System.Int32) IL_0F33: Label140 IL_0F33: ldloc.s 74 (System.Int32) IL_0F35: ldloc.s 52 (System.Int32) IL_0F37: blt => Label141 IL_0F3C: ldloc.s 73 (ColossalFramework.IO.EncodedArray+UShort) IL_0F3E: callvirt System.Void ColossalFramework.IO.UShort::EndRead() IL_0F43: br => Label142 IL_0F48: Label139 IL_0F48: ldc.i4.0 IL_0F49: stloc.s 75 (System.Int32) IL_0F4B: br => Label143 IL_0F50: Label144 IL_0F50: ldloc.0 IL_0F51: ldfld Node[] WaterManager::m_nodeData IL_0F56: ldloc.s 75 (System.Int32) IL_0F58: ldelema WaterManager+Node IL_0F5D: ldc.i4.0 IL_0F5E: stfld System.UInt16 Node::m_extraHeatingPressure IL_0F63: ldloc.s 75 (System.Int32) IL_0F65: ldc.i4.1 IL_0F66: add IL_0F67: stloc.s 75 (System.Int32) IL_0F69: Label143 IL_0F69: ldloc.s 75 (System.Int32) IL_0F6B: ldloc.s 52 (System.Int32) IL_0F6D: blt => Label144 IL_0F72: Label142 IL_0F72: ldarg.1 IL_0F73: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_0F78: ldc.i4.s 23 IL_0F7A: blt.un => Label145 IL_0F7F: ldarg.1 IL_0F80: call static ColossalFramework.IO.Byte ColossalFramework.IO.Byte::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_0F85: stloc.s 76 (ColossalFramework.IO.EncodedArray+Byte) IL_0F87: ldc.i4.0 IL_0F88: stloc.s 77 (System.Int32) IL_0F8A: br => Label146 IL_0F8F: Label147 IL_0F8F: ldloc.0 IL_0F90: ldfld Node[] WaterManager::m_nodeData IL_0F95: ldloc.s 77 (System.Int32) IL_0F97: ldelema WaterManager+Node IL_0F9C: ldloc.s 76 (ColossalFramework.IO.EncodedArray+Byte) IL_0F9E: callvirt System.Byte ColossalFramework.IO.Byte::Read() IL_0FA3: stfld System.Byte Node::m_pollution IL_0FA8: ldloc.s 77 (System.Int32) IL_0FAA: ldc.i4.1 IL_0FAB: add IL_0FAC: stloc.s 77 (System.Int32) IL_0FAE: Label146 IL_0FAE: ldloc.s 77 (System.Int32) IL_0FB0: ldloc.s 52 (System.Int32) IL_0FB2: blt => Label147 IL_0FB7: ldloc.s 76 (ColossalFramework.IO.EncodedArray+Byte) IL_0FB9: callvirt System.Void ColossalFramework.IO.Byte::EndRead() IL_0FBE: Label145 IL_0FBE: ldarg.1 IL_0FBF: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_0FC4: ldc.i4 271 IL_0FC9: blt.un => Label148 IL_0FCE: ldarg.1 IL_0FCF: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_0FD4: stloc.s 78 (ColossalFramework.IO.EncodedArray+UShort) IL_0FD6: ldc.i4.0 IL_0FD7: stloc.s 79 (System.Int32) IL_0FD9: br => Label149 IL_0FDE: Label150 IL_0FDE: ldloc.0 IL_0FDF: ldfld Node[] WaterManager::m_nodeData IL_0FE4: ldloc.s 79 (System.Int32) IL_0FE6: ldelema WaterManager+Node IL_0FEB: ldloc.s 78 (ColossalFramework.IO.EncodedArray+UShort) IL_0FED: callvirt System.UInt16 ColossalFramework.IO.UShort::Read() IL_0FF2: stfld System.UInt16 Node::m_collectWaterPressure IL_0FF7: ldloc.s 79 (System.Int32) IL_0FF9: ldc.i4.1 IL_0FFA: add IL_0FFB: stloc.s 79 (System.Int32) IL_0FFD: Label149 IL_0FFD: ldloc.s 79 (System.Int32) IL_0FFF: ldloc.s 52 (System.Int32) IL_1001: blt => Label150 IL_1006: ldloc.s 78 (ColossalFramework.IO.EncodedArray+UShort) IL_1008: callvirt System.Void ColossalFramework.IO.UShort::EndRead() IL_100D: br => Label151 IL_1012: Label148 IL_1012: ldarg.1 IL_1013: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_1018: ldc.i4 270 IL_101D: blt.un => Label152 IL_1022: ldarg.1 IL_1023: call static ColossalFramework.IO.Bool ColossalFramework.IO.Bool::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_1028: stloc.s 80 (ColossalFramework.IO.EncodedArray+Bool) IL_102A: ldc.i4.0 IL_102B: stloc.s 81 (System.Int32) IL_102D: br => Label153 IL_1032: Label156 IL_1032: ldloc.s 80 (ColossalFramework.IO.EncodedArray+Bool) IL_1034: callvirt System.Boolean ColossalFramework.IO.Bool::Read() IL_1039: brfalse => Label154 IL_103E: ldloc.0 IL_103F: ldfld Node[] WaterManager::m_nodeData IL_1044: ldloc.s 81 (System.Int32) IL_1046: ldelema WaterManager+Node IL_104B: ldloc.0 IL_104C: ldfld Node[] WaterManager::m_nodeData IL_1051: ldloc.s 81 (System.Int32) IL_1053: ldelema WaterManager+Node IL_1058: ldfld System.UInt16 Node::m_curWaterPressure IL_105D: stfld System.UInt16 Node::m_collectWaterPressure IL_1062: br => Label155 IL_1067: Label154 IL_1067: ldloc.0 IL_1068: ldfld Node[] WaterManager::m_nodeData IL_106D: ldloc.s 81 (System.Int32) IL_106F: ldelema WaterManager+Node IL_1074: ldc.i4.0 IL_1075: stfld System.UInt16 Node::m_collectWaterPressure IL_107A: Label155 IL_107A: ldloc.s 81 (System.Int32) IL_107C: ldc.i4.1 IL_107D: add IL_107E: stloc.s 81 (System.Int32) IL_1080: Label153 IL_1080: ldloc.s 81 (System.Int32) IL_1082: ldloc.s 52 (System.Int32) IL_1084: blt => Label156 IL_1089: ldloc.s 80 (ColossalFramework.IO.EncodedArray+Bool) IL_108B: callvirt System.Void ColossalFramework.IO.Bool::EndRead() IL_1090: br => Label157 IL_1095: Label152 IL_1095: ldc.i4.0 IL_1096: stloc.s 82 (System.Int32) IL_1098: br => Label158 IL_109D: Label159 IL_109D: ldloc.0 IL_109E: ldfld Node[] WaterManager::m_nodeData IL_10A3: ldloc.s 82 (System.Int32) IL_10A5: ldelema WaterManager+Node IL_10AA: ldc.i4.0 IL_10AB: stfld System.UInt16 Node::m_collectWaterPressure IL_10B0: ldloc.s 82 (System.Int32) IL_10B2: ldc.i4.1 IL_10B3: add IL_10B4: stloc.s 82 (System.Int32) IL_10B6: Label158 IL_10B6: ldloc.s 82 (System.Int32) IL_10B8: ldloc.s 52 (System.Int32) IL_10BA: blt => Label159 IL_10BF: Label151 IL_10BF: Label157 IL_10BF: ldarg.1 IL_10C0: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_10C5: ldc.i4 272 IL_10CA: blt.un => Label160 IL_10CF: ldarg.1 IL_10D0: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_10D5: stloc.s 83 (ColossalFramework.IO.EncodedArray+UShort) IL_10D7: ldc.i4.0 IL_10D8: stloc.s 84 (System.Int32) IL_10DA: br => Label161 IL_10DF: Label162 IL_10DF: ldloc.0 IL_10E0: ldfld Node[] WaterManager::m_nodeData IL_10E5: ldloc.s 84 (System.Int32) IL_10E7: ldelema WaterManager+Node IL_10EC: ldloc.s 83 (ColossalFramework.IO.EncodedArray+UShort) IL_10EE: callvirt System.UInt16 ColossalFramework.IO.UShort::Read() IL_10F3: stfld System.UInt16 Node::m_collectSewagePressure IL_10F8: ldloc.s 84 (System.Int32) IL_10FA: ldc.i4.1 IL_10FB: add IL_10FC: stloc.s 84 (System.Int32) IL_10FE: Label161 IL_10FE: ldloc.s 84 (System.Int32) IL_1100: ldloc.s 52 (System.Int32) IL_1102: blt => Label162 IL_1107: ldloc.s 83 (ColossalFramework.IO.EncodedArray+UShort) IL_1109: callvirt System.Void ColossalFramework.IO.UShort::EndRead() IL_110E: br => Label163 IL_1113: Label160 IL_1113: ldc.i4.0 IL_1114: stloc.s 85 (System.Int32) IL_1116: br => Label164 IL_111B: Label165 IL_111B: ldloc.0 IL_111C: ldfld Node[] WaterManager::m_nodeData IL_1121: ldloc.s 85 (System.Int32) IL_1123: ldelema WaterManager+Node IL_1128: ldc.i4.0 IL_1129: stfld System.UInt16 Node::m_collectSewagePressure IL_112E: ldloc.s 85 (System.Int32) IL_1130: ldc.i4.1 IL_1131: add IL_1132: stloc.s 85 (System.Int32) IL_1134: Label164 IL_1134: ldloc.s 85 (System.Int32) IL_1136: ldloc.s 52 (System.Int32) IL_1138: blt => Label165 IL_113D: Label163 IL_113D: ldloc.0 IL_113E: ldarg.1 IL_113F: callvirt System.Int32 ColossalFramework.IO.DataSerializer::ReadInt32() IL_1144: stfld System.Int32 WaterManager::m_processedCells IL_1149: ldloc.0 IL_114A: ldarg.1 IL_114B: callvirt System.Int32 ColossalFramework.IO.DataSerializer::ReadInt32() IL_1150: stfld System.Int32 WaterManager::m_conductiveCells IL_1155: ldloc.0 IL_1156: ldarg.1 IL_1157: callvirt System.Boolean ColossalFramework.IO.DataSerializer::ReadBool() IL_115C: stfld System.Boolean WaterManager::m_canContinue IL_1161: ldarg.1 IL_1162: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_1167: ldc.i4.s 94 IL_1169: blt.un => Label166 IL_116E: ldloc.0 IL_116F: ldarg.1 IL_1170: callvirt BuildingTypeGuide ColossalFramework.IO.DataSerializer::ReadObject() IL_1175: stfld BuildingTypeGuide WaterManager::m_waterPumpMissingGuide IL_117A: ldloc.0 IL_117B: ldarg.1 IL_117C: callvirt BuildingTypeGuide ColossalFramework.IO.DataSerializer::ReadObject() IL_1181: stfld BuildingTypeGuide WaterManager::m_drainPipeMissingGuide IL_1186: br => Label167 IL_118B: Label166 IL_118B: ldloc.0 IL_118C: ldnull IL_118D: stfld BuildingTypeGuide WaterManager::m_waterPumpMissingGuide IL_1192: ldloc.0 IL_1193: ldnull IL_1194: stfld BuildingTypeGuide WaterManager::m_drainPipeMissingGuide IL_1199: Label167 IL_1199: call static LoadingManager ColossalFramework.Singleton`1::get_instance() IL_119E: ldfld LoadingProfiler LoadingManager::m_loadingProfilerSimulation IL_11A3: ldarg.1 IL_11A4: ldstr "WaterManager" IL_11A9: callvirt System.Void LoadingProfiler::EndDeserialize(ColossalFramework.IO.DataSerializer s, System.String name) IL_11AE: ldloc.0 IL_11AF: ldloc.1 IL_11B0: ldloc.0 IL_11B1: ldfld PulseUnit[] WaterManager::m_waterPulseUnits IL_11B6: ldloc.0 IL_11B7: ldfld PulseUnit[] WaterManager::m_sewagePulseUnits IL_11BC: ldloc.0 IL_11BD: ldfld PulseUnit[] WaterManager::m_heatingPulseUnits IL_11C2: call static System.Void EightyOne2.Patches.WaterManagerDataPatches::CustomDeserialize(WaterManager waterManager, Cell[] waterGrid, PulseUnit[] waterPulseUnits, PulseUnit[] sewagePulseUnits, PulseUnit[] heatingPulseUnits) IL_11C7: // end original IL_11C7: ret DONE ### Patch: virtual System.Void Data::Serialize(ColossalFramework.IO.DataSerializer s) ### Replacement: static System.Void WaterManager+Data::WaterManager+Data.Serialize_Patch0(Data this, ColossalFramework.IO.DataSerializer s) IL_0000: Local var 0: WaterManager IL_0000: Local var 1: WaterManager/Cell[] IL_0000: Local var 2: System.Int32 IL_0000: Local var 3: ColossalFramework.IO.EncodedArray/Byte IL_0000: Local var 4: System.Int32 IL_0000: Local var 5: ColossalFramework.IO.EncodedArray/Byte IL_0000: Local var 6: System.Int32 IL_0000: Local var 7: ColossalFramework.IO.EncodedArray/Short IL_0000: Local var 8: System.Int32 IL_0000: Local var 9: ColossalFramework.IO.EncodedArray/Short IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: ColossalFramework.IO.EncodedArray/Short IL_0000: Local var 12: System.Int32 IL_0000: Local var 13: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 14: System.Int32 IL_0000: Local var 15: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 16: System.Int32 IL_0000: Local var 17: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 18: System.Int32 IL_0000: Local var 19: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 20: System.Int32 IL_0000: Local var 21: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 22: System.Int32 IL_0000: Local var 23: ColossalFramework.IO.EncodedArray/Bool IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: ColossalFramework.IO.EncodedArray/Bool IL_0000: Local var 26: System.Int32 IL_0000: Local var 27: ColossalFramework.IO.EncodedArray/Bool IL_0000: Local var 28: System.Int32 IL_0000: Local var 29: ColossalFramework.IO.EncodedArray/Bool IL_0000: Local var 30: System.Int32 IL_0000: Local var 31: ColossalFramework.IO.EncodedArray/Bool IL_0000: Local var 32: System.Int32 IL_0000: Local var 33: ColossalFramework.IO.EncodedArray/Bool IL_0000: Local var 34: System.Int32 IL_0000: Local var 35: ColossalFramework.IO.EncodedArray/Byte IL_0000: Local var 36: System.Int32 IL_0000: Local var 37: System.Int32 IL_0000: Local var 38: System.Int32 IL_0000: Local var 39: System.Int32 IL_0000: Local var 40: System.Int32 IL_0000: Local var 41: System.Int32 IL_0000: Local var 42: System.Int32 IL_0000: Local var 43: System.Int32 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Int32 IL_0000: Local var 46: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 47: System.Int32 IL_0000: Local var 48: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 49: System.Int32 IL_0000: Local var 50: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 51: System.Int32 IL_0000: Local var 52: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 55: System.Int32 IL_0000: Local var 56: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 57: System.Int32 IL_0000: Local var 58: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 59: System.Int32 IL_0000: Local var 60: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 61: System.Int32 IL_0000: Local var 62: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 63: System.Int32 IL_0000: Local var 64: ColossalFramework.IO.EncodedArray/Byte IL_0000: Local var 65: System.Int32 IL_0000: Local var 66: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 67: System.Int32 IL_0000: Local var 68: ColossalFramework.IO.EncodedArray/UShort IL_0000: Local var 69: System.Int32 IL_0000: // start original IL_0000: call static LoadingManager ColossalFramework.Singleton`1::get_instance() IL_0005: ldfld LoadingProfiler LoadingManager::m_loadingProfilerSimulation IL_000A: ldarg.1 IL_000B: ldstr "WaterManager" IL_0010: callvirt System.Void LoadingProfiler::BeginSerialize(ColossalFramework.IO.DataSerializer s, System.String name) IL_0015: call static WaterManager ColossalFramework.Singleton`1::get_instance() IL_001A: stloc.0 IL_001B: ldloc.0 IL_001C: ldfld Cell[] WaterManager::m_waterGrid IL_0021: ldloc.0 IL_0022: ldfld PulseUnit[] WaterManager::m_waterPulseUnits IL_0027: ldloc.0 IL_0028: ldfld PulseUnit[] WaterManager::m_sewagePulseUnits IL_002D: ldloc.0 IL_002E: ldfld PulseUnit[] WaterManager::m_heatingPulseUnits IL_0033: call static Cell[] EightyOne2.Patches.WaterManagerDataPatches::CustomSerialize(Cell[] waterGrid, PulseUnit[] waterPulseUnits, PulseUnit[] sewagePulseUnits, PulseUnit[] heatingPulseUnits) IL_0038: stloc.1 IL_0039: ldloc.1 IL_003A: ldlen IL_003B: conv.i4 IL_003C: stloc.2 IL_003D: ldarg.1 IL_003E: call static ColossalFramework.IO.Byte ColossalFramework.IO.Byte::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_0043: stloc.3 IL_0044: ldc.i4.0 IL_0045: stloc.s 4 (System.Int32) IL_0047: br => Label0 IL_004C: Label1 IL_004C: ldloc.3 IL_004D: ldloc.1 IL_004E: ldloc.s 4 (System.Int32) IL_0050: ldelema WaterManager+Cell IL_0055: ldfld System.Byte Cell::m_conductivity IL_005A: callvirt System.Void ColossalFramework.IO.Byte::Write(System.Byte value) IL_005F: ldloc.s 4 (System.Int32) IL_0061: ldc.i4.1 IL_0062: add IL_0063: stloc.s 4 (System.Int32) IL_0065: Label0 IL_0065: ldloc.s 4 (System.Int32) IL_0067: ldloc.2 IL_0068: blt => Label1 IL_006D: ldloc.3 IL_006E: callvirt System.Void ColossalFramework.IO.Byte::EndWrite() IL_0073: ldarg.1 IL_0074: call static ColossalFramework.IO.Byte ColossalFramework.IO.Byte::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_0079: stloc.s 5 (ColossalFramework.IO.EncodedArray+Byte) IL_007B: ldc.i4.0 IL_007C: stloc.s 6 (System.Int32) IL_007E: br => Label2 IL_0083: Label3 IL_0083: ldloc.s 5 (ColossalFramework.IO.EncodedArray+Byte) IL_0085: ldloc.1 IL_0086: ldloc.s 6 (System.Int32) IL_0088: ldelema WaterManager+Cell IL_008D: ldfld System.Byte Cell::m_conductivity2 IL_0092: callvirt System.Void ColossalFramework.IO.Byte::Write(System.Byte value) IL_0097: ldloc.s 6 (System.Int32) IL_0099: ldc.i4.1 IL_009A: add IL_009B: stloc.s 6 (System.Int32) IL_009D: Label2 IL_009D: ldloc.s 6 (System.Int32) IL_009F: ldloc.2 IL_00A0: blt => Label3 IL_00A5: ldloc.s 5 (ColossalFramework.IO.EncodedArray+Byte) IL_00A7: callvirt System.Void ColossalFramework.IO.Byte::EndWrite() IL_00AC: ldarg.1 IL_00AD: call static ColossalFramework.IO.Short ColossalFramework.IO.Short::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_00B2: stloc.s 7 (ColossalFramework.IO.EncodedArray+Short) IL_00B4: ldc.i4.0 IL_00B5: stloc.s 8 (System.Int32) IL_00B7: br => Label4 IL_00BC: Label6 IL_00BC: ldloc.1 IL_00BD: ldloc.s 8 (System.Int32) IL_00BF: ldelema WaterManager+Cell IL_00C4: ldfld System.Byte Cell::m_conductivity IL_00C9: brfalse => Label5 IL_00CE: ldloc.s 7 (ColossalFramework.IO.EncodedArray+Short) IL_00D0: ldloc.1 IL_00D1: ldloc.s 8 (System.Int32) IL_00D3: ldelema WaterManager+Cell IL_00D8: ldfld System.Int16 Cell::m_currentWaterPressure IL_00DD: callvirt System.Void ColossalFramework.IO.Short::Write(System.Int16 value) IL_00E2: Label5 IL_00E2: ldloc.s 8 (System.Int32) IL_00E4: ldc.i4.1 IL_00E5: add IL_00E6: stloc.s 8 (System.Int32) IL_00E8: Label4 IL_00E8: ldloc.s 8 (System.Int32) IL_00EA: ldloc.2 IL_00EB: blt => Label6 IL_00F0: ldloc.s 7 (ColossalFramework.IO.EncodedArray+Short) IL_00F2: callvirt System.Void ColossalFramework.IO.Short::EndWrite() IL_00F7: ldarg.1 IL_00F8: call static ColossalFramework.IO.Short ColossalFramework.IO.Short::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_00FD: stloc.s 9 (ColossalFramework.IO.EncodedArray+Short) IL_00FF: ldc.i4.0 IL_0100: stloc.s 10 (System.Int32) IL_0102: br => Label7 IL_0107: Label9 IL_0107: ldloc.1 IL_0108: ldloc.s 10 (System.Int32) IL_010A: ldelema WaterManager+Cell IL_010F: ldfld System.Byte Cell::m_conductivity IL_0114: brfalse => Label8 IL_0119: ldloc.s 9 (ColossalFramework.IO.EncodedArray+Short) IL_011B: ldloc.1 IL_011C: ldloc.s 10 (System.Int32) IL_011E: ldelema WaterManager+Cell IL_0123: ldfld System.Int16 Cell::m_currentSewagePressure IL_0128: callvirt System.Void ColossalFramework.IO.Short::Write(System.Int16 value) IL_012D: Label8 IL_012D: ldloc.s 10 (System.Int32) IL_012F: ldc.i4.1 IL_0130: add IL_0131: stloc.s 10 (System.Int32) IL_0133: Label7 IL_0133: ldloc.s 10 (System.Int32) IL_0135: ldloc.2 IL_0136: blt => Label9 IL_013B: ldloc.s 9 (ColossalFramework.IO.EncodedArray+Short) IL_013D: callvirt System.Void ColossalFramework.IO.Short::EndWrite() IL_0142: ldarg.1 IL_0143: call static ColossalFramework.IO.Short ColossalFramework.IO.Short::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_0148: stloc.s 11 (ColossalFramework.IO.EncodedArray+Short) IL_014A: ldc.i4.0 IL_014B: stloc.s 12 (System.Int32) IL_014D: br => Label10 IL_0152: Label12 IL_0152: ldloc.1 IL_0153: ldloc.s 12 (System.Int32) IL_0155: ldelema WaterManager+Cell IL_015A: ldfld System.Byte Cell::m_conductivity2 IL_015F: brfalse => Label11 IL_0164: ldloc.s 11 (ColossalFramework.IO.EncodedArray+Short) IL_0166: ldloc.1 IL_0167: ldloc.s 12 (System.Int32) IL_0169: ldelema WaterManager+Cell IL_016E: ldfld System.Int16 Cell::m_currentHeatingPressure IL_0173: callvirt System.Void ColossalFramework.IO.Short::Write(System.Int16 value) IL_0178: Label11 IL_0178: ldloc.s 12 (System.Int32) IL_017A: ldc.i4.1 IL_017B: add IL_017C: stloc.s 12 (System.Int32) IL_017E: Label10 IL_017E: ldloc.s 12 (System.Int32) IL_0180: ldloc.2 IL_0181: blt => Label12 IL_0186: ldloc.s 11 (ColossalFramework.IO.EncodedArray+Short) IL_0188: callvirt System.Void ColossalFramework.IO.Short::EndWrite() IL_018D: ldarg.1 IL_018E: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_0193: stloc.s 13 (ColossalFramework.IO.EncodedArray+UShort) IL_0195: ldc.i4.0 IL_0196: stloc.s 14 (System.Int32) IL_0198: br => Label13 IL_019D: Label15 IL_019D: ldloc.1 IL_019E: ldloc.s 14 (System.Int32) IL_01A0: ldelema WaterManager+Cell IL_01A5: ldfld System.Byte Cell::m_conductivity IL_01AA: brfalse => Label14 IL_01AF: ldloc.s 13 (ColossalFramework.IO.EncodedArray+UShort) IL_01B1: ldloc.1 IL_01B2: ldloc.s 14 (System.Int32) IL_01B4: ldelema WaterManager+Cell IL_01B9: ldfld System.UInt16 Cell::m_waterPulseGroup IL_01BE: callvirt System.Void ColossalFramework.IO.UShort::Write(System.UInt16 value) IL_01C3: Label14 IL_01C3: ldloc.s 14 (System.Int32) IL_01C5: ldc.i4.1 IL_01C6: add IL_01C7: stloc.s 14 (System.Int32) IL_01C9: Label13 IL_01C9: ldloc.s 14 (System.Int32) IL_01CB: ldloc.2 IL_01CC: blt => Label15 IL_01D1: ldloc.s 13 (ColossalFramework.IO.EncodedArray+UShort) IL_01D3: callvirt System.Void ColossalFramework.IO.UShort::EndWrite() IL_01D8: ldarg.1 IL_01D9: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_01DE: stloc.s 15 (ColossalFramework.IO.EncodedArray+UShort) IL_01E0: ldc.i4.0 IL_01E1: stloc.s 16 (System.Int32) IL_01E3: br => Label16 IL_01E8: Label18 IL_01E8: ldloc.1 IL_01E9: ldloc.s 16 (System.Int32) IL_01EB: ldelema WaterManager+Cell IL_01F0: ldfld System.Byte Cell::m_conductivity IL_01F5: brfalse => Label17 IL_01FA: ldloc.s 15 (ColossalFramework.IO.EncodedArray+UShort) IL_01FC: ldloc.1 IL_01FD: ldloc.s 16 (System.Int32) IL_01FF: ldelema WaterManager+Cell IL_0204: ldfld System.UInt16 Cell::m_sewagePulseGroup IL_0209: callvirt System.Void ColossalFramework.IO.UShort::Write(System.UInt16 value) IL_020E: Label17 IL_020E: ldloc.s 16 (System.Int32) IL_0210: ldc.i4.1 IL_0211: add IL_0212: stloc.s 16 (System.Int32) IL_0214: Label16 IL_0214: ldloc.s 16 (System.Int32) IL_0216: ldloc.2 IL_0217: blt => Label18 IL_021C: ldloc.s 15 (ColossalFramework.IO.EncodedArray+UShort) IL_021E: callvirt System.Void ColossalFramework.IO.UShort::EndWrite() IL_0223: ldarg.1 IL_0224: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_0229: stloc.s 17 (ColossalFramework.IO.EncodedArray+UShort) IL_022B: ldc.i4.0 IL_022C: stloc.s 18 (System.Int32) IL_022E: br => Label19 IL_0233: Label21 IL_0233: ldloc.1 IL_0234: ldloc.s 18 (System.Int32) IL_0236: ldelema WaterManager+Cell IL_023B: ldfld System.Byte Cell::m_conductivity2 IL_0240: brfalse => Label20 IL_0245: ldloc.s 17 (ColossalFramework.IO.EncodedArray+UShort) IL_0247: ldloc.1 IL_0248: ldloc.s 18 (System.Int32) IL_024A: ldelema WaterManager+Cell IL_024F: ldfld System.UInt16 Cell::m_heatingPulseGroup IL_0254: callvirt System.Void ColossalFramework.IO.UShort::Write(System.UInt16 value) IL_0259: Label20 IL_0259: ldloc.s 18 (System.Int32) IL_025B: ldc.i4.1 IL_025C: add IL_025D: stloc.s 18 (System.Int32) IL_025F: Label19 IL_025F: ldloc.s 18 (System.Int32) IL_0261: ldloc.2 IL_0262: blt => Label21 IL_0267: ldloc.s 17 (ColossalFramework.IO.EncodedArray+UShort) IL_0269: callvirt System.Void ColossalFramework.IO.UShort::EndWrite() IL_026E: ldarg.1 IL_026F: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_0274: stloc.s 19 (ColossalFramework.IO.EncodedArray+UShort) IL_0276: ldc.i4.0 IL_0277: stloc.s 20 (System.Int32) IL_0279: br => Label22 IL_027E: Label24 IL_027E: ldloc.1 IL_027F: ldloc.s 20 (System.Int32) IL_0281: ldelema WaterManager+Cell IL_0286: ldfld System.Byte Cell::m_conductivity IL_028B: brfalse => Label23 IL_0290: ldloc.s 19 (ColossalFramework.IO.EncodedArray+UShort) IL_0292: ldloc.1 IL_0293: ldloc.s 20 (System.Int32) IL_0295: ldelema WaterManager+Cell IL_029A: ldfld System.UInt16 Cell::m_closestPipeSegment IL_029F: callvirt System.Void ColossalFramework.IO.UShort::Write(System.UInt16 value) IL_02A4: Label23 IL_02A4: ldloc.s 20 (System.Int32) IL_02A6: ldc.i4.1 IL_02A7: add IL_02A8: stloc.s 20 (System.Int32) IL_02AA: Label22 IL_02AA: ldloc.s 20 (System.Int32) IL_02AC: ldloc.2 IL_02AD: blt => Label24 IL_02B2: ldloc.s 19 (ColossalFramework.IO.EncodedArray+UShort) IL_02B4: callvirt System.Void ColossalFramework.IO.UShort::EndWrite() IL_02B9: ldarg.1 IL_02BA: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_02BF: stloc.s 21 (ColossalFramework.IO.EncodedArray+UShort) IL_02C1: ldc.i4.0 IL_02C2: stloc.s 22 (System.Int32) IL_02C4: br => Label25 IL_02C9: Label27 IL_02C9: ldloc.1 IL_02CA: ldloc.s 22 (System.Int32) IL_02CC: ldelema WaterManager+Cell IL_02D1: ldfld System.Byte Cell::m_conductivity2 IL_02D6: brfalse => Label26 IL_02DB: ldloc.s 21 (ColossalFramework.IO.EncodedArray+UShort) IL_02DD: ldloc.1 IL_02DE: ldloc.s 22 (System.Int32) IL_02E0: ldelema WaterManager+Cell IL_02E5: ldfld System.UInt16 Cell::m_closestPipeSegment2 IL_02EA: callvirt System.Void ColossalFramework.IO.UShort::Write(System.UInt16 value) IL_02EF: Label26 IL_02EF: ldloc.s 22 (System.Int32) IL_02F1: ldc.i4.1 IL_02F2: add IL_02F3: stloc.s 22 (System.Int32) IL_02F5: Label25 IL_02F5: ldloc.s 22 (System.Int32) IL_02F7: ldloc.2 IL_02F8: blt => Label27 IL_02FD: ldloc.s 21 (ColossalFramework.IO.EncodedArray+UShort) IL_02FF: callvirt System.Void ColossalFramework.IO.UShort::EndWrite() IL_0304: ldarg.1 IL_0305: call static ColossalFramework.IO.Bool ColossalFramework.IO.Bool::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_030A: stloc.s 23 (ColossalFramework.IO.EncodedArray+Bool) IL_030C: ldc.i4.0 IL_030D: stloc.s 24 (System.Int32) IL_030F: br => Label28 IL_0314: Label30 IL_0314: ldloc.1 IL_0315: ldloc.s 24 (System.Int32) IL_0317: ldelema WaterManager+Cell IL_031C: ldfld System.Byte Cell::m_conductivity IL_0321: brfalse => Label29 IL_0326: ldloc.s 23 (ColossalFramework.IO.EncodedArray+Bool) IL_0328: ldloc.1 IL_0329: ldloc.s 24 (System.Int32) IL_032B: ldelema WaterManager+Cell IL_0330: ldfld System.Boolean Cell::m_hasWater IL_0335: callvirt System.Void ColossalFramework.IO.Bool::Write(System.Boolean value) IL_033A: Label29 IL_033A: ldloc.s 24 (System.Int32) IL_033C: ldc.i4.1 IL_033D: add IL_033E: stloc.s 24 (System.Int32) IL_0340: Label28 IL_0340: ldloc.s 24 (System.Int32) IL_0342: ldloc.2 IL_0343: blt => Label30 IL_0348: ldloc.s 23 (ColossalFramework.IO.EncodedArray+Bool) IL_034A: callvirt System.Void ColossalFramework.IO.Bool::EndWrite() IL_034F: ldarg.1 IL_0350: call static ColossalFramework.IO.Bool ColossalFramework.IO.Bool::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_0355: stloc.s 25 (ColossalFramework.IO.EncodedArray+Bool) IL_0357: ldc.i4.0 IL_0358: stloc.s 26 (System.Int32) IL_035A: br => Label31 IL_035F: Label33 IL_035F: ldloc.1 IL_0360: ldloc.s 26 (System.Int32) IL_0362: ldelema WaterManager+Cell IL_0367: ldfld System.Byte Cell::m_conductivity IL_036C: brfalse => Label32 IL_0371: ldloc.s 25 (ColossalFramework.IO.EncodedArray+Bool) IL_0373: ldloc.1 IL_0374: ldloc.s 26 (System.Int32) IL_0376: ldelema WaterManager+Cell IL_037B: ldfld System.Boolean Cell::m_hasSewage IL_0380: callvirt System.Void ColossalFramework.IO.Bool::Write(System.Boolean value) IL_0385: Label32 IL_0385: ldloc.s 26 (System.Int32) IL_0387: ldc.i4.1 IL_0388: add IL_0389: stloc.s 26 (System.Int32) IL_038B: Label31 IL_038B: ldloc.s 26 (System.Int32) IL_038D: ldloc.2 IL_038E: blt => Label33 IL_0393: ldloc.s 25 (ColossalFramework.IO.EncodedArray+Bool) IL_0395: callvirt System.Void ColossalFramework.IO.Bool::EndWrite() IL_039A: ldarg.1 IL_039B: call static ColossalFramework.IO.Bool ColossalFramework.IO.Bool::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_03A0: stloc.s 27 (ColossalFramework.IO.EncodedArray+Bool) IL_03A2: ldc.i4.0 IL_03A3: stloc.s 28 (System.Int32) IL_03A5: br => Label34 IL_03AA: Label36 IL_03AA: ldloc.1 IL_03AB: ldloc.s 28 (System.Int32) IL_03AD: ldelema WaterManager+Cell IL_03B2: ldfld System.Byte Cell::m_conductivity2 IL_03B7: brfalse => Label35 IL_03BC: ldloc.s 27 (ColossalFramework.IO.EncodedArray+Bool) IL_03BE: ldloc.1 IL_03BF: ldloc.s 28 (System.Int32) IL_03C1: ldelema WaterManager+Cell IL_03C6: ldfld System.Boolean Cell::m_hasHeating IL_03CB: callvirt System.Void ColossalFramework.IO.Bool::Write(System.Boolean value) IL_03D0: Label35 IL_03D0: ldloc.s 28 (System.Int32) IL_03D2: ldc.i4.1 IL_03D3: add IL_03D4: stloc.s 28 (System.Int32) IL_03D6: Label34 IL_03D6: ldloc.s 28 (System.Int32) IL_03D8: ldloc.2 IL_03D9: blt => Label36 IL_03DE: ldloc.s 27 (ColossalFramework.IO.EncodedArray+Bool) IL_03E0: callvirt System.Void ColossalFramework.IO.Bool::EndWrite() IL_03E5: ldarg.1 IL_03E6: call static ColossalFramework.IO.Bool ColossalFramework.IO.Bool::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_03EB: stloc.s 29 (ColossalFramework.IO.EncodedArray+Bool) IL_03ED: ldc.i4.0 IL_03EE: stloc.s 30 (System.Int32) IL_03F0: br => Label37 IL_03F5: Label39 IL_03F5: ldloc.1 IL_03F6: ldloc.s 30 (System.Int32) IL_03F8: ldelema WaterManager+Cell IL_03FD: ldfld System.Byte Cell::m_conductivity IL_0402: brfalse => Label38 IL_0407: ldloc.s 29 (ColossalFramework.IO.EncodedArray+Bool) IL_0409: ldloc.1 IL_040A: ldloc.s 30 (System.Int32) IL_040C: ldelema WaterManager+Cell IL_0411: ldfld System.Boolean Cell::m_tmpHasWater IL_0416: callvirt System.Void ColossalFramework.IO.Bool::Write(System.Boolean value) IL_041B: Label38 IL_041B: ldloc.s 30 (System.Int32) IL_041D: ldc.i4.1 IL_041E: add IL_041F: stloc.s 30 (System.Int32) IL_0421: Label37 IL_0421: ldloc.s 30 (System.Int32) IL_0423: ldloc.2 IL_0424: blt => Label39 IL_0429: ldloc.s 29 (ColossalFramework.IO.EncodedArray+Bool) IL_042B: callvirt System.Void ColossalFramework.IO.Bool::EndWrite() IL_0430: ldarg.1 IL_0431: call static ColossalFramework.IO.Bool ColossalFramework.IO.Bool::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_0436: stloc.s 31 (ColossalFramework.IO.EncodedArray+Bool) IL_0438: ldc.i4.0 IL_0439: stloc.s 32 (System.Int32) IL_043B: br => Label40 IL_0440: Label42 IL_0440: ldloc.1 IL_0441: ldloc.s 32 (System.Int32) IL_0443: ldelema WaterManager+Cell IL_0448: ldfld System.Byte Cell::m_conductivity IL_044D: brfalse => Label41 IL_0452: ldloc.s 31 (ColossalFramework.IO.EncodedArray+Bool) IL_0454: ldloc.1 IL_0455: ldloc.s 32 (System.Int32) IL_0457: ldelema WaterManager+Cell IL_045C: ldfld System.Boolean Cell::m_tmpHasSewage IL_0461: callvirt System.Void ColossalFramework.IO.Bool::Write(System.Boolean value) IL_0466: Label41 IL_0466: ldloc.s 32 (System.Int32) IL_0468: ldc.i4.1 IL_0469: add IL_046A: stloc.s 32 (System.Int32) IL_046C: Label40 IL_046C: ldloc.s 32 (System.Int32) IL_046E: ldloc.2 IL_046F: blt => Label42 IL_0474: ldloc.s 31 (ColossalFramework.IO.EncodedArray+Bool) IL_0476: callvirt System.Void ColossalFramework.IO.Bool::EndWrite() IL_047B: ldarg.1 IL_047C: call static ColossalFramework.IO.Bool ColossalFramework.IO.Bool::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_0481: stloc.s 33 (ColossalFramework.IO.EncodedArray+Bool) IL_0483: ldc.i4.0 IL_0484: stloc.s 34 (System.Int32) IL_0486: br => Label43 IL_048B: Label45 IL_048B: ldloc.1 IL_048C: ldloc.s 34 (System.Int32) IL_048E: ldelema WaterManager+Cell IL_0493: ldfld System.Byte Cell::m_conductivity2 IL_0498: brfalse => Label44 IL_049D: ldloc.s 33 (ColossalFramework.IO.EncodedArray+Bool) IL_049F: ldloc.1 IL_04A0: ldloc.s 34 (System.Int32) IL_04A2: ldelema WaterManager+Cell IL_04A7: ldfld System.Boolean Cell::m_tmpHasHeating IL_04AC: callvirt System.Void ColossalFramework.IO.Bool::Write(System.Boolean value) IL_04B1: Label44 IL_04B1: ldloc.s 34 (System.Int32) IL_04B3: ldc.i4.1 IL_04B4: add IL_04B5: stloc.s 34 (System.Int32) IL_04B7: Label43 IL_04B7: ldloc.s 34 (System.Int32) IL_04B9: ldloc.2 IL_04BA: blt => Label45 IL_04BF: ldloc.s 33 (ColossalFramework.IO.EncodedArray+Bool) IL_04C1: callvirt System.Void ColossalFramework.IO.Bool::EndWrite() IL_04C6: ldarg.1 IL_04C7: call static ColossalFramework.IO.Byte ColossalFramework.IO.Byte::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_04CC: stloc.s 35 (ColossalFramework.IO.EncodedArray+Byte) IL_04CE: ldc.i4.0 IL_04CF: stloc.s 36 (System.Int32) IL_04D1: br => Label46 IL_04D6: Label48 IL_04D6: ldloc.1 IL_04D7: ldloc.s 36 (System.Int32) IL_04D9: ldelema WaterManager+Cell IL_04DE: ldfld System.Byte Cell::m_conductivity IL_04E3: brfalse => Label47 IL_04E8: ldloc.s 35 (ColossalFramework.IO.EncodedArray+Byte) IL_04EA: ldloc.1 IL_04EB: ldloc.s 36 (System.Int32) IL_04ED: ldelema WaterManager+Cell IL_04F2: ldfld System.Byte Cell::m_pollution IL_04F7: callvirt System.Void ColossalFramework.IO.Byte::Write(System.Byte value) IL_04FC: Label47 IL_04FC: ldloc.s 36 (System.Int32) IL_04FE: ldc.i4.1 IL_04FF: add IL_0500: stloc.s 36 (System.Int32) IL_0502: Label46 IL_0502: ldloc.s 36 (System.Int32) IL_0504: ldloc.2 IL_0505: blt => Label48 IL_050A: ldloc.s 35 (ColossalFramework.IO.EncodedArray+Byte) IL_050C: callvirt System.Void ColossalFramework.IO.Byte::EndWrite() IL_0511: ldarg.1 IL_0512: ldloc.0 IL_0513: ldfld System.Int32 WaterManager::m_waterPulseGroupCount IL_0518: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt16(System.UInt32 value) IL_051D: ldc.i4.0 IL_051E: stloc.s 37 (System.Int32) IL_0520: br => Label49 IL_0525: Label50 IL_0525: ldarg.1 IL_0526: ldloc.0 IL_0527: ldfld PulseGroup[] WaterManager::m_waterPulseGroups IL_052C: ldloc.s 37 (System.Int32) IL_052E: ldelema WaterManager+PulseGroup IL_0533: ldfld System.UInt32 PulseGroup::m_origPressure IL_0538: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt32(System.UInt32 value) IL_053D: ldarg.1 IL_053E: ldloc.0 IL_053F: ldfld PulseGroup[] WaterManager::m_waterPulseGroups IL_0544: ldloc.s 37 (System.Int32) IL_0546: ldelema WaterManager+PulseGroup IL_054B: ldfld System.UInt32 PulseGroup::m_curPressure IL_0550: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt32(System.UInt32 value) IL_0555: ldarg.1 IL_0556: ldloc.0 IL_0557: ldfld PulseGroup[] WaterManager::m_waterPulseGroups IL_055C: ldloc.s 37 (System.Int32) IL_055E: ldelema WaterManager+PulseGroup IL_0563: ldfld System.UInt32 PulseGroup::m_collectPressure IL_0568: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt32(System.UInt32 value) IL_056D: ldarg.1 IL_056E: ldloc.0 IL_056F: ldfld PulseGroup[] WaterManager::m_waterPulseGroups IL_0574: ldloc.s 37 (System.Int32) IL_0576: ldelema WaterManager+PulseGroup IL_057B: ldfld System.UInt16 PulseGroup::m_mergeIndex IL_0580: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt16(System.UInt32 value) IL_0585: ldarg.1 IL_0586: ldloc.0 IL_0587: ldfld PulseGroup[] WaterManager::m_waterPulseGroups IL_058C: ldloc.s 37 (System.Int32) IL_058E: ldelema WaterManager+PulseGroup IL_0593: ldfld System.UInt16 PulseGroup::m_mergeCount IL_0598: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt16(System.UInt32 value) IL_059D: ldarg.1 IL_059E: ldloc.0 IL_059F: ldfld PulseGroup[] WaterManager::m_waterPulseGroups IL_05A4: ldloc.s 37 (System.Int32) IL_05A6: ldelema WaterManager+PulseGroup IL_05AB: ldfld System.UInt16 PulseGroup::m_node IL_05B0: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt16(System.UInt32 value) IL_05B5: ldloc.s 37 (System.Int32) IL_05B7: ldc.i4.1 IL_05B8: add IL_05B9: stloc.s 37 (System.Int32) IL_05BB: Label49 IL_05BB: ldloc.s 37 (System.Int32) IL_05BD: ldloc.0 IL_05BE: ldfld System.Int32 WaterManager::m_waterPulseGroupCount IL_05C3: blt => Label50 IL_05C8: ldarg.1 IL_05C9: ldloc.0 IL_05CA: ldfld System.Int32 WaterManager::m_sewagePulseGroupCount IL_05CF: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt16(System.UInt32 value) IL_05D4: ldc.i4.0 IL_05D5: stloc.s 38 (System.Int32) IL_05D7: br => Label51 IL_05DC: Label52 IL_05DC: ldarg.1 IL_05DD: ldloc.0 IL_05DE: ldfld PulseGroup[] WaterManager::m_sewagePulseGroups IL_05E3: ldloc.s 38 (System.Int32) IL_05E5: ldelema WaterManager+PulseGroup IL_05EA: ldfld System.UInt32 PulseGroup::m_origPressure IL_05EF: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt32(System.UInt32 value) IL_05F4: ldarg.1 IL_05F5: ldloc.0 IL_05F6: ldfld PulseGroup[] WaterManager::m_sewagePulseGroups IL_05FB: ldloc.s 38 (System.Int32) IL_05FD: ldelema WaterManager+PulseGroup IL_0602: ldfld System.UInt32 PulseGroup::m_curPressure IL_0607: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt32(System.UInt32 value) IL_060C: ldarg.1 IL_060D: ldloc.0 IL_060E: ldfld PulseGroup[] WaterManager::m_sewagePulseGroups IL_0613: ldloc.s 38 (System.Int32) IL_0615: ldelema WaterManager+PulseGroup IL_061A: ldfld System.UInt32 PulseGroup::m_collectPressure IL_061F: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt32(System.UInt32 value) IL_0624: ldarg.1 IL_0625: ldloc.0 IL_0626: ldfld PulseGroup[] WaterManager::m_sewagePulseGroups IL_062B: ldloc.s 38 (System.Int32) IL_062D: ldelema WaterManager+PulseGroup IL_0632: ldfld System.UInt16 PulseGroup::m_mergeIndex IL_0637: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt16(System.UInt32 value) IL_063C: ldarg.1 IL_063D: ldloc.0 IL_063E: ldfld PulseGroup[] WaterManager::m_sewagePulseGroups IL_0643: ldloc.s 38 (System.Int32) IL_0645: ldelema WaterManager+PulseGroup IL_064A: ldfld System.UInt16 PulseGroup::m_mergeCount IL_064F: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt16(System.UInt32 value) IL_0654: ldarg.1 IL_0655: ldloc.0 IL_0656: ldfld PulseGroup[] WaterManager::m_sewagePulseGroups IL_065B: ldloc.s 38 (System.Int32) IL_065D: ldelema WaterManager+PulseGroup IL_0662: ldfld System.UInt16 PulseGroup::m_node IL_0667: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt16(System.UInt32 value) IL_066C: ldloc.s 38 (System.Int32) IL_066E: ldc.i4.1 IL_066F: add IL_0670: stloc.s 38 (System.Int32) IL_0672: Label51 IL_0672: ldloc.s 38 (System.Int32) IL_0674: ldloc.0 IL_0675: ldfld System.Int32 WaterManager::m_sewagePulseGroupCount IL_067A: blt => Label52 IL_067F: ldarg.1 IL_0680: ldloc.0 IL_0681: ldfld System.Int32 WaterManager::m_heatingPulseGroupCount IL_0686: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt16(System.UInt32 value) IL_068B: ldc.i4.0 IL_068C: stloc.s 39 (System.Int32) IL_068E: br => Label53 IL_0693: Label54 IL_0693: ldarg.1 IL_0694: ldloc.0 IL_0695: ldfld PulseGroup[] WaterManager::m_heatingPulseGroups IL_069A: ldloc.s 39 (System.Int32) IL_069C: ldelema WaterManager+PulseGroup IL_06A1: ldfld System.UInt32 PulseGroup::m_origPressure IL_06A6: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt32(System.UInt32 value) IL_06AB: ldarg.1 IL_06AC: ldloc.0 IL_06AD: ldfld PulseGroup[] WaterManager::m_heatingPulseGroups IL_06B2: ldloc.s 39 (System.Int32) IL_06B4: ldelema WaterManager+PulseGroup IL_06B9: ldfld System.UInt32 PulseGroup::m_curPressure IL_06BE: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt32(System.UInt32 value) IL_06C3: ldarg.1 IL_06C4: ldloc.0 IL_06C5: ldfld PulseGroup[] WaterManager::m_heatingPulseGroups IL_06CA: ldloc.s 39 (System.Int32) IL_06CC: ldelema WaterManager+PulseGroup IL_06D1: ldfld System.UInt16 PulseGroup::m_mergeIndex IL_06D6: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt16(System.UInt32 value) IL_06DB: ldarg.1 IL_06DC: ldloc.0 IL_06DD: ldfld PulseGroup[] WaterManager::m_heatingPulseGroups IL_06E2: ldloc.s 39 (System.Int32) IL_06E4: ldelema WaterManager+PulseGroup IL_06E9: ldfld System.UInt16 PulseGroup::m_mergeCount IL_06EE: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt16(System.UInt32 value) IL_06F3: ldarg.1 IL_06F4: ldloc.0 IL_06F5: ldfld PulseGroup[] WaterManager::m_heatingPulseGroups IL_06FA: ldloc.s 39 (System.Int32) IL_06FC: ldelema WaterManager+PulseGroup IL_0701: ldfld System.UInt16 PulseGroup::m_node IL_0706: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt16(System.UInt32 value) IL_070B: ldloc.s 39 (System.Int32) IL_070D: ldc.i4.1 IL_070E: add IL_070F: stloc.s 39 (System.Int32) IL_0711: Label53 IL_0711: ldloc.s 39 (System.Int32) IL_0713: ldloc.0 IL_0714: ldfld System.Int32 WaterManager::m_heatingPulseGroupCount IL_0719: blt => Label54 IL_071E: ldloc.0 IL_071F: ldfld System.Int32 WaterManager::m_waterPulseUnitEnd IL_0724: ldloc.0 IL_0725: ldfld System.Int32 WaterManager::m_waterPulseUnitStart IL_072A: sub IL_072B: stloc.s 40 (System.Int32) IL_072D: ldloc.s 40 (System.Int32) IL_072F: ldc.i4.0 IL_0730: bge => Label55 IL_0735: ldloc.s 40 (System.Int32) IL_0737: ldloc.0 IL_0738: ldfld PulseUnit[] WaterManager::m_waterPulseUnits IL_073D: ldlen IL_073E: conv.i4 IL_073F: add IL_0740: stloc.s 40 (System.Int32) IL_0742: Label55 IL_0742: ldarg.1 IL_0743: ldloc.s 40 (System.Int32) IL_0745: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt16(System.UInt32 value) IL_074A: ldloc.0 IL_074B: ldfld System.Int32 WaterManager::m_waterPulseUnitStart IL_0750: stloc.s 41 (System.Int32) IL_0752: br => Label56 IL_0757: Label58 IL_0757: ldarg.1 IL_0758: ldloc.0 IL_0759: ldfld PulseUnit[] WaterManager::m_waterPulseUnits IL_075E: ldloc.s 41 (System.Int32) IL_0760: ldelema WaterManager+PulseUnit IL_0765: ldfld System.UInt16 PulseUnit::m_group IL_076A: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt16(System.UInt32 value) IL_076F: ldarg.1 IL_0770: ldloc.0 IL_0771: ldfld PulseUnit[] WaterManager::m_waterPulseUnits IL_0776: ldloc.s 41 (System.Int32) IL_0778: ldelema WaterManager+PulseUnit IL_077D: ldfld System.UInt16 PulseUnit::m_node IL_0782: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt16(System.UInt32 value) IL_0787: ldarg.1 IL_0788: ldloc.0 IL_0789: ldfld PulseUnit[] WaterManager::m_waterPulseUnits IL_078E: ldloc.s 41 (System.Int32) IL_0790: ldelema WaterManager+PulseUnit IL_0795: ldfld System.Byte PulseUnit::m_x IL_079A: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt8(System.UInt32 value) IL_079F: ldarg.1 IL_07A0: ldloc.0 IL_07A1: ldfld PulseUnit[] WaterManager::m_waterPulseUnits IL_07A6: ldloc.s 41 (System.Int32) IL_07A8: ldelema WaterManager+PulseUnit IL_07AD: ldfld System.Byte PulseUnit::m_z IL_07B2: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt8(System.UInt32 value) IL_07B7: ldloc.s 41 (System.Int32) IL_07B9: ldc.i4.1 IL_07BA: add IL_07BB: dup IL_07BC: stloc.s 41 (System.Int32) IL_07BE: ldloc.0 IL_07BF: ldfld PulseUnit[] WaterManager::m_waterPulseUnits IL_07C4: ldlen IL_07C5: conv.i4 IL_07C6: blt => Label57 IL_07CB: ldc.i4.0 IL_07CC: stloc.s 41 (System.Int32) IL_07CE: Label56 IL_07CE: Label57 IL_07CE: ldloc.s 41 (System.Int32) IL_07D0: ldloc.0 IL_07D1: ldfld System.Int32 WaterManager::m_waterPulseUnitEnd IL_07D6: bne.un => Label58 IL_07DB: ldloc.0 IL_07DC: ldfld System.Int32 WaterManager::m_sewagePulseUnitEnd IL_07E1: ldloc.0 IL_07E2: ldfld System.Int32 WaterManager::m_sewagePulseUnitStart IL_07E7: sub IL_07E8: stloc.s 42 (System.Int32) IL_07EA: ldloc.s 42 (System.Int32) IL_07EC: ldc.i4.0 IL_07ED: bge => Label59 IL_07F2: ldloc.s 42 (System.Int32) IL_07F4: ldloc.0 IL_07F5: ldfld PulseUnit[] WaterManager::m_sewagePulseUnits IL_07FA: ldlen IL_07FB: conv.i4 IL_07FC: add IL_07FD: stloc.s 42 (System.Int32) IL_07FF: Label59 IL_07FF: ldarg.1 IL_0800: ldloc.s 42 (System.Int32) IL_0802: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt16(System.UInt32 value) IL_0807: ldloc.0 IL_0808: ldfld System.Int32 WaterManager::m_sewagePulseUnitStart IL_080D: stloc.s 43 (System.Int32) IL_080F: br => Label60 IL_0814: Label62 IL_0814: ldarg.1 IL_0815: ldloc.0 IL_0816: ldfld PulseUnit[] WaterManager::m_sewagePulseUnits IL_081B: ldloc.s 43 (System.Int32) IL_081D: ldelema WaterManager+PulseUnit IL_0822: ldfld System.UInt16 PulseUnit::m_group IL_0827: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt16(System.UInt32 value) IL_082C: ldarg.1 IL_082D: ldloc.0 IL_082E: ldfld PulseUnit[] WaterManager::m_sewagePulseUnits IL_0833: ldloc.s 43 (System.Int32) IL_0835: ldelema WaterManager+PulseUnit IL_083A: ldfld System.UInt16 PulseUnit::m_node IL_083F: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt16(System.UInt32 value) IL_0844: ldarg.1 IL_0845: ldloc.0 IL_0846: ldfld PulseUnit[] WaterManager::m_sewagePulseUnits IL_084B: ldloc.s 43 (System.Int32) IL_084D: ldelema WaterManager+PulseUnit IL_0852: ldfld System.Byte PulseUnit::m_x IL_0857: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt8(System.UInt32 value) IL_085C: ldarg.1 IL_085D: ldloc.0 IL_085E: ldfld PulseUnit[] WaterManager::m_sewagePulseUnits IL_0863: ldloc.s 43 (System.Int32) IL_0865: ldelema WaterManager+PulseUnit IL_086A: ldfld System.Byte PulseUnit::m_z IL_086F: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt8(System.UInt32 value) IL_0874: ldloc.s 43 (System.Int32) IL_0876: ldc.i4.1 IL_0877: add IL_0878: dup IL_0879: stloc.s 43 (System.Int32) IL_087B: ldloc.0 IL_087C: ldfld PulseUnit[] WaterManager::m_sewagePulseUnits IL_0881: ldlen IL_0882: conv.i4 IL_0883: blt => Label61 IL_0888: ldc.i4.0 IL_0889: stloc.s 43 (System.Int32) IL_088B: Label60 IL_088B: Label61 IL_088B: ldloc.s 43 (System.Int32) IL_088D: ldloc.0 IL_088E: ldfld System.Int32 WaterManager::m_sewagePulseUnitEnd IL_0893: bne.un => Label62 IL_0898: ldloc.0 IL_0899: ldfld System.Int32 WaterManager::m_heatingPulseUnitEnd IL_089E: ldloc.0 IL_089F: ldfld System.Int32 WaterManager::m_heatingPulseUnitStart IL_08A4: sub IL_08A5: stloc.s 44 (System.Int32) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldc.i4.0 IL_08AA: bge => Label63 IL_08AF: ldloc.s 44 (System.Int32) IL_08B1: ldloc.0 IL_08B2: ldfld PulseUnit[] WaterManager::m_heatingPulseUnits IL_08B7: ldlen IL_08B8: conv.i4 IL_08B9: add IL_08BA: stloc.s 44 (System.Int32) IL_08BC: Label63 IL_08BC: ldarg.1 IL_08BD: ldloc.s 44 (System.Int32) IL_08BF: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt16(System.UInt32 value) IL_08C4: ldloc.0 IL_08C5: ldfld System.Int32 WaterManager::m_heatingPulseUnitStart IL_08CA: stloc.s 45 (System.Int32) IL_08CC: br => Label64 IL_08D1: Label66 IL_08D1: ldarg.1 IL_08D2: ldloc.0 IL_08D3: ldfld PulseUnit[] WaterManager::m_heatingPulseUnits IL_08D8: ldloc.s 45 (System.Int32) IL_08DA: ldelema WaterManager+PulseUnit IL_08DF: ldfld System.UInt16 PulseUnit::m_group IL_08E4: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt16(System.UInt32 value) IL_08E9: ldarg.1 IL_08EA: ldloc.0 IL_08EB: ldfld PulseUnit[] WaterManager::m_heatingPulseUnits IL_08F0: ldloc.s 45 (System.Int32) IL_08F2: ldelema WaterManager+PulseUnit IL_08F7: ldfld System.UInt16 PulseUnit::m_node IL_08FC: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt16(System.UInt32 value) IL_0901: ldarg.1 IL_0902: ldloc.0 IL_0903: ldfld PulseUnit[] WaterManager::m_heatingPulseUnits IL_0908: ldloc.s 45 (System.Int32) IL_090A: ldelema WaterManager+PulseUnit IL_090F: ldfld System.Byte PulseUnit::m_x IL_0914: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt8(System.UInt32 value) IL_0919: ldarg.1 IL_091A: ldloc.0 IL_091B: ldfld PulseUnit[] WaterManager::m_heatingPulseUnits IL_0920: ldloc.s 45 (System.Int32) IL_0922: ldelema WaterManager+PulseUnit IL_0927: ldfld System.Byte PulseUnit::m_z IL_092C: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteUInt8(System.UInt32 value) IL_0931: ldloc.s 45 (System.Int32) IL_0933: ldc.i4.1 IL_0934: add IL_0935: dup IL_0936: stloc.s 45 (System.Int32) IL_0938: ldloc.0 IL_0939: ldfld PulseUnit[] WaterManager::m_heatingPulseUnits IL_093E: ldlen IL_093F: conv.i4 IL_0940: blt => Label65 IL_0945: ldc.i4.0 IL_0946: stloc.s 45 (System.Int32) IL_0948: Label64 IL_0948: Label65 IL_0948: ldloc.s 45 (System.Int32) IL_094A: ldloc.0 IL_094B: ldfld System.Int32 WaterManager::m_heatingPulseUnitEnd IL_0950: bne.un => Label66 IL_0955: ldarg.1 IL_0956: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_095B: stloc.s 46 (ColossalFramework.IO.EncodedArray+UShort) IL_095D: ldc.i4.0 IL_095E: stloc.s 47 (System.Int32) IL_0960: br => Label67 IL_0965: Label68 IL_0965: ldloc.s 46 (ColossalFramework.IO.EncodedArray+UShort) IL_0967: ldloc.0 IL_0968: ldfld Node[] WaterManager::m_nodeData IL_096D: ldloc.s 47 (System.Int32) IL_096F: ldelema WaterManager+Node IL_0974: ldfld System.UInt16 Node::m_waterPulseGroup IL_0979: callvirt System.Void ColossalFramework.IO.UShort::Write(System.UInt16 value) IL_097E: ldloc.s 47 (System.Int32) IL_0980: ldc.i4.1 IL_0981: add IL_0982: stloc.s 47 (System.Int32) IL_0984: Label67 IL_0984: ldloc.s 47 (System.Int32) IL_0986: ldc.i4 32768 IL_098B: blt => Label68 IL_0990: ldloc.s 46 (ColossalFramework.IO.EncodedArray+UShort) IL_0992: callvirt System.Void ColossalFramework.IO.UShort::EndWrite() IL_0997: ldarg.1 IL_0998: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_099D: stloc.s 48 (ColossalFramework.IO.EncodedArray+UShort) IL_099F: ldc.i4.0 IL_09A0: stloc.s 49 (System.Int32) IL_09A2: br => Label69 IL_09A7: Label70 IL_09A7: ldloc.s 48 (ColossalFramework.IO.EncodedArray+UShort) IL_09A9: ldloc.0 IL_09AA: ldfld Node[] WaterManager::m_nodeData IL_09AF: ldloc.s 49 (System.Int32) IL_09B1: ldelema WaterManager+Node IL_09B6: ldfld System.UInt16 Node::m_curWaterPressure IL_09BB: callvirt System.Void ColossalFramework.IO.UShort::Write(System.UInt16 value) IL_09C0: ldloc.s 49 (System.Int32) IL_09C2: ldc.i4.1 IL_09C3: add IL_09C4: stloc.s 49 (System.Int32) IL_09C6: Label69 IL_09C6: ldloc.s 49 (System.Int32) IL_09C8: ldc.i4 32768 IL_09CD: blt => Label70 IL_09D2: ldloc.s 48 (ColossalFramework.IO.EncodedArray+UShort) IL_09D4: callvirt System.Void ColossalFramework.IO.UShort::EndWrite() IL_09D9: ldarg.1 IL_09DA: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_09DF: stloc.s 50 (ColossalFramework.IO.EncodedArray+UShort) IL_09E1: ldc.i4.0 IL_09E2: stloc.s 51 (System.Int32) IL_09E4: br => Label71 IL_09E9: Label72 IL_09E9: ldloc.s 50 (ColossalFramework.IO.EncodedArray+UShort) IL_09EB: ldloc.0 IL_09EC: ldfld Node[] WaterManager::m_nodeData IL_09F1: ldloc.s 51 (System.Int32) IL_09F3: ldelema WaterManager+Node IL_09F8: ldfld System.UInt16 Node::m_extraWaterPressure IL_09FD: callvirt System.Void ColossalFramework.IO.UShort::Write(System.UInt16 value) IL_0A02: ldloc.s 51 (System.Int32) IL_0A04: ldc.i4.1 IL_0A05: add IL_0A06: stloc.s 51 (System.Int32) IL_0A08: Label71 IL_0A08: ldloc.s 51 (System.Int32) IL_0A0A: ldc.i4 32768 IL_0A0F: blt => Label72 IL_0A14: ldloc.s 50 (ColossalFramework.IO.EncodedArray+UShort) IL_0A16: callvirt System.Void ColossalFramework.IO.UShort::EndWrite() IL_0A1B: ldarg.1 IL_0A1C: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_0A21: stloc.s 52 (ColossalFramework.IO.EncodedArray+UShort) IL_0A23: ldc.i4.0 IL_0A24: stloc.s 53 (System.Int32) IL_0A26: br => Label73 IL_0A2B: Label74 IL_0A2B: ldloc.s 52 (ColossalFramework.IO.EncodedArray+UShort) IL_0A2D: ldloc.0 IL_0A2E: ldfld Node[] WaterManager::m_nodeData IL_0A33: ldloc.s 53 (System.Int32) IL_0A35: ldelema WaterManager+Node IL_0A3A: ldfld System.UInt16 Node::m_sewagePulseGroup IL_0A3F: callvirt System.Void ColossalFramework.IO.UShort::Write(System.UInt16 value) IL_0A44: ldloc.s 53 (System.Int32) IL_0A46: ldc.i4.1 IL_0A47: add IL_0A48: stloc.s 53 (System.Int32) IL_0A4A: Label73 IL_0A4A: ldloc.s 53 (System.Int32) IL_0A4C: ldc.i4 32768 IL_0A51: blt => Label74 IL_0A56: ldloc.s 52 (ColossalFramework.IO.EncodedArray+UShort) IL_0A58: callvirt System.Void ColossalFramework.IO.UShort::EndWrite() IL_0A5D: ldarg.1 IL_0A5E: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_0A63: stloc.s 54 (ColossalFramework.IO.EncodedArray+UShort) IL_0A65: ldc.i4.0 IL_0A66: stloc.s 55 (System.Int32) IL_0A68: br => Label75 IL_0A6D: Label76 IL_0A6D: ldloc.s 54 (ColossalFramework.IO.EncodedArray+UShort) IL_0A6F: ldloc.0 IL_0A70: ldfld Node[] WaterManager::m_nodeData IL_0A75: ldloc.s 55 (System.Int32) IL_0A77: ldelema WaterManager+Node IL_0A7C: ldfld System.UInt16 Node::m_curSewagePressure IL_0A81: callvirt System.Void ColossalFramework.IO.UShort::Write(System.UInt16 value) IL_0A86: ldloc.s 55 (System.Int32) IL_0A88: ldc.i4.1 IL_0A89: add IL_0A8A: stloc.s 55 (System.Int32) IL_0A8C: Label75 IL_0A8C: ldloc.s 55 (System.Int32) IL_0A8E: ldc.i4 32768 IL_0A93: blt => Label76 IL_0A98: ldloc.s 54 (ColossalFramework.IO.EncodedArray+UShort) IL_0A9A: callvirt System.Void ColossalFramework.IO.UShort::EndWrite() IL_0A9F: ldarg.1 IL_0AA0: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_0AA5: stloc.s 56 (ColossalFramework.IO.EncodedArray+UShort) IL_0AA7: ldc.i4.0 IL_0AA8: stloc.s 57 (System.Int32) IL_0AAA: br => Label77 IL_0AAF: Label78 IL_0AAF: ldloc.s 56 (ColossalFramework.IO.EncodedArray+UShort) IL_0AB1: ldloc.0 IL_0AB2: ldfld Node[] WaterManager::m_nodeData IL_0AB7: ldloc.s 57 (System.Int32) IL_0AB9: ldelema WaterManager+Node IL_0ABE: ldfld System.UInt16 Node::m_extraSewagePressure IL_0AC3: callvirt System.Void ColossalFramework.IO.UShort::Write(System.UInt16 value) IL_0AC8: ldloc.s 57 (System.Int32) IL_0ACA: ldc.i4.1 IL_0ACB: add IL_0ACC: stloc.s 57 (System.Int32) IL_0ACE: Label77 IL_0ACE: ldloc.s 57 (System.Int32) IL_0AD0: ldc.i4 32768 IL_0AD5: blt => Label78 IL_0ADA: ldloc.s 56 (ColossalFramework.IO.EncodedArray+UShort) IL_0ADC: callvirt System.Void ColossalFramework.IO.UShort::EndWrite() IL_0AE1: ldarg.1 IL_0AE2: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_0AE7: stloc.s 58 (ColossalFramework.IO.EncodedArray+UShort) IL_0AE9: ldc.i4.0 IL_0AEA: stloc.s 59 (System.Int32) IL_0AEC: br => Label79 IL_0AF1: Label80 IL_0AF1: ldloc.s 58 (ColossalFramework.IO.EncodedArray+UShort) IL_0AF3: ldloc.0 IL_0AF4: ldfld Node[] WaterManager::m_nodeData IL_0AF9: ldloc.s 59 (System.Int32) IL_0AFB: ldelema WaterManager+Node IL_0B00: ldfld System.UInt16 Node::m_heatingPulseGroup IL_0B05: callvirt System.Void ColossalFramework.IO.UShort::Write(System.UInt16 value) IL_0B0A: ldloc.s 59 (System.Int32) IL_0B0C: ldc.i4.1 IL_0B0D: add IL_0B0E: stloc.s 59 (System.Int32) IL_0B10: Label79 IL_0B10: ldloc.s 59 (System.Int32) IL_0B12: ldc.i4 32768 IL_0B17: blt => Label80 IL_0B1C: ldloc.s 58 (ColossalFramework.IO.EncodedArray+UShort) IL_0B1E: callvirt System.Void ColossalFramework.IO.UShort::EndWrite() IL_0B23: ldarg.1 IL_0B24: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_0B29: stloc.s 60 (ColossalFramework.IO.EncodedArray+UShort) IL_0B2B: ldc.i4.0 IL_0B2C: stloc.s 61 (System.Int32) IL_0B2E: br => Label81 IL_0B33: Label82 IL_0B33: ldloc.s 60 (ColossalFramework.IO.EncodedArray+UShort) IL_0B35: ldloc.0 IL_0B36: ldfld Node[] WaterManager::m_nodeData IL_0B3B: ldloc.s 61 (System.Int32) IL_0B3D: ldelema WaterManager+Node IL_0B42: ldfld System.UInt16 Node::m_curHeatingPressure IL_0B47: callvirt System.Void ColossalFramework.IO.UShort::Write(System.UInt16 value) IL_0B4C: ldloc.s 61 (System.Int32) IL_0B4E: ldc.i4.1 IL_0B4F: add IL_0B50: stloc.s 61 (System.Int32) IL_0B52: Label81 IL_0B52: ldloc.s 61 (System.Int32) IL_0B54: ldc.i4 32768 IL_0B59: blt => Label82 IL_0B5E: ldloc.s 60 (ColossalFramework.IO.EncodedArray+UShort) IL_0B60: callvirt System.Void ColossalFramework.IO.UShort::EndWrite() IL_0B65: ldarg.1 IL_0B66: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_0B6B: stloc.s 62 (ColossalFramework.IO.EncodedArray+UShort) IL_0B6D: ldc.i4.0 IL_0B6E: stloc.s 63 (System.Int32) IL_0B70: br => Label83 IL_0B75: Label84 IL_0B75: ldloc.s 62 (ColossalFramework.IO.EncodedArray+UShort) IL_0B77: ldloc.0 IL_0B78: ldfld Node[] WaterManager::m_nodeData IL_0B7D: ldloc.s 63 (System.Int32) IL_0B7F: ldelema WaterManager+Node IL_0B84: ldfld System.UInt16 Node::m_extraHeatingPressure IL_0B89: callvirt System.Void ColossalFramework.IO.UShort::Write(System.UInt16 value) IL_0B8E: ldloc.s 63 (System.Int32) IL_0B90: ldc.i4.1 IL_0B91: add IL_0B92: stloc.s 63 (System.Int32) IL_0B94: Label83 IL_0B94: ldloc.s 63 (System.Int32) IL_0B96: ldc.i4 32768 IL_0B9B: blt => Label84 IL_0BA0: ldloc.s 62 (ColossalFramework.IO.EncodedArray+UShort) IL_0BA2: callvirt System.Void ColossalFramework.IO.UShort::EndWrite() IL_0BA7: ldarg.1 IL_0BA8: call static ColossalFramework.IO.Byte ColossalFramework.IO.Byte::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_0BAD: stloc.s 64 (ColossalFramework.IO.EncodedArray+Byte) IL_0BAF: ldc.i4.0 IL_0BB0: stloc.s 65 (System.Int32) IL_0BB2: br => Label85 IL_0BB7: Label86 IL_0BB7: ldloc.s 64 (ColossalFramework.IO.EncodedArray+Byte) IL_0BB9: ldloc.0 IL_0BBA: ldfld Node[] WaterManager::m_nodeData IL_0BBF: ldloc.s 65 (System.Int32) IL_0BC1: ldelema WaterManager+Node IL_0BC6: ldfld System.Byte Node::m_pollution IL_0BCB: callvirt System.Void ColossalFramework.IO.Byte::Write(System.Byte value) IL_0BD0: ldloc.s 65 (System.Int32) IL_0BD2: ldc.i4.1 IL_0BD3: add IL_0BD4: stloc.s 65 (System.Int32) IL_0BD6: Label85 IL_0BD6: ldloc.s 65 (System.Int32) IL_0BD8: ldc.i4 32768 IL_0BDD: blt => Label86 IL_0BE2: ldloc.s 64 (ColossalFramework.IO.EncodedArray+Byte) IL_0BE4: callvirt System.Void ColossalFramework.IO.Byte::EndWrite() IL_0BE9: ldarg.1 IL_0BEA: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_0BEF: stloc.s 66 (ColossalFramework.IO.EncodedArray+UShort) IL_0BF1: ldc.i4.0 IL_0BF2: stloc.s 67 (System.Int32) IL_0BF4: br => Label87 IL_0BF9: Label88 IL_0BF9: ldloc.s 66 (ColossalFramework.IO.EncodedArray+UShort) IL_0BFB: ldloc.0 IL_0BFC: ldfld Node[] WaterManager::m_nodeData IL_0C01: ldloc.s 67 (System.Int32) IL_0C03: ldelema WaterManager+Node IL_0C08: ldfld System.UInt16 Node::m_collectWaterPressure IL_0C0D: callvirt System.Void ColossalFramework.IO.UShort::Write(System.UInt16 value) IL_0C12: ldloc.s 67 (System.Int32) IL_0C14: ldc.i4.1 IL_0C15: add IL_0C16: stloc.s 67 (System.Int32) IL_0C18: Label87 IL_0C18: ldloc.s 67 (System.Int32) IL_0C1A: ldc.i4 32768 IL_0C1F: blt => Label88 IL_0C24: ldloc.s 66 (ColossalFramework.IO.EncodedArray+UShort) IL_0C26: callvirt System.Void ColossalFramework.IO.UShort::EndWrite() IL_0C2B: ldarg.1 IL_0C2C: call static ColossalFramework.IO.UShort ColossalFramework.IO.UShort::BeginWrite(ColossalFramework.IO.DataSerializer serializer) IL_0C31: stloc.s 68 (ColossalFramework.IO.EncodedArray+UShort) IL_0C33: ldc.i4.0 IL_0C34: stloc.s 69 (System.Int32) IL_0C36: br => Label89 IL_0C3B: Label90 IL_0C3B: ldloc.s 68 (ColossalFramework.IO.EncodedArray+UShort) IL_0C3D: ldloc.0 IL_0C3E: ldfld Node[] WaterManager::m_nodeData IL_0C43: ldloc.s 69 (System.Int32) IL_0C45: ldelema WaterManager+Node IL_0C4A: ldfld System.UInt16 Node::m_collectSewagePressure IL_0C4F: callvirt System.Void ColossalFramework.IO.UShort::Write(System.UInt16 value) IL_0C54: ldloc.s 69 (System.Int32) IL_0C56: ldc.i4.1 IL_0C57: add IL_0C58: stloc.s 69 (System.Int32) IL_0C5A: Label89 IL_0C5A: ldloc.s 69 (System.Int32) IL_0C5C: ldc.i4 32768 IL_0C61: blt => Label90 IL_0C66: ldloc.s 68 (ColossalFramework.IO.EncodedArray+UShort) IL_0C68: callvirt System.Void ColossalFramework.IO.UShort::EndWrite() IL_0C6D: ldarg.1 IL_0C6E: ldloc.0 IL_0C6F: ldfld System.Int32 WaterManager::m_processedCells IL_0C74: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteInt32(System.Int32 value) IL_0C79: ldarg.1 IL_0C7A: ldloc.0 IL_0C7B: ldfld System.Int32 WaterManager::m_conductiveCells IL_0C80: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteInt32(System.Int32 value) IL_0C85: ldarg.1 IL_0C86: ldloc.0 IL_0C87: ldfld System.Boolean WaterManager::m_canContinue IL_0C8C: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteBool(System.Boolean value) IL_0C91: ldarg.1 IL_0C92: ldloc.0 IL_0C93: ldfld BuildingTypeGuide WaterManager::m_waterPumpMissingGuide IL_0C98: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteObject(BuildingTypeGuide value) IL_0C9D: ldarg.1 IL_0C9E: ldloc.0 IL_0C9F: ldfld BuildingTypeGuide WaterManager::m_drainPipeMissingGuide IL_0CA4: callvirt System.Void ColossalFramework.IO.DataSerializer::WriteObject(BuildingTypeGuide value) IL_0CA9: call static LoadingManager ColossalFramework.Singleton`1::get_instance() IL_0CAE: ldfld LoadingProfiler LoadingManager::m_loadingProfilerSimulation IL_0CB3: ldarg.1 IL_0CB4: ldstr "WaterManager" IL_0CB9: callvirt System.Void LoadingProfiler::EndSerialize(ColossalFramework.IO.DataSerializer s, System.String name) IL_0CBE: // end original IL_0CBE: ret DONE ### Patch: virtual System.Void WaterManager::Awake() ### Replacement: static System.Void WaterManager::WaterManager.Awake_Patch0(WaterManager this) IL_0000: // start original IL_0000: ldarg.0 IL_0001: call virtual System.Void SimulationManagerBase`2::Awake() IL_0006: ldarg.0 IL_0007: ldc.i4 65536 IL_000C: newarr WaterManager+Cell IL_0011: stfld Cell[] WaterManager::m_waterGrid IL_0016: ldarg.0 IL_0017: ldc.i4 1024 IL_001C: newarr WaterManager+PulseGroup IL_0021: stfld PulseGroup[] WaterManager::m_waterPulseGroups IL_0026: ldarg.0 IL_0027: ldc.i4 1024 IL_002C: newarr WaterManager+PulseGroup IL_0031: stfld PulseGroup[] WaterManager::m_sewagePulseGroups IL_0036: ldarg.0 IL_0037: ldc.i4 1024 IL_003C: newarr WaterManager+PulseGroup IL_0041: stfld PulseGroup[] WaterManager::m_heatingPulseGroups IL_0046: ldarg.0 IL_0047: ldc.i4 32768 IL_004C: newarr WaterManager+PulseUnit IL_0051: stfld PulseUnit[] WaterManager::m_waterPulseUnits IL_0056: ldarg.0 IL_0057: ldc.i4 32768 IL_005C: newarr WaterManager+PulseUnit IL_0061: stfld PulseUnit[] WaterManager::m_sewagePulseUnits IL_0066: ldarg.0 IL_0067: ldc.i4 32768 IL_006C: newarr WaterManager+PulseUnit IL_0071: stfld PulseUnit[] WaterManager::m_heatingPulseUnits IL_0076: ldarg.0 IL_0077: ldc.i4 32768 IL_007C: newarr WaterManager+Node IL_0081: stfld Node[] WaterManager::m_nodeData IL_0086: ldarg.0 IL_0087: ldc.i4 462 IL_008C: ldc.i4 462 IL_0091: ldc.i4.4 IL_0092: ldc.i4.0 IL_0093: ldc.i4.1 IL_0094: newobj System.Void UnityEngine.Texture2D::.ctor(System.Int32 width, System.Int32 height, UnityEngine.TextureFormat format, System.Boolean mipmap, System.Boolean linear) IL_0099: stfld UnityEngine.Texture2D WaterManager::m_waterTexture IL_009E: ldarg.0 IL_009F: ldfld UnityEngine.Texture2D WaterManager::m_waterTexture IL_00A4: ldc.i4.0 IL_00A5: callvirt System.Void UnityEngine.Texture::set_filterMode(UnityEngine.FilterMode value) IL_00AA: ldarg.0 IL_00AB: ldfld UnityEngine.Texture2D WaterManager::m_waterTexture IL_00B0: ldc.i4.1 IL_00B1: callvirt System.Void UnityEngine.Texture::set_wrapMode(UnityEngine.TextureWrapMode value) IL_00B6: ldstr "_WaterTexture" IL_00BB: ldarg.0 IL_00BC: ldfld UnityEngine.Texture2D WaterManager::m_waterTexture IL_00C1: call static System.Void UnityEngine.Shader::SetGlobalTexture(System.String name, UnityEngine.Texture value) IL_00C6: ldarg.0 IL_00C7: call System.Void WaterManager::UpdateWaterMapping() IL_00CC: ldarg.0 IL_00CD: ldc.i4.0 IL_00CE: stfld System.Int32 WaterManager::m_modifiedX1 IL_00D3: ldarg.0 IL_00D4: ldc.i4.0 IL_00D5: stfld System.Int32 WaterManager::m_modifiedZ1 IL_00DA: ldarg.0 IL_00DB: ldc.i4 461 IL_00E0: stfld System.Int32 WaterManager::m_modifiedX2 IL_00E5: ldarg.0 IL_00E6: ldc.i4 461 IL_00EB: stfld System.Int32 WaterManager::m_modifiedZ2 IL_00F0: // end original IL_00F0: ret DONE ### Patch: System.Void WaterManager::CheckHeating(UnityEngine.Vector3 pos, System.Boolean& heating) ### Replacement: static System.Void WaterManager::WaterManager.CheckHeating_Patch1(WaterManager this, UnityEngine.Vector3 pos, System.Boolean& heating) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: System.Int32 IL_0000: Local var 2: System.Single IL_0000: Local var 3: System.Single IL_0000: Local var 4: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 4 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 4 (System.Boolean) IL_000E: ldloc 4 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 2 IL_001B: call static System.Boolean EightyOne2.Patches.NoPipesPatches::CheckHeatingPrefix(System.Boolean& heating) IL_0020: stloc 4 (System.Boolean) IL_0024: Label1 IL_0024: nop IL_0025: ldloc 4 (System.Boolean) IL_0029: brfalse => Label0 IL_002E: // start original IL_002E: ldarga.s 1 IL_0030: ldfld System.Single UnityEngine.Vector3::x IL_0035: ldc.r4 38.25 IL_003A: div IL_003B: ldc.r4 231 IL_0040: add IL_0041: conv.i4 IL_0042: ldc.i4.0 IL_0043: ldc.i4 461 IL_0048: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_004D: stloc.0 IL_004E: ldarga.s 1 IL_0050: ldfld System.Single UnityEngine.Vector3::z IL_0055: ldc.r4 38.25 IL_005A: div IL_005B: ldc.r4 231 IL_0060: add IL_0061: conv.i4 IL_0062: ldc.i4.0 IL_0063: ldc.i4 461 IL_0068: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_006D: stloc.1 IL_006E: ldarg.0 IL_006F: ldarg.1 IL_0070: ldloc.0 IL_0071: ldloc.1 IL_0072: ldarg.2 IL_0073: call System.Boolean WaterManager::CheckHeatingImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Boolean& heating) IL_0078: brfalse => Label2 IL_007D: br => Label32 IL_0082: Label2 IL_0082: ldarg.0 IL_0083: ldfld Cell[] WaterManager::m_waterGrid IL_0088: ldloc.1 IL_0089: ldc.i4 462 IL_008E: mul IL_008F: ldloc.0 IL_0090: add IL_0091: ldelema WaterManager+Cell IL_0096: ldfld System.Byte Cell::m_conductivity2 IL_009B: brtrue => Label3 IL_00A0: br => Label33 IL_00A5: Label3 IL_00A5: ldloc.0 IL_00A6: conv.r4 IL_00A7: ldc.r4 0.5 IL_00AC: add IL_00AD: ldc.r4 231 IL_00B2: sub IL_00B3: ldc.r4 38.25 IL_00B8: mul IL_00B9: stloc.2 IL_00BA: ldloc.1 IL_00BB: conv.r4 IL_00BC: ldc.r4 0.5 IL_00C1: add IL_00C2: ldc.r4 231 IL_00C7: sub IL_00C8: ldc.r4 38.25 IL_00CD: mul IL_00CE: stloc.3 IL_00CF: ldarga.s 1 IL_00D1: ldfld System.Single UnityEngine.Vector3::z IL_00D6: ldloc.3 IL_00D7: ble.un => Label4 IL_00DC: ldloc.1 IL_00DD: ldc.i4 461 IL_00E2: bge => Label5 IL_00E7: ldarg.0 IL_00E8: ldarg.1 IL_00E9: ldloc.0 IL_00EA: ldloc.1 IL_00EB: ldc.i4.1 IL_00EC: add IL_00ED: ldarg.2 IL_00EE: call System.Boolean WaterManager::CheckHeatingImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Boolean& heating) IL_00F3: brfalse => Label6 IL_00F8: br => Label34 IL_00FD: Label6 IL_00FD: br => Label7 IL_0102: Label4 IL_0102: Label5 IL_0102: ldarga.s 1 IL_0104: ldfld System.Single UnityEngine.Vector3::z IL_0109: ldloc.3 IL_010A: bge.un => Label8 IL_010F: ldloc.1 IL_0110: ldc.i4.0 IL_0111: ble => Label9 IL_0116: ldarg.0 IL_0117: ldarg.1 IL_0118: ldloc.0 IL_0119: ldloc.1 IL_011A: ldc.i4.1 IL_011B: sub IL_011C: ldarg.2 IL_011D: call System.Boolean WaterManager::CheckHeatingImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Boolean& heating) IL_0122: brfalse => Label10 IL_0127: br => Label35 IL_012C: Label7 IL_012C: Label8 IL_012C: Label9 IL_012C: Label10 IL_012C: ldarga.s 1 IL_012E: ldfld System.Single UnityEngine.Vector3::x IL_0133: ldloc.2 IL_0134: ble.un => Label11 IL_0139: ldloc.0 IL_013A: ldc.i4 461 IL_013F: bge => Label12 IL_0144: ldarg.0 IL_0145: ldarg.1 IL_0146: ldloc.0 IL_0147: ldc.i4.1 IL_0148: add IL_0149: ldloc.1 IL_014A: ldarg.2 IL_014B: call System.Boolean WaterManager::CheckHeatingImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Boolean& heating) IL_0150: brfalse => Label13 IL_0155: br => Label36 IL_015A: Label13 IL_015A: ldarga.s 1 IL_015C: ldfld System.Single UnityEngine.Vector3::z IL_0161: ldloc.3 IL_0162: ble.un => Label14 IL_0167: ldloc.1 IL_0168: ldc.i4 461 IL_016D: bge => Label15 IL_0172: ldarg.0 IL_0173: ldarg.1 IL_0174: ldloc.0 IL_0175: ldc.i4.1 IL_0176: add IL_0177: ldloc.1 IL_0178: ldc.i4.1 IL_0179: add IL_017A: ldarg.2 IL_017B: call System.Boolean WaterManager::CheckHeatingImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Boolean& heating) IL_0180: brfalse => Label16 IL_0185: br => Label37 IL_018A: Label16 IL_018A: br => Label17 IL_018F: Label14 IL_018F: Label15 IL_018F: ldarga.s 1 IL_0191: ldfld System.Single UnityEngine.Vector3::z IL_0196: ldloc.3 IL_0197: bge.un => Label18 IL_019C: ldloc.1 IL_019D: ldc.i4.0 IL_019E: ble => Label19 IL_01A3: ldarg.0 IL_01A4: ldarg.1 IL_01A5: ldloc.0 IL_01A6: ldc.i4.1 IL_01A7: add IL_01A8: ldloc.1 IL_01A9: ldc.i4.1 IL_01AA: sub IL_01AB: ldarg.2 IL_01AC: call System.Boolean WaterManager::CheckHeatingImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Boolean& heating) IL_01B1: brfalse => Label20 IL_01B6: br => Label38 IL_01BB: Label17 IL_01BB: Label18 IL_01BB: Label19 IL_01BB: Label20 IL_01BB: br => Label21 IL_01C0: Label11 IL_01C0: Label12 IL_01C0: ldarga.s 1 IL_01C2: ldfld System.Single UnityEngine.Vector3::x IL_01C7: ldloc.2 IL_01C8: bge.un => Label22 IL_01CD: ldloc.0 IL_01CE: ldc.i4.0 IL_01CF: ble => Label23 IL_01D4: ldarg.0 IL_01D5: ldarg.1 IL_01D6: ldloc.0 IL_01D7: ldc.i4.1 IL_01D8: sub IL_01D9: ldloc.1 IL_01DA: ldarg.2 IL_01DB: call System.Boolean WaterManager::CheckHeatingImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Boolean& heating) IL_01E0: brfalse => Label24 IL_01E5: br => Label39 IL_01EA: Label24 IL_01EA: ldarga.s 1 IL_01EC: ldfld System.Single UnityEngine.Vector3::z IL_01F1: ldloc.3 IL_01F2: ble.un => Label25 IL_01F7: ldloc.1 IL_01F8: ldc.i4 461 IL_01FD: bge => Label26 IL_0202: ldarg.0 IL_0203: ldarg.1 IL_0204: ldloc.0 IL_0205: ldc.i4.1 IL_0206: sub IL_0207: ldloc.1 IL_0208: ldc.i4.1 IL_0209: add IL_020A: ldarg.2 IL_020B: call System.Boolean WaterManager::CheckHeatingImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Boolean& heating) IL_0210: brfalse => Label27 IL_0215: br => Label40 IL_021A: Label27 IL_021A: br => Label28 IL_021F: Label25 IL_021F: Label26 IL_021F: ldarga.s 1 IL_0221: ldfld System.Single UnityEngine.Vector3::z IL_0226: ldloc.3 IL_0227: bge.un => Label29 IL_022C: ldloc.1 IL_022D: ldc.i4.0 IL_022E: ble => Label30 IL_0233: ldarg.0 IL_0234: ldarg.1 IL_0235: ldloc.0 IL_0236: ldc.i4.1 IL_0237: sub IL_0238: ldloc.1 IL_0239: ldc.i4.1 IL_023A: sub IL_023B: ldarg.2 IL_023C: call System.Boolean WaterManager::CheckHeatingImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Boolean& heating) IL_0241: brfalse => Label31 IL_0246: // end original IL_0246: Label21 IL_0246: Label22 IL_0246: Label23 IL_0246: Label28 IL_0246: Label29 IL_0246: Label30 IL_0246: Label31 IL_0246: Label32 IL_0246: Label33 IL_0246: Label34 IL_0246: Label35 IL_0246: Label36 IL_0246: Label37 IL_0246: Label38 IL_0246: Label39 IL_0246: Label40 IL_0246: Label0 IL_0246: ret DONE ### Patch: System.Boolean WaterManager::CheckHeatingImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Boolean& heating) ### Replacement: static System.Boolean WaterManager::WaterManager.CheckHeatingImpl_Patch0(WaterManager this, UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Boolean& heating) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: WaterManager/Cell IL_0000: Local var 2: NetManager IL_0000: Local var 3: System.UInt16 IL_0000: Local var 4: System.UInt16 IL_0000: Local var 5: System.UInt16 IL_0000: Local var 6: NetNode/Flags IL_0000: Local var 7: NetNode/Flags IL_0000: Local var 8: ColossalFramework.Math.Segment2 IL_0000: Local var 9: System.Single IL_0000: // start original IL_0000: ldarg.3 IL_0001: ldc.i4 462 IL_0006: mul IL_0007: ldarg.2 IL_0008: add IL_0009: stloc.0 IL_000A: ldarg.0 IL_000B: ldfld Cell[] WaterManager::m_waterGrid IL_0010: ldloc.0 IL_0011: ldelema WaterManager+Cell IL_0016: ldobj WaterManager+Cell IL_001B: stloc.1 IL_001C: ldloca.s 1 (WaterManager+Cell) IL_001E: ldfld System.Boolean Cell::m_hasHeating IL_0023: brfalse => Label0 IL_0028: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_002D: stloc.2 IL_002E: ldloca.s 1 (WaterManager+Cell) IL_0030: ldfld System.UInt16 Cell::m_closestPipeSegment2 IL_0035: stloc.3 IL_0036: ldloc.2 IL_0037: ldfld Array16`1 NetManager::m_segments IL_003C: ldfld NetSegment[] Array16`1::m_buffer IL_0041: ldloc.3 IL_0042: ldelema NetSegment IL_0047: ldfld System.UInt16 NetSegment::m_startNode IL_004C: stloc.s 4 (System.UInt16) IL_004E: ldloc.2 IL_004F: ldfld Array16`1 NetManager::m_segments IL_0054: ldfld NetSegment[] Array16`1::m_buffer IL_0059: ldloc.3 IL_005A: ldelema NetSegment IL_005F: ldfld System.UInt16 NetSegment::m_endNode IL_0064: stloc.s 5 (System.UInt16) IL_0066: ldloc.2 IL_0067: ldfld Array16`1 NetManager::m_nodes IL_006C: ldfld NetNode[] Array16`1::m_buffer IL_0071: ldloc.s 4 (System.UInt16) IL_0073: ldelema NetNode IL_0078: ldfld Flags NetNode::m_flags IL_007D: stloc.s 6 (NetNode+Flags) IL_007F: ldloc.2 IL_0080: ldfld Array16`1 NetManager::m_nodes IL_0085: ldfld NetNode[] Array16`1::m_buffer IL_008A: ldloc.s 5 (System.UInt16) IL_008C: ldelema NetNode IL_0091: ldfld Flags NetNode::m_flags IL_0096: stloc.s 7 (NetNode+Flags) IL_0098: ldloc.s 6 (NetNode+Flags) IL_009A: ldloc.s 7 (NetNode+Flags) IL_009C: and IL_009D: ldc.i4 33554432 IL_00A2: and IL_00A3: brfalse => Label1 IL_00A8: ldloca.s 8 (ColossalFramework.Math.Segment2) IL_00AA: ldloc.2 IL_00AB: ldfld Array16`1 NetManager::m_nodes IL_00B0: ldfld NetNode[] Array16`1::m_buffer IL_00B5: ldloc.s 4 (System.UInt16) IL_00B7: ldelema NetNode IL_00BC: ldfld UnityEngine.Vector3 NetNode::m_position IL_00C1: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_00C6: stfld UnityEngine.Vector2 ColossalFramework.Math.Segment2::a IL_00CB: ldloca.s 8 (ColossalFramework.Math.Segment2) IL_00CD: ldloc.2 IL_00CE: ldfld Array16`1 NetManager::m_nodes IL_00D3: ldfld NetNode[] Array16`1::m_buffer IL_00D8: ldloc.s 5 (System.UInt16) IL_00DA: ldelema NetNode IL_00DF: ldfld UnityEngine.Vector3 NetNode::m_position IL_00E4: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_00E9: stfld UnityEngine.Vector2 ColossalFramework.Math.Segment2::b IL_00EE: ldloca.s 8 (ColossalFramework.Math.Segment2) IL_00F0: ldarg.1 IL_00F1: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_00F6: ldloca.s 9 (System.Single) IL_00F8: call System.Single ColossalFramework.Math.Segment2::DistanceSqr(UnityEngine.Vector2 p, System.Single& u) IL_00FD: conv.r8 IL_00FE: ldc.r8 9025 IL_0107: bge.un => Label2 IL_010C: ldarg.s 4 IL_010E: ldc.i4.1 IL_010F: stind.i1 IL_0110: ldc.i4.1 IL_0111: br => Label3 IL_0116: Label0 IL_0116: Label1 IL_0116: Label2 IL_0116: ldarg.s 4 IL_0118: ldc.i4.0 IL_0119: stind.i1 IL_011A: ldc.i4.0 IL_011B: // end original IL_011B: Label3 IL_011B: ret DONE ### Patch: System.Void WaterManager::CheckWater(UnityEngine.Vector3 pos, System.Boolean& water, System.Boolean& sewage, System.Byte& waterPollution) ### Replacement: static System.Void WaterManager::WaterManager.CheckWater_Patch1(WaterManager this, UnityEngine.Vector3 pos, System.Boolean& water, System.Boolean& sewage, System.Byte& waterPollution) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: System.Int32 IL_0000: Local var 2: System.Single IL_0000: Local var 3: System.Single IL_0000: Local var 4: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 4 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 4 (System.Boolean) IL_000E: ldloc 4 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 2 IL_001B: ldarg 3 IL_001F: ldarg 4 IL_0023: call static System.Boolean EightyOne2.Patches.NoPipesPatches::CheckWaterPrefix(System.Boolean& water, System.Boolean& sewage, System.Byte& waterPollution) IL_0028: stloc 4 (System.Boolean) IL_002C: Label1 IL_002C: nop IL_002D: ldloc 4 (System.Boolean) IL_0031: brfalse => Label0 IL_0036: // start original IL_0036: ldarga.s 1 IL_0038: ldfld System.Single UnityEngine.Vector3::x IL_003D: ldc.r4 38.25 IL_0042: div IL_0043: ldc.r4 231 IL_0048: add IL_0049: conv.i4 IL_004A: ldc.i4.0 IL_004B: ldc.i4 461 IL_0050: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_0055: stloc.0 IL_0056: ldarga.s 1 IL_0058: ldfld System.Single UnityEngine.Vector3::z IL_005D: ldc.r4 38.25 IL_0062: div IL_0063: ldc.r4 231 IL_0068: add IL_0069: conv.i4 IL_006A: ldc.i4.0 IL_006B: ldc.i4 461 IL_0070: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_0075: stloc.1 IL_0076: ldarg.0 IL_0077: ldarg.1 IL_0078: ldloc.0 IL_0079: ldloc.1 IL_007A: ldarg.2 IL_007B: ldarg.3 IL_007C: ldarg.s 4 IL_007E: call System.Boolean WaterManager::CheckWaterImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Boolean& water, System.Boolean& sewage, System.Byte& waterPollution) IL_0083: brfalse => Label2 IL_0088: br => Label32 IL_008D: Label2 IL_008D: ldarg.0 IL_008E: ldfld Cell[] WaterManager::m_waterGrid IL_0093: ldloc.1 IL_0094: ldc.i4 462 IL_0099: mul IL_009A: ldloc.0 IL_009B: add IL_009C: ldelema WaterManager+Cell IL_00A1: ldfld System.Byte Cell::m_conductivity IL_00A6: brtrue => Label3 IL_00AB: br => Label33 IL_00B0: Label3 IL_00B0: ldloc.0 IL_00B1: conv.r4 IL_00B2: ldc.r4 0.5 IL_00B7: add IL_00B8: ldc.r4 231 IL_00BD: sub IL_00BE: ldc.r4 38.25 IL_00C3: mul IL_00C4: stloc.2 IL_00C5: ldloc.1 IL_00C6: conv.r4 IL_00C7: ldc.r4 0.5 IL_00CC: add IL_00CD: ldc.r4 231 IL_00D2: sub IL_00D3: ldc.r4 38.25 IL_00D8: mul IL_00D9: stloc.3 IL_00DA: ldarga.s 1 IL_00DC: ldfld System.Single UnityEngine.Vector3::z IL_00E1: ldloc.3 IL_00E2: ble.un => Label4 IL_00E7: ldloc.1 IL_00E8: ldc.i4 461 IL_00ED: bge => Label5 IL_00F2: ldarg.0 IL_00F3: ldarg.1 IL_00F4: ldloc.0 IL_00F5: ldloc.1 IL_00F6: ldc.i4.1 IL_00F7: add IL_00F8: ldarg.2 IL_00F9: ldarg.3 IL_00FA: ldarg.s 4 IL_00FC: call System.Boolean WaterManager::CheckWaterImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Boolean& water, System.Boolean& sewage, System.Byte& waterPollution) IL_0101: brfalse => Label6 IL_0106: br => Label34 IL_010B: Label6 IL_010B: br => Label7 IL_0110: Label4 IL_0110: Label5 IL_0110: ldarga.s 1 IL_0112: ldfld System.Single UnityEngine.Vector3::z IL_0117: ldloc.3 IL_0118: bge.un => Label8 IL_011D: ldloc.1 IL_011E: ldc.i4.0 IL_011F: ble => Label9 IL_0124: ldarg.0 IL_0125: ldarg.1 IL_0126: ldloc.0 IL_0127: ldloc.1 IL_0128: ldc.i4.1 IL_0129: sub IL_012A: ldarg.2 IL_012B: ldarg.3 IL_012C: ldarg.s 4 IL_012E: call System.Boolean WaterManager::CheckWaterImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Boolean& water, System.Boolean& sewage, System.Byte& waterPollution) IL_0133: brfalse => Label10 IL_0138: br => Label35 IL_013D: Label7 IL_013D: Label8 IL_013D: Label9 IL_013D: Label10 IL_013D: ldarga.s 1 IL_013F: ldfld System.Single UnityEngine.Vector3::x IL_0144: ldloc.2 IL_0145: ble.un => Label11 IL_014A: ldloc.0 IL_014B: ldc.i4 461 IL_0150: bge => Label12 IL_0155: ldarg.0 IL_0156: ldarg.1 IL_0157: ldloc.0 IL_0158: ldc.i4.1 IL_0159: add IL_015A: ldloc.1 IL_015B: ldarg.2 IL_015C: ldarg.3 IL_015D: ldarg.s 4 IL_015F: call System.Boolean WaterManager::CheckWaterImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Boolean& water, System.Boolean& sewage, System.Byte& waterPollution) IL_0164: brfalse => Label13 IL_0169: br => Label36 IL_016E: Label13 IL_016E: ldarga.s 1 IL_0170: ldfld System.Single UnityEngine.Vector3::z IL_0175: ldloc.3 IL_0176: ble.un => Label14 IL_017B: ldloc.1 IL_017C: ldc.i4 461 IL_0181: bge => Label15 IL_0186: ldarg.0 IL_0187: ldarg.1 IL_0188: ldloc.0 IL_0189: ldc.i4.1 IL_018A: add IL_018B: ldloc.1 IL_018C: ldc.i4.1 IL_018D: add IL_018E: ldarg.2 IL_018F: ldarg.3 IL_0190: ldarg.s 4 IL_0192: call System.Boolean WaterManager::CheckWaterImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Boolean& water, System.Boolean& sewage, System.Byte& waterPollution) IL_0197: brfalse => Label16 IL_019C: br => Label37 IL_01A1: Label16 IL_01A1: br => Label17 IL_01A6: Label14 IL_01A6: Label15 IL_01A6: ldarga.s 1 IL_01A8: ldfld System.Single UnityEngine.Vector3::z IL_01AD: ldloc.3 IL_01AE: bge.un => Label18 IL_01B3: ldloc.1 IL_01B4: ldc.i4.0 IL_01B5: ble => Label19 IL_01BA: ldarg.0 IL_01BB: ldarg.1 IL_01BC: ldloc.0 IL_01BD: ldc.i4.1 IL_01BE: add IL_01BF: ldloc.1 IL_01C0: ldc.i4.1 IL_01C1: sub IL_01C2: ldarg.2 IL_01C3: ldarg.3 IL_01C4: ldarg.s 4 IL_01C6: call System.Boolean WaterManager::CheckWaterImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Boolean& water, System.Boolean& sewage, System.Byte& waterPollution) IL_01CB: brfalse => Label20 IL_01D0: br => Label38 IL_01D5: Label17 IL_01D5: Label18 IL_01D5: Label19 IL_01D5: Label20 IL_01D5: br => Label21 IL_01DA: Label11 IL_01DA: Label12 IL_01DA: ldarga.s 1 IL_01DC: ldfld System.Single UnityEngine.Vector3::x IL_01E1: ldloc.2 IL_01E2: bge.un => Label22 IL_01E7: ldloc.0 IL_01E8: ldc.i4.0 IL_01E9: ble => Label23 IL_01EE: ldarg.0 IL_01EF: ldarg.1 IL_01F0: ldloc.0 IL_01F1: ldc.i4.1 IL_01F2: sub IL_01F3: ldloc.1 IL_01F4: ldarg.2 IL_01F5: ldarg.3 IL_01F6: ldarg.s 4 IL_01F8: call System.Boolean WaterManager::CheckWaterImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Boolean& water, System.Boolean& sewage, System.Byte& waterPollution) IL_01FD: brfalse => Label24 IL_0202: br => Label39 IL_0207: Label24 IL_0207: ldarga.s 1 IL_0209: ldfld System.Single UnityEngine.Vector3::z IL_020E: ldloc.3 IL_020F: ble.un => Label25 IL_0214: ldloc.1 IL_0215: ldc.i4 461 IL_021A: bge => Label26 IL_021F: ldarg.0 IL_0220: ldarg.1 IL_0221: ldloc.0 IL_0222: ldc.i4.1 IL_0223: sub IL_0224: ldloc.1 IL_0225: ldc.i4.1 IL_0226: add IL_0227: ldarg.2 IL_0228: ldarg.3 IL_0229: ldarg.s 4 IL_022B: call System.Boolean WaterManager::CheckWaterImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Boolean& water, System.Boolean& sewage, System.Byte& waterPollution) IL_0230: brfalse => Label27 IL_0235: br => Label40 IL_023A: Label27 IL_023A: br => Label28 IL_023F: Label25 IL_023F: Label26 IL_023F: ldarga.s 1 IL_0241: ldfld System.Single UnityEngine.Vector3::z IL_0246: ldloc.3 IL_0247: bge.un => Label29 IL_024C: ldloc.1 IL_024D: ldc.i4.0 IL_024E: ble => Label30 IL_0253: ldarg.0 IL_0254: ldarg.1 IL_0255: ldloc.0 IL_0256: ldc.i4.1 IL_0257: sub IL_0258: ldloc.1 IL_0259: ldc.i4.1 IL_025A: sub IL_025B: ldarg.2 IL_025C: ldarg.3 IL_025D: ldarg.s 4 IL_025F: call System.Boolean WaterManager::CheckWaterImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Boolean& water, System.Boolean& sewage, System.Byte& waterPollution) IL_0264: brfalse => Label31 IL_0269: // end original IL_0269: Label21 IL_0269: Label22 IL_0269: Label23 IL_0269: Label28 IL_0269: Label29 IL_0269: Label30 IL_0269: Label31 IL_0269: Label32 IL_0269: Label33 IL_0269: Label34 IL_0269: Label35 IL_0269: Label36 IL_0269: Label37 IL_0269: Label38 IL_0269: Label39 IL_0269: Label40 IL_0269: Label0 IL_0269: ret DONE ### Patch: System.Boolean WaterManager::CheckWaterImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Boolean& water, System.Boolean& sewage, System.Byte& waterPollution) ### Replacement: static System.Boolean WaterManager::WaterManager.CheckWaterImpl_Patch0(WaterManager this, UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Boolean& water, System.Boolean& sewage, System.Byte& waterPollution) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: WaterManager/Cell IL_0000: Local var 2: NetManager IL_0000: Local var 3: System.UInt16 IL_0000: Local var 4: System.UInt16 IL_0000: Local var 5: System.UInt16 IL_0000: Local var 6: NetNode/Flags IL_0000: Local var 7: NetNode/Flags IL_0000: Local var 8: ColossalFramework.Math.Segment2 IL_0000: Local var 9: System.Single IL_0000: // start original IL_0000: ldarg.3 IL_0001: ldc.i4 462 IL_0006: mul IL_0007: ldarg.2 IL_0008: add IL_0009: stloc.0 IL_000A: ldarg.0 IL_000B: ldfld Cell[] WaterManager::m_waterGrid IL_0010: ldloc.0 IL_0011: ldelema WaterManager+Cell IL_0016: ldobj WaterManager+Cell IL_001B: stloc.1 IL_001C: ldloca.s 1 (WaterManager+Cell) IL_001E: ldfld System.Boolean Cell::m_hasWater IL_0023: brtrue => Label0 IL_0028: ldloca.s 1 (WaterManager+Cell) IL_002A: ldfld System.Boolean Cell::m_hasSewage IL_002F: brfalse => Label1 IL_0034: Label0 IL_0034: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0039: stloc.2 IL_003A: ldloca.s 1 (WaterManager+Cell) IL_003C: ldfld System.UInt16 Cell::m_closestPipeSegment IL_0041: stloc.3 IL_0042: ldloc.2 IL_0043: ldfld Array16`1 NetManager::m_segments IL_0048: ldfld NetSegment[] Array16`1::m_buffer IL_004D: ldloc.3 IL_004E: ldelema NetSegment IL_0053: ldfld System.UInt16 NetSegment::m_startNode IL_0058: stloc.s 4 (System.UInt16) IL_005A: ldloc.2 IL_005B: ldfld Array16`1 NetManager::m_segments IL_0060: ldfld NetSegment[] Array16`1::m_buffer IL_0065: ldloc.3 IL_0066: ldelema NetSegment IL_006B: ldfld System.UInt16 NetSegment::m_endNode IL_0070: stloc.s 5 (System.UInt16) IL_0072: ldloc.2 IL_0073: ldfld Array16`1 NetManager::m_nodes IL_0078: ldfld NetNode[] Array16`1::m_buffer IL_007D: ldloc.s 4 (System.UInt16) IL_007F: ldelema NetNode IL_0084: ldfld Flags NetNode::m_flags IL_0089: stloc.s 6 (NetNode+Flags) IL_008B: ldloc.2 IL_008C: ldfld Array16`1 NetManager::m_nodes IL_0091: ldfld NetNode[] Array16`1::m_buffer IL_0096: ldloc.s 5 (System.UInt16) IL_0098: ldelema NetNode IL_009D: ldfld Flags NetNode::m_flags IL_00A2: stloc.s 7 (NetNode+Flags) IL_00A4: ldloc.s 6 (NetNode+Flags) IL_00A6: ldloc.s 7 (NetNode+Flags) IL_00A8: and IL_00A9: ldc.i4 196608 IL_00AE: and IL_00AF: brfalse => Label2 IL_00B4: ldloca.s 8 (ColossalFramework.Math.Segment2) IL_00B6: ldloc.2 IL_00B7: ldfld Array16`1 NetManager::m_nodes IL_00BC: ldfld NetNode[] Array16`1::m_buffer IL_00C1: ldloc.s 4 (System.UInt16) IL_00C3: ldelema NetNode IL_00C8: ldfld UnityEngine.Vector3 NetNode::m_position IL_00CD: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_00D2: stfld UnityEngine.Vector2 ColossalFramework.Math.Segment2::a IL_00D7: ldloca.s 8 (ColossalFramework.Math.Segment2) IL_00D9: ldloc.2 IL_00DA: ldfld Array16`1 NetManager::m_nodes IL_00DF: ldfld NetNode[] Array16`1::m_buffer IL_00E4: ldloc.s 5 (System.UInt16) IL_00E6: ldelema NetNode IL_00EB: ldfld UnityEngine.Vector3 NetNode::m_position IL_00F0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_00F5: stfld UnityEngine.Vector2 ColossalFramework.Math.Segment2::b IL_00FA: ldloca.s 8 (ColossalFramework.Math.Segment2) IL_00FC: ldarg.1 IL_00FD: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0102: ldloca.s 9 (System.Single) IL_0104: call System.Single ColossalFramework.Math.Segment2::DistanceSqr(UnityEngine.Vector2 p, System.Single& u) IL_0109: conv.r8 IL_010A: ldc.r8 9025 IL_0113: bge.un => Label3 IL_0118: ldarg.s 4 IL_011A: ldloca.s 1 (WaterManager+Cell) IL_011C: ldfld System.Boolean Cell::m_hasWater IL_0121: brfalse => Label4 IL_0126: ldloc.s 6 (NetNode+Flags) IL_0128: ldloc.s 7 (NetNode+Flags) IL_012A: and IL_012B: ldc.i4 65536 IL_0130: and IL_0131: ldc.i4.0 IL_0132: ceq IL_0134: ldc.i4.0 IL_0135: ceq IL_0137: br => Label5 IL_013C: Label4 IL_013C: ldc.i4.0 IL_013D: Label5 IL_013D: stind.i1 IL_013E: ldarg.s 5 IL_0140: ldloca.s 1 (WaterManager+Cell) IL_0142: ldfld System.Boolean Cell::m_hasSewage IL_0147: brfalse => Label6 IL_014C: ldloc.s 6 (NetNode+Flags) IL_014E: ldloc.s 7 (NetNode+Flags) IL_0150: and IL_0151: ldc.i4 131072 IL_0156: and IL_0157: ldc.i4.0 IL_0158: ceq IL_015A: ldc.i4.0 IL_015B: ceq IL_015D: br => Label7 IL_0162: Label6 IL_0162: ldc.i4.0 IL_0163: Label7 IL_0163: stind.i1 IL_0164: ldarg.s 4 IL_0166: ldind.i1 IL_0167: brfalse => Label8 IL_016C: ldarg.s 6 IL_016E: ldarg.0 IL_016F: ldfld Cell[] WaterManager::m_waterGrid IL_0174: ldloc.0 IL_0175: ldelema WaterManager+Cell IL_017A: ldfld System.Byte Cell::m_pollution IL_017F: stind.i1 IL_0180: br => Label9 IL_0185: Label8 IL_0185: ldarg.s 6 IL_0187: ldc.i4.0 IL_0188: stind.i1 IL_0189: Label9 IL_0189: ldc.i4.1 IL_018A: br => Label10 IL_018F: Label1 IL_018F: Label2 IL_018F: Label3 IL_018F: ldarg.s 4 IL_0191: ldc.i4.0 IL_0192: stind.i1 IL_0193: ldarg.s 5 IL_0195: ldc.i4.0 IL_0196: stind.i1 IL_0197: ldarg.s 6 IL_0199: ldc.i4.0 IL_019A: stind.i1 IL_019B: ldc.i4.0 IL_019C: // end original IL_019C: Label10 IL_019C: ret DONE ### Patch: virtual System.Void WaterManager::SimulationStepImpl(System.Int32 subStep) ### Replacement: static System.Void WaterManager::WaterManager.SimulationStepImpl_Patch0(WaterManager this, System.Int32 subStep) IL_0000: Local var 0: NetManager IL_0000: Local var 1: System.UInt32 IL_0000: Local var 2: System.Int32 IL_0000: Local var 3: System.Int32 IL_0000: Local var 4: System.Int32 IL_0000: Local var 5: System.Int32 IL_0000: Local var 6: WaterManager/Node IL_0000: Local var 7: NetNode/Flags IL_0000: Local var 8: NetInfo IL_0000: Local var 9: System.Int32 IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Int32 IL_0000: Local var 12: WaterManager/PulseGroup IL_0000: Local var 13: System.Int32 IL_0000: Local var 14: WaterManager/PulseUnit IL_0000: Local var 15: WaterManager/PulseGroup IL_0000: Local var 16: WaterManager/PulseUnit IL_0000: Local var 17: WaterManager/PulseGroup IL_0000: Local var 18: WaterManager/PulseUnit IL_0000: Local var 19: System.Int32 IL_0000: Local var 20: System.Int32 IL_0000: Local var 21: System.Int32 IL_0000: Local var 22: System.Int32 IL_0000: Local var 23: System.Int32 IL_0000: Local var 24: WaterManager/Cell IL_0000: Local var 25: System.Int32 IL_0000: Local var 26: System.Int32 IL_0000: Local var 27: System.Int32 IL_0000: Local var 28: System.Int32 IL_0000: Local var 29: WaterManager/PulseUnit IL_0000: Local var 30: System.UInt32 IL_0000: Local var 31: System.Int32 IL_0000: Local var 32: WaterManager/Cell IL_0000: Local var 33: System.Int32 IL_0000: Local var 34: NetNode IL_0000: Local var 35: System.Byte IL_0000: Local var 36: System.Int32 IL_0000: Local var 37: System.UInt16 IL_0000: Local var 38: System.UInt16 IL_0000: Local var 39: System.UInt16 IL_0000: Local var 40: System.UInt16 IL_0000: Local var 41: WaterManager/PulseUnit IL_0000: Local var 42: System.UInt32 IL_0000: Local var 43: System.Int32 IL_0000: Local var 44: WaterManager/Cell IL_0000: Local var 45: System.Int32 IL_0000: Local var 46: NetNode IL_0000: Local var 47: System.Int32 IL_0000: Local var 48: System.UInt16 IL_0000: Local var 49: System.UInt16 IL_0000: Local var 50: System.UInt16 IL_0000: Local var 51: System.UInt16 IL_0000: Local var 52: WaterManager/PulseUnit IL_0000: Local var 53: System.UInt32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: WaterManager/Cell IL_0000: Local var 56: System.Int32 IL_0000: Local var 57: NetNode IL_0000: Local var 58: System.Int32 IL_0000: Local var 59: System.UInt16 IL_0000: Local var 60: NetInfo IL_0000: Local var 61: System.UInt16 IL_0000: Local var 62: System.UInt16 IL_0000: Local var 63: System.UInt16 IL_0000: Local var 64: System.Int32 IL_0000: Local var 65: WaterManager/PulseGroup IL_0000: Local var 66: WaterManager/PulseGroup IL_0000: Local var 67: System.Int32 IL_0000: Local var 68: WaterManager/PulseGroup IL_0000: Local var 69: WaterManager/PulseGroup IL_0000: Local var 70: System.UInt32 IL_0000: Local var 71: System.Int32 IL_0000: Local var 72: WaterManager/PulseGroup IL_0000: Local var 73: WaterManager/Node IL_0000: Local var 74: System.Int32 IL_0000: Local var 75: WaterManager/PulseGroup IL_0000: Local var 76: WaterManager/PulseGroup IL_0000: Local var 77: System.Int32 IL_0000: Local var 78: WaterManager/PulseGroup IL_0000: Local var 79: WaterManager/PulseGroup IL_0000: Local var 80: System.UInt32 IL_0000: Local var 81: System.Int32 IL_0000: Local var 82: WaterManager/PulseGroup IL_0000: Local var 83: WaterManager/Node IL_0000: Local var 84: System.Int32 IL_0000: Local var 85: WaterManager/PulseGroup IL_0000: Local var 86: WaterManager/PulseGroup IL_0000: Local var 87: System.Int32 IL_0000: Local var 88: WaterManager/PulseGroup IL_0000: Local var 89: WaterManager/Node IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: ldarg.0 IL_0003: ldfld Cell[] WaterManager::m_waterGrid IL_0008: ldarg.0 IL_0009: ldflda System.Int32 WaterManager::m_waterPulseGroupCount IL_000E: ldarg.0 IL_000F: ldflda System.Int32 WaterManager::m_waterPulseUnitStart IL_0014: ldarg.0 IL_0015: ldflda System.Int32 WaterManager::m_waterPulseUnitEnd IL_001A: ldarg.0 IL_001B: ldflda System.Int32 WaterManager::m_sewagePulseGroupCount IL_0020: ldarg.0 IL_0021: ldflda System.Int32 WaterManager::m_sewagePulseUnitStart IL_0026: ldarg.0 IL_0027: ldflda System.Int32 WaterManager::m_sewagePulseUnitEnd IL_002C: ldarg.0 IL_002D: ldflda System.Int32 WaterManager::m_heatingPulseGroupCount IL_0032: ldarg.0 IL_0033: ldflda System.Int32 WaterManager::m_heatingPulseUnitStart IL_0038: ldarg.0 IL_0039: ldflda System.Int32 WaterManager::m_heatingPulseUnitEnd IL_003E: ldarg.0 IL_003F: ldflda System.Int32 WaterManager::m_processedCells IL_0044: ldarg.0 IL_0045: ldflda System.Int32 WaterManager::m_conductiveCells IL_004A: ldarg.0 IL_004B: ldflda System.Boolean WaterManager::m_canContinue IL_0050: ldarg.0 IL_0051: ldfld PulseGroup[] WaterManager::m_waterPulseGroups IL_0056: ldarg.0 IL_0057: ldfld PulseGroup[] WaterManager::m_sewagePulseGroups IL_005C: ldarg.0 IL_005D: ldfld PulseGroup[] WaterManager::m_heatingPulseGroups IL_0062: call static System.Void EightyOne2.Patches.ExpandedWaterManager::SimulationStepImpl(WaterManager instance, System.Int32 subStep, Cell[] m_waterGrid, System.Int32& m_waterPulseGroupCount, System.Int32& m_waterPulseUnitStart, System.Int32& m_waterPulseUnitEnd, System.Int32& m_sewagePulseGroupCount, System.Int32& m_sewagePulseUnitStart, System.Int32& m_sewagePulseUnitEnd, System.Int32& m_heatingPulseGroupCount, System.Int32& m_heatingPulseUnitStart, System.Int32& m_heatingPulseUnitEnd, System.Int32& m_processedCells, System.Int32& m_conductiveCells, System.Boolean& m_canContinue, PulseGroup[] m_waterPulseGroups, PulseGroup[] m_sewagePulseGroups, PulseGroup[] m_heatingPulseGroups) IL_0067: // end original IL_0067: ret DONE ### Patch: System.Int32 WaterManager::TryDumpSewage(UnityEngine.Vector3 pos, System.Int32 rate, System.Int32 max) ### Replacement: static System.Int32 WaterManager::WaterManager.TryDumpSewage_Patch2(WaterManager this, UnityEngine.Vector3 pos, System.Int32 rate, System.Int32 max) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: System.Int32 IL_0000: Local var 2: System.Int32 IL_0000: Local var 3: System.Single IL_0000: Local var 4: System.Single IL_0000: Local var 5: System.Int32 IL_0000: Local var 6: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 5 (System.Int32) IL_0009: ldc.i4 0 IL_000E: stloc 6 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 6 (System.Boolean) IL_0017: ldloc 6 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldloca 5 (System.Int32) IL_0024: ldarg 2 IL_0028: ldarg 3 IL_002C: call static System.Boolean EightyOne2.Patches.NoPipesPatches::TryDumpSewage1Prefix(System.Int32& __result, System.Int32 rate, System.Int32 max) IL_0031: stloc 6 (System.Boolean) IL_0035: Label1 IL_0035: nop IL_0036: ldloc 6 (System.Boolean) IL_003A: brfalse => Label2 IL_003F: ldloca 5 (System.Int32) IL_0043: ldarg 2 IL_0047: ldarg 3 IL_004B: call static System.Boolean EightyOne2.Patches.NoPipesPatches::TryDumpSewage2Prefix(System.Int32& __result, System.Int32 rate, System.Int32 max) IL_0050: stloc 6 (System.Boolean) IL_0054: Label2 IL_0054: nop IL_0055: ldloc 6 (System.Boolean) IL_0059: brfalse => Label0 IL_005E: // start original IL_005E: ldarg.3 IL_005F: brtrue => Label3 IL_0064: ldc.i4.0 IL_0065: br => Label34 IL_006A: Label3 IL_006A: ldarga.s 1 IL_006C: ldfld System.Single UnityEngine.Vector3::x IL_0071: ldc.r4 38.25 IL_0076: div IL_0077: ldc.r4 231 IL_007C: add IL_007D: conv.i4 IL_007E: ldc.i4.0 IL_007F: ldc.i4 461 IL_0084: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_0089: stloc.0 IL_008A: ldarga.s 1 IL_008C: ldfld System.Single UnityEngine.Vector3::z IL_0091: ldc.r4 38.25 IL_0096: div IL_0097: ldc.r4 231 IL_009C: add IL_009D: conv.i4 IL_009E: ldc.i4.0 IL_009F: ldc.i4 461 IL_00A4: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_00A9: stloc.1 IL_00AA: ldc.i4.0 IL_00AB: stloc.2 IL_00AC: ldarg.0 IL_00AD: ldarg.1 IL_00AE: ldloc.0 IL_00AF: ldloc.1 IL_00B0: ldarg.2 IL_00B1: ldarg.3 IL_00B2: ldloca.s 2 (System.Int32) IL_00B4: call System.Boolean WaterManager::TryDumpSewageImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result) IL_00B9: brfalse => Label4 IL_00BE: ldloc.2 IL_00BF: br => Label35 IL_00C4: Label4 IL_00C4: ldarg.0 IL_00C5: ldfld Cell[] WaterManager::m_waterGrid IL_00CA: ldloc.1 IL_00CB: ldc.i4 462 IL_00D0: mul IL_00D1: ldloc.0 IL_00D2: add IL_00D3: ldelema WaterManager+Cell IL_00D8: ldfld System.Byte Cell::m_conductivity IL_00DD: brtrue => Label5 IL_00E2: ldc.i4.0 IL_00E3: br => Label36 IL_00E8: Label5 IL_00E8: ldloc.0 IL_00E9: conv.r4 IL_00EA: ldc.r4 0.5 IL_00EF: add IL_00F0: ldc.r4 231 IL_00F5: sub IL_00F6: ldc.r4 38.25 IL_00FB: mul IL_00FC: stloc.3 IL_00FD: ldloc.1 IL_00FE: conv.r4 IL_00FF: ldc.r4 0.5 IL_0104: add IL_0105: ldc.r4 231 IL_010A: sub IL_010B: ldc.r4 38.25 IL_0110: mul IL_0111: stloc.s 4 (System.Single) IL_0113: ldarga.s 1 IL_0115: ldfld System.Single UnityEngine.Vector3::z IL_011A: ldloc.s 4 (System.Single) IL_011C: ble.un => Label6 IL_0121: ldloc.1 IL_0122: ldc.i4 461 IL_0127: bge => Label7 IL_012C: ldarg.0 IL_012D: ldarg.1 IL_012E: ldloc.0 IL_012F: ldloc.1 IL_0130: ldc.i4.1 IL_0131: add IL_0132: ldarg.2 IL_0133: ldarg.3 IL_0134: ldloca.s 2 (System.Int32) IL_0136: call System.Boolean WaterManager::TryDumpSewageImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result) IL_013B: brfalse => Label8 IL_0140: ldloc.2 IL_0141: br => Label37 IL_0146: Label8 IL_0146: br => Label9 IL_014B: Label6 IL_014B: Label7 IL_014B: ldarga.s 1 IL_014D: ldfld System.Single UnityEngine.Vector3::z IL_0152: ldloc.s 4 (System.Single) IL_0154: bge.un => Label10 IL_0159: ldloc.1 IL_015A: ldc.i4.0 IL_015B: ble => Label11 IL_0160: ldarg.0 IL_0161: ldarg.1 IL_0162: ldloc.0 IL_0163: ldloc.1 IL_0164: ldc.i4.1 IL_0165: sub IL_0166: ldarg.2 IL_0167: ldarg.3 IL_0168: ldloca.s 2 (System.Int32) IL_016A: call System.Boolean WaterManager::TryDumpSewageImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result) IL_016F: brfalse => Label12 IL_0174: ldloc.2 IL_0175: br => Label38 IL_017A: Label9 IL_017A: Label10 IL_017A: Label11 IL_017A: Label12 IL_017A: ldarga.s 1 IL_017C: ldfld System.Single UnityEngine.Vector3::x IL_0181: ldloc.3 IL_0182: ble.un => Label13 IL_0187: ldloc.0 IL_0188: ldc.i4 461 IL_018D: bge => Label14 IL_0192: ldarg.0 IL_0193: ldarg.1 IL_0194: ldloc.0 IL_0195: ldc.i4.1 IL_0196: add IL_0197: ldloc.1 IL_0198: ldarg.2 IL_0199: ldarg.3 IL_019A: ldloca.s 2 (System.Int32) IL_019C: call System.Boolean WaterManager::TryDumpSewageImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result) IL_01A1: brfalse => Label15 IL_01A6: ldloc.2 IL_01A7: br => Label39 IL_01AC: Label15 IL_01AC: ldarga.s 1 IL_01AE: ldfld System.Single UnityEngine.Vector3::z IL_01B3: ldloc.s 4 (System.Single) IL_01B5: ble.un => Label16 IL_01BA: ldloc.1 IL_01BB: ldc.i4 461 IL_01C0: bge => Label17 IL_01C5: ldarg.0 IL_01C6: ldarg.1 IL_01C7: ldloc.0 IL_01C8: ldc.i4.1 IL_01C9: add IL_01CA: ldloc.1 IL_01CB: ldc.i4.1 IL_01CC: add IL_01CD: ldarg.2 IL_01CE: ldarg.3 IL_01CF: ldloca.s 2 (System.Int32) IL_01D1: call System.Boolean WaterManager::TryDumpSewageImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result) IL_01D6: brfalse => Label18 IL_01DB: ldloc.2 IL_01DC: br => Label40 IL_01E1: Label18 IL_01E1: br => Label19 IL_01E6: Label16 IL_01E6: Label17 IL_01E6: ldarga.s 1 IL_01E8: ldfld System.Single UnityEngine.Vector3::z IL_01ED: ldloc.s 4 (System.Single) IL_01EF: bge.un => Label20 IL_01F4: ldloc.1 IL_01F5: ldc.i4.0 IL_01F6: ble => Label21 IL_01FB: ldarg.0 IL_01FC: ldarg.1 IL_01FD: ldloc.0 IL_01FE: ldc.i4.1 IL_01FF: add IL_0200: ldloc.1 IL_0201: ldc.i4.1 IL_0202: sub IL_0203: ldarg.2 IL_0204: ldarg.3 IL_0205: ldloca.s 2 (System.Int32) IL_0207: call System.Boolean WaterManager::TryDumpSewageImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result) IL_020C: brfalse => Label22 IL_0211: ldloc.2 IL_0212: br => Label41 IL_0217: Label19 IL_0217: Label20 IL_0217: Label21 IL_0217: Label22 IL_0217: br => Label23 IL_021C: Label13 IL_021C: Label14 IL_021C: ldarga.s 1 IL_021E: ldfld System.Single UnityEngine.Vector3::x IL_0223: ldloc.3 IL_0224: bge.un => Label24 IL_0229: ldloc.0 IL_022A: ldc.i4.0 IL_022B: ble => Label25 IL_0230: ldarg.0 IL_0231: ldarg.1 IL_0232: ldloc.0 IL_0233: ldc.i4.1 IL_0234: sub IL_0235: ldloc.1 IL_0236: ldarg.2 IL_0237: ldarg.3 IL_0238: ldloca.s 2 (System.Int32) IL_023A: call System.Boolean WaterManager::TryDumpSewageImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result) IL_023F: brfalse => Label26 IL_0244: ldloc.2 IL_0245: br => Label42 IL_024A: Label26 IL_024A: ldarga.s 1 IL_024C: ldfld System.Single UnityEngine.Vector3::z IL_0251: ldloc.s 4 (System.Single) IL_0253: ble.un => Label27 IL_0258: ldloc.1 IL_0259: ldc.i4 461 IL_025E: bge => Label28 IL_0263: ldarg.0 IL_0264: ldarg.1 IL_0265: ldloc.0 IL_0266: ldc.i4.1 IL_0267: sub IL_0268: ldloc.1 IL_0269: ldc.i4.1 IL_026A: add IL_026B: ldarg.2 IL_026C: ldarg.3 IL_026D: ldloca.s 2 (System.Int32) IL_026F: call System.Boolean WaterManager::TryDumpSewageImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result) IL_0274: brfalse => Label29 IL_0279: ldloc.2 IL_027A: br => Label43 IL_027F: Label29 IL_027F: br => Label30 IL_0284: Label27 IL_0284: Label28 IL_0284: ldarga.s 1 IL_0286: ldfld System.Single UnityEngine.Vector3::z IL_028B: ldloc.s 4 (System.Single) IL_028D: bge.un => Label31 IL_0292: ldloc.1 IL_0293: ldc.i4.0 IL_0294: ble => Label32 IL_0299: ldarg.0 IL_029A: ldarg.1 IL_029B: ldloc.0 IL_029C: ldc.i4.1 IL_029D: sub IL_029E: ldloc.1 IL_029F: ldc.i4.1 IL_02A0: sub IL_02A1: ldarg.2 IL_02A2: ldarg.3 IL_02A3: ldloca.s 2 (System.Int32) IL_02A5: call System.Boolean WaterManager::TryDumpSewageImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result) IL_02AA: brfalse => Label33 IL_02AF: ldloc.2 IL_02B0: br => Label44 IL_02B5: Label23 IL_02B5: Label24 IL_02B5: Label25 IL_02B5: Label30 IL_02B5: Label31 IL_02B5: Label32 IL_02B5: Label33 IL_02B5: ldc.i4.0 IL_02B6: // end original IL_02B6: Label34 IL_02B6: Label35 IL_02B6: Label36 IL_02B6: Label37 IL_02B6: Label38 IL_02B6: Label39 IL_02B6: Label40 IL_02B6: Label41 IL_02B6: Label42 IL_02B6: Label43 IL_02B6: Label44 IL_02B6: stloc 5 (System.Int32) IL_02BA: Label0 IL_02BA: ldloc 5 (System.Int32) IL_02BE: ret DONE ### Patch: System.Boolean WaterManager::TryDumpSewageImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result) ### Replacement: static System.Boolean WaterManager::WaterManager.TryDumpSewageImpl_Patch0(WaterManager this, UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: WaterManager/Cell IL_0000: Local var 2: NetManager IL_0000: Local var 3: System.UInt16 IL_0000: Local var 4: System.UInt16 IL_0000: Local var 5: System.UInt16 IL_0000: Local var 6: NetNode/Flags IL_0000: Local var 7: NetNode/Flags IL_0000: Local var 8: ColossalFramework.Math.Segment2 IL_0000: Local var 9: System.Single IL_0000: // start original IL_0000: ldarg.3 IL_0001: ldc.i4 462 IL_0006: mul IL_0007: ldarg.2 IL_0008: add IL_0009: stloc.0 IL_000A: ldarg.0 IL_000B: ldfld Cell[] WaterManager::m_waterGrid IL_0010: ldloc.0 IL_0011: ldelema WaterManager+Cell IL_0016: ldobj WaterManager+Cell IL_001B: stloc.1 IL_001C: ldloca.s 1 (WaterManager+Cell) IL_001E: ldfld System.Boolean Cell::m_hasSewage IL_0023: brfalse => Label0 IL_0028: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_002D: stloc.2 IL_002E: ldloca.s 1 (WaterManager+Cell) IL_0030: ldfld System.UInt16 Cell::m_closestPipeSegment IL_0035: stloc.3 IL_0036: ldloc.2 IL_0037: ldfld Array16`1 NetManager::m_segments IL_003C: ldfld NetSegment[] Array16`1::m_buffer IL_0041: ldloc.3 IL_0042: ldelema NetSegment IL_0047: ldfld System.UInt16 NetSegment::m_startNode IL_004C: stloc.s 4 (System.UInt16) IL_004E: ldloc.2 IL_004F: ldfld Array16`1 NetManager::m_segments IL_0054: ldfld NetSegment[] Array16`1::m_buffer IL_0059: ldloc.3 IL_005A: ldelema NetSegment IL_005F: ldfld System.UInt16 NetSegment::m_endNode IL_0064: stloc.s 5 (System.UInt16) IL_0066: ldloc.2 IL_0067: ldfld Array16`1 NetManager::m_nodes IL_006C: ldfld NetNode[] Array16`1::m_buffer IL_0071: ldloc.s 4 (System.UInt16) IL_0073: ldelema NetNode IL_0078: ldfld Flags NetNode::m_flags IL_007D: stloc.s 6 (NetNode+Flags) IL_007F: ldloc.2 IL_0080: ldfld Array16`1 NetManager::m_nodes IL_0085: ldfld NetNode[] Array16`1::m_buffer IL_008A: ldloc.s 5 (System.UInt16) IL_008C: ldelema NetNode IL_0091: ldfld Flags NetNode::m_flags IL_0096: stloc.s 7 (NetNode+Flags) IL_0098: ldloc.s 6 (NetNode+Flags) IL_009A: ldloc.s 7 (NetNode+Flags) IL_009C: and IL_009D: ldc.i4 131072 IL_00A2: and IL_00A3: brfalse => Label1 IL_00A8: ldloca.s 8 (ColossalFramework.Math.Segment2) IL_00AA: ldloc.2 IL_00AB: ldfld Array16`1 NetManager::m_nodes IL_00B0: ldfld NetNode[] Array16`1::m_buffer IL_00B5: ldloc.s 4 (System.UInt16) IL_00B7: ldelema NetNode IL_00BC: ldfld UnityEngine.Vector3 NetNode::m_position IL_00C1: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_00C6: stfld UnityEngine.Vector2 ColossalFramework.Math.Segment2::a IL_00CB: ldloca.s 8 (ColossalFramework.Math.Segment2) IL_00CD: ldloc.2 IL_00CE: ldfld Array16`1 NetManager::m_nodes IL_00D3: ldfld NetNode[] Array16`1::m_buffer IL_00D8: ldloc.s 5 (System.UInt16) IL_00DA: ldelema NetNode IL_00DF: ldfld UnityEngine.Vector3 NetNode::m_position IL_00E4: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_00E9: stfld UnityEngine.Vector2 ColossalFramework.Math.Segment2::b IL_00EE: ldloca.s 8 (ColossalFramework.Math.Segment2) IL_00F0: ldarg.1 IL_00F1: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_00F6: ldloca.s 9 (System.Single) IL_00F8: call System.Single ColossalFramework.Math.Segment2::DistanceSqr(UnityEngine.Vector2 p, System.Single& u) IL_00FD: conv.r8 IL_00FE: ldc.r8 9025 IL_0107: bge.un => Label2 IL_010C: ldarg.s 4 IL_010E: ldarg.s 5 IL_0110: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0115: ldc.i4 32768 IL_011A: ldloca.s 1 (WaterManager+Cell) IL_011C: ldfld System.Int16 Cell::m_currentSewagePressure IL_0121: add IL_0122: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0127: starg.s 4 IL_0129: ldloca.s 1 (WaterManager+Cell) IL_012B: dup IL_012C: ldfld System.Int16 Cell::m_currentSewagePressure IL_0131: ldarg.s 4 IL_0133: conv.i2 IL_0134: sub IL_0135: conv.i2 IL_0136: stfld System.Int16 Cell::m_currentSewagePressure IL_013B: ldarg.0 IL_013C: ldfld Cell[] WaterManager::m_waterGrid IL_0141: ldloc.0 IL_0142: ldelema WaterManager+Cell IL_0147: ldloc.1 IL_0148: stobj WaterManager+Cell IL_014D: ldarg.s 6 IL_014F: ldarg.s 4 IL_0151: stind.i4 IL_0152: ldc.i4.1 IL_0153: br => Label3 IL_0158: Label0 IL_0158: Label1 IL_0158: Label2 IL_0158: ldc.i4.0 IL_0159: // end original IL_0159: Label3 IL_0159: ret DONE ### Patch: System.Int32 WaterManager::TryFetchHeating(UnityEngine.Vector3 pos, System.Int32 rate, System.Int32 max, System.Boolean& connected) ### Replacement: static System.Int32 WaterManager::WaterManager.TryFetchHeating_Patch1(WaterManager this, UnityEngine.Vector3 pos, System.Int32 rate, System.Int32 max, System.Boolean& connected) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: System.Int32 IL_0000: Local var 2: System.Int32 IL_0000: Local var 3: System.Single IL_0000: Local var 4: System.Single IL_0000: Local var 5: System.Int32 IL_0000: Local var 6: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 5 (System.Int32) IL_0009: ldc.i4 0 IL_000E: stloc 6 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 6 (System.Boolean) IL_0017: ldloc 6 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldloca 5 (System.Int32) IL_0024: ldarg 2 IL_0028: ldarg 3 IL_002C: ldarg 4 IL_0030: call static System.Boolean EightyOne2.Patches.NoPipesPatches::TryFetchHeatingPrefix(System.Int32& __result, System.Int32 rate, System.Int32 max, System.Boolean& connected) IL_0035: stloc 6 (System.Boolean) IL_0039: Label1 IL_0039: nop IL_003A: ldloc 6 (System.Boolean) IL_003E: brfalse => Label0 IL_0043: // start original IL_0043: ldarg.s 4 IL_0045: ldc.i4.0 IL_0046: stind.i1 IL_0047: ldarg.3 IL_0048: brtrue => Label2 IL_004D: ldc.i4.0 IL_004E: br => Label33 IL_0053: Label2 IL_0053: ldarga.s 1 IL_0055: ldfld System.Single UnityEngine.Vector3::x IL_005A: ldc.r4 38.25 IL_005F: div IL_0060: ldc.r4 231 IL_0065: add IL_0066: conv.i4 IL_0067: ldc.i4.0 IL_0068: ldc.i4 461 IL_006D: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_0072: stloc.0 IL_0073: ldarga.s 1 IL_0075: ldfld System.Single UnityEngine.Vector3::z IL_007A: ldc.r4 38.25 IL_007F: div IL_0080: ldc.r4 231 IL_0085: add IL_0086: conv.i4 IL_0087: ldc.i4.0 IL_0088: ldc.i4 461 IL_008D: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_0092: stloc.1 IL_0093: ldc.i4.0 IL_0094: stloc.2 IL_0095: ldarg.0 IL_0096: ldarg.1 IL_0097: ldloc.0 IL_0098: ldloc.1 IL_0099: ldarg.2 IL_009A: ldarg.3 IL_009B: ldloca.s 2 (System.Int32) IL_009D: ldarg.s 4 IL_009F: call System.Boolean WaterManager::TryFetchHeatingImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result, System.Boolean& connected) IL_00A4: brfalse => Label3 IL_00A9: ldloc.2 IL_00AA: br => Label34 IL_00AF: Label3 IL_00AF: ldarg.0 IL_00B0: ldfld Cell[] WaterManager::m_waterGrid IL_00B5: ldloc.1 IL_00B6: ldc.i4 462 IL_00BB: mul IL_00BC: ldloc.0 IL_00BD: add IL_00BE: ldelema WaterManager+Cell IL_00C3: ldfld System.Byte Cell::m_conductivity2 IL_00C8: brtrue => Label4 IL_00CD: ldc.i4.0 IL_00CE: br => Label35 IL_00D3: Label4 IL_00D3: ldloc.0 IL_00D4: conv.r4 IL_00D5: ldc.r4 0.5 IL_00DA: add IL_00DB: ldc.r4 231 IL_00E0: sub IL_00E1: ldc.r4 38.25 IL_00E6: mul IL_00E7: stloc.3 IL_00E8: ldloc.1 IL_00E9: conv.r4 IL_00EA: ldc.r4 0.5 IL_00EF: add IL_00F0: ldc.r4 231 IL_00F5: sub IL_00F6: ldc.r4 38.25 IL_00FB: mul IL_00FC: stloc.s 4 (System.Single) IL_00FE: ldarga.s 1 IL_0100: ldfld System.Single UnityEngine.Vector3::z IL_0105: ldloc.s 4 (System.Single) IL_0107: ble.un => Label5 IL_010C: ldloc.1 IL_010D: ldc.i4 461 IL_0112: bge => Label6 IL_0117: ldarg.0 IL_0118: ldarg.1 IL_0119: ldloc.0 IL_011A: ldloc.1 IL_011B: ldc.i4.1 IL_011C: add IL_011D: ldarg.2 IL_011E: ldarg.3 IL_011F: ldloca.s 2 (System.Int32) IL_0121: ldarg.s 4 IL_0123: call System.Boolean WaterManager::TryFetchHeatingImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result, System.Boolean& connected) IL_0128: brfalse => Label7 IL_012D: ldloc.2 IL_012E: br => Label36 IL_0133: Label7 IL_0133: br => Label8 IL_0138: Label5 IL_0138: Label6 IL_0138: ldarga.s 1 IL_013A: ldfld System.Single UnityEngine.Vector3::z IL_013F: ldloc.s 4 (System.Single) IL_0141: bge.un => Label9 IL_0146: ldloc.1 IL_0147: ldc.i4.0 IL_0148: ble => Label10 IL_014D: ldarg.0 IL_014E: ldarg.1 IL_014F: ldloc.0 IL_0150: ldloc.1 IL_0151: ldc.i4.1 IL_0152: sub IL_0153: ldarg.2 IL_0154: ldarg.3 IL_0155: ldloca.s 2 (System.Int32) IL_0157: ldarg.s 4 IL_0159: call System.Boolean WaterManager::TryFetchHeatingImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result, System.Boolean& connected) IL_015E: brfalse => Label11 IL_0163: ldloc.2 IL_0164: br => Label37 IL_0169: Label8 IL_0169: Label9 IL_0169: Label10 IL_0169: Label11 IL_0169: ldarga.s 1 IL_016B: ldfld System.Single UnityEngine.Vector3::x IL_0170: ldloc.3 IL_0171: ble.un => Label12 IL_0176: ldloc.0 IL_0177: ldc.i4 461 IL_017C: bge => Label13 IL_0181: ldarg.0 IL_0182: ldarg.1 IL_0183: ldloc.0 IL_0184: ldc.i4.1 IL_0185: add IL_0186: ldloc.1 IL_0187: ldarg.2 IL_0188: ldarg.3 IL_0189: ldloca.s 2 (System.Int32) IL_018B: ldarg.s 4 IL_018D: call System.Boolean WaterManager::TryFetchHeatingImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result, System.Boolean& connected) IL_0192: brfalse => Label14 IL_0197: ldloc.2 IL_0198: br => Label38 IL_019D: Label14 IL_019D: ldarga.s 1 IL_019F: ldfld System.Single UnityEngine.Vector3::z IL_01A4: ldloc.s 4 (System.Single) IL_01A6: ble.un => Label15 IL_01AB: ldloc.1 IL_01AC: ldc.i4 461 IL_01B1: bge => Label16 IL_01B6: ldarg.0 IL_01B7: ldarg.1 IL_01B8: ldloc.0 IL_01B9: ldc.i4.1 IL_01BA: add IL_01BB: ldloc.1 IL_01BC: ldc.i4.1 IL_01BD: add IL_01BE: ldarg.2 IL_01BF: ldarg.3 IL_01C0: ldloca.s 2 (System.Int32) IL_01C2: ldarg.s 4 IL_01C4: call System.Boolean WaterManager::TryFetchHeatingImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result, System.Boolean& connected) IL_01C9: brfalse => Label17 IL_01CE: ldloc.2 IL_01CF: br => Label39 IL_01D4: Label17 IL_01D4: br => Label18 IL_01D9: Label15 IL_01D9: Label16 IL_01D9: ldarga.s 1 IL_01DB: ldfld System.Single UnityEngine.Vector3::z IL_01E0: ldloc.s 4 (System.Single) IL_01E2: bge.un => Label19 IL_01E7: ldloc.1 IL_01E8: ldc.i4.0 IL_01E9: ble => Label20 IL_01EE: ldarg.0 IL_01EF: ldarg.1 IL_01F0: ldloc.0 IL_01F1: ldc.i4.1 IL_01F2: add IL_01F3: ldloc.1 IL_01F4: ldc.i4.1 IL_01F5: sub IL_01F6: ldarg.2 IL_01F7: ldarg.3 IL_01F8: ldloca.s 2 (System.Int32) IL_01FA: ldarg.s 4 IL_01FC: call System.Boolean WaterManager::TryFetchHeatingImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result, System.Boolean& connected) IL_0201: brfalse => Label21 IL_0206: ldloc.2 IL_0207: br => Label40 IL_020C: Label18 IL_020C: Label19 IL_020C: Label20 IL_020C: Label21 IL_020C: br => Label22 IL_0211: Label12 IL_0211: Label13 IL_0211: ldarga.s 1 IL_0213: ldfld System.Single UnityEngine.Vector3::x IL_0218: ldloc.3 IL_0219: bge.un => Label23 IL_021E: ldloc.0 IL_021F: ldc.i4.0 IL_0220: ble => Label24 IL_0225: ldarg.0 IL_0226: ldarg.1 IL_0227: ldloc.0 IL_0228: ldc.i4.1 IL_0229: sub IL_022A: ldloc.1 IL_022B: ldarg.2 IL_022C: ldarg.3 IL_022D: ldloca.s 2 (System.Int32) IL_022F: ldarg.s 4 IL_0231: call System.Boolean WaterManager::TryFetchHeatingImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result, System.Boolean& connected) IL_0236: brfalse => Label25 IL_023B: ldloc.2 IL_023C: br => Label41 IL_0241: Label25 IL_0241: ldarga.s 1 IL_0243: ldfld System.Single UnityEngine.Vector3::z IL_0248: ldloc.s 4 (System.Single) IL_024A: ble.un => Label26 IL_024F: ldloc.1 IL_0250: ldc.i4 461 IL_0255: bge => Label27 IL_025A: ldarg.0 IL_025B: ldarg.1 IL_025C: ldloc.0 IL_025D: ldc.i4.1 IL_025E: sub IL_025F: ldloc.1 IL_0260: ldc.i4.1 IL_0261: add IL_0262: ldarg.2 IL_0263: ldarg.3 IL_0264: ldloca.s 2 (System.Int32) IL_0266: ldarg.s 4 IL_0268: call System.Boolean WaterManager::TryFetchHeatingImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result, System.Boolean& connected) IL_026D: brfalse => Label28 IL_0272: ldloc.2 IL_0273: br => Label42 IL_0278: Label28 IL_0278: br => Label29 IL_027D: Label26 IL_027D: Label27 IL_027D: ldarga.s 1 IL_027F: ldfld System.Single UnityEngine.Vector3::z IL_0284: ldloc.s 4 (System.Single) IL_0286: bge.un => Label30 IL_028B: ldloc.1 IL_028C: ldc.i4.0 IL_028D: ble => Label31 IL_0292: ldarg.0 IL_0293: ldarg.1 IL_0294: ldloc.0 IL_0295: ldc.i4.1 IL_0296: sub IL_0297: ldloc.1 IL_0298: ldc.i4.1 IL_0299: sub IL_029A: ldarg.2 IL_029B: ldarg.3 IL_029C: ldloca.s 2 (System.Int32) IL_029E: ldarg.s 4 IL_02A0: call System.Boolean WaterManager::TryFetchHeatingImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result, System.Boolean& connected) IL_02A5: brfalse => Label32 IL_02AA: ldloc.2 IL_02AB: br => Label43 IL_02B0: Label22 IL_02B0: Label23 IL_02B0: Label24 IL_02B0: Label29 IL_02B0: Label30 IL_02B0: Label31 IL_02B0: Label32 IL_02B0: ldc.i4.0 IL_02B1: // end original IL_02B1: Label33 IL_02B1: Label34 IL_02B1: Label35 IL_02B1: Label36 IL_02B1: Label37 IL_02B1: Label38 IL_02B1: Label39 IL_02B1: Label40 IL_02B1: Label41 IL_02B1: Label42 IL_02B1: Label43 IL_02B1: stloc 5 (System.Int32) IL_02B5: Label0 IL_02B5: ldloc 5 (System.Int32) IL_02B9: ret DONE ### Patch: System.Boolean WaterManager::TryFetchHeatingImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result, System.Boolean& connected) ### Replacement: static System.Boolean WaterManager::WaterManager.TryFetchHeatingImpl_Patch0(WaterManager this, UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result, System.Boolean& connected) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: WaterManager/Cell IL_0000: Local var 2: NetManager IL_0000: Local var 3: System.UInt16 IL_0000: Local var 4: System.UInt16 IL_0000: Local var 5: System.UInt16 IL_0000: Local var 6: NetNode/Flags IL_0000: Local var 7: NetNode/Flags IL_0000: Local var 8: ColossalFramework.Math.Segment2 IL_0000: Local var 9: System.Single IL_0000: Local var 10: NetManager IL_0000: Local var 11: System.UInt16 IL_0000: Local var 12: System.UInt16 IL_0000: Local var 13: System.UInt16 IL_0000: Local var 14: ColossalFramework.Math.Segment2 IL_0000: Local var 15: System.Single IL_0000: // start original IL_0000: ldarg.3 IL_0001: ldc.i4 462 IL_0006: mul IL_0007: ldarg.2 IL_0008: add IL_0009: stloc.0 IL_000A: ldarg.0 IL_000B: ldfld Cell[] WaterManager::m_waterGrid IL_0010: ldloc.0 IL_0011: ldelema WaterManager+Cell IL_0016: ldobj WaterManager+Cell IL_001B: stloc.1 IL_001C: ldloca.s 1 (WaterManager+Cell) IL_001E: ldfld System.Boolean Cell::m_hasHeating IL_0023: brfalse => Label0 IL_0028: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_002D: stloc.2 IL_002E: ldloca.s 1 (WaterManager+Cell) IL_0030: ldfld System.UInt16 Cell::m_closestPipeSegment2 IL_0035: stloc.3 IL_0036: ldloc.2 IL_0037: ldfld Array16`1 NetManager::m_segments IL_003C: ldfld NetSegment[] Array16`1::m_buffer IL_0041: ldloc.3 IL_0042: ldelema NetSegment IL_0047: ldfld System.UInt16 NetSegment::m_startNode IL_004C: stloc.s 4 (System.UInt16) IL_004E: ldloc.2 IL_004F: ldfld Array16`1 NetManager::m_segments IL_0054: ldfld NetSegment[] Array16`1::m_buffer IL_0059: ldloc.3 IL_005A: ldelema NetSegment IL_005F: ldfld System.UInt16 NetSegment::m_endNode IL_0064: stloc.s 5 (System.UInt16) IL_0066: ldloc.2 IL_0067: ldfld Array16`1 NetManager::m_nodes IL_006C: ldfld NetNode[] Array16`1::m_buffer IL_0071: ldloc.s 4 (System.UInt16) IL_0073: ldelema NetNode IL_0078: ldfld Flags NetNode::m_flags IL_007D: stloc.s 6 (NetNode+Flags) IL_007F: ldloc.2 IL_0080: ldfld Array16`1 NetManager::m_nodes IL_0085: ldfld NetNode[] Array16`1::m_buffer IL_008A: ldloc.s 5 (System.UInt16) IL_008C: ldelema NetNode IL_0091: ldfld Flags NetNode::m_flags IL_0096: stloc.s 7 (NetNode+Flags) IL_0098: ldloc.s 6 (NetNode+Flags) IL_009A: ldloc.s 7 (NetNode+Flags) IL_009C: and IL_009D: ldc.i4 33554432 IL_00A2: and IL_00A3: brfalse => Label1 IL_00A8: ldloca.s 8 (ColossalFramework.Math.Segment2) IL_00AA: ldloc.2 IL_00AB: ldfld Array16`1 NetManager::m_nodes IL_00B0: ldfld NetNode[] Array16`1::m_buffer IL_00B5: ldloc.s 4 (System.UInt16) IL_00B7: ldelema NetNode IL_00BC: ldfld UnityEngine.Vector3 NetNode::m_position IL_00C1: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_00C6: stfld UnityEngine.Vector2 ColossalFramework.Math.Segment2::a IL_00CB: ldloca.s 8 (ColossalFramework.Math.Segment2) IL_00CD: ldloc.2 IL_00CE: ldfld Array16`1 NetManager::m_nodes IL_00D3: ldfld NetNode[] Array16`1::m_buffer IL_00D8: ldloc.s 5 (System.UInt16) IL_00DA: ldelema NetNode IL_00DF: ldfld UnityEngine.Vector3 NetNode::m_position IL_00E4: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_00E9: stfld UnityEngine.Vector2 ColossalFramework.Math.Segment2::b IL_00EE: ldloca.s 8 (ColossalFramework.Math.Segment2) IL_00F0: ldarg.1 IL_00F1: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_00F6: ldloca.s 9 (System.Single) IL_00F8: call System.Single ColossalFramework.Math.Segment2::DistanceSqr(UnityEngine.Vector2 p, System.Single& u) IL_00FD: conv.r8 IL_00FE: ldc.r8 9025 IL_0107: bge.un => Label2 IL_010C: ldarg.s 4 IL_010E: ldarg.s 5 IL_0110: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0115: ldc.i4 32768 IL_011A: ldloca.s 1 (WaterManager+Cell) IL_011C: ldfld System.Int16 Cell::m_currentHeatingPressure IL_0121: add IL_0122: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0127: starg.s 4 IL_0129: ldloca.s 1 (WaterManager+Cell) IL_012B: dup IL_012C: ldfld System.Int16 Cell::m_currentHeatingPressure IL_0131: ldarg.s 4 IL_0133: conv.i2 IL_0134: sub IL_0135: conv.i2 IL_0136: stfld System.Int16 Cell::m_currentHeatingPressure IL_013B: ldarg.0 IL_013C: ldfld Cell[] WaterManager::m_waterGrid IL_0141: ldloc.0 IL_0142: ldelema WaterManager+Cell IL_0147: ldloc.1 IL_0148: stobj WaterManager+Cell IL_014D: ldarg.s 6 IL_014F: ldarg.s 4 IL_0151: stind.i4 IL_0152: ldarg.s 7 IL_0154: ldc.i4.1 IL_0155: stind.i1 IL_0156: ldc.i4.1 IL_0157: br => Label6 IL_015C: Label2 IL_015C: ldc.i4.0 IL_015D: br => Label7 IL_0162: Label0 IL_0162: Label1 IL_0162: ldloca.s 1 (WaterManager+Cell) IL_0164: ldfld System.UInt16 Cell::m_closestPipeSegment2 IL_0169: brfalse => Label3 IL_016E: ldloca.s 1 (WaterManager+Cell) IL_0170: ldfld System.Byte Cell::m_conductivity2 IL_0175: ldc.i4.s 96 IL_0177: blt => Label4 IL_017C: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0181: stloc.s 10 (NetManager) IL_0183: ldloca.s 1 (WaterManager+Cell) IL_0185: ldfld System.UInt16 Cell::m_closestPipeSegment2 IL_018A: stloc.s 11 (System.UInt16) IL_018C: ldloc.s 10 (NetManager) IL_018E: ldfld Array16`1 NetManager::m_segments IL_0193: ldfld NetSegment[] Array16`1::m_buffer IL_0198: ldloc.s 11 (System.UInt16) IL_019A: ldelema NetSegment IL_019F: ldfld System.UInt16 NetSegment::m_startNode IL_01A4: stloc.s 12 (System.UInt16) IL_01A6: ldloc.s 10 (NetManager) IL_01A8: ldfld Array16`1 NetManager::m_segments IL_01AD: ldfld NetSegment[] Array16`1::m_buffer IL_01B2: ldloc.s 11 (System.UInt16) IL_01B4: ldelema NetSegment IL_01B9: ldfld System.UInt16 NetSegment::m_endNode IL_01BE: stloc.s 13 (System.UInt16) IL_01C0: ldloca.s 14 (ColossalFramework.Math.Segment2) IL_01C2: ldloc.s 10 (NetManager) IL_01C4: ldfld Array16`1 NetManager::m_nodes IL_01C9: ldfld NetNode[] Array16`1::m_buffer IL_01CE: ldloc.s 12 (System.UInt16) IL_01D0: ldelema NetNode IL_01D5: ldfld UnityEngine.Vector3 NetNode::m_position IL_01DA: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_01DF: stfld UnityEngine.Vector2 ColossalFramework.Math.Segment2::a IL_01E4: ldloca.s 14 (ColossalFramework.Math.Segment2) IL_01E6: ldloc.s 10 (NetManager) IL_01E8: ldfld Array16`1 NetManager::m_nodes IL_01ED: ldfld NetNode[] Array16`1::m_buffer IL_01F2: ldloc.s 13 (System.UInt16) IL_01F4: ldelema NetNode IL_01F9: ldfld UnityEngine.Vector3 NetNode::m_position IL_01FE: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0203: stfld UnityEngine.Vector2 ColossalFramework.Math.Segment2::b IL_0208: ldloca.s 14 (ColossalFramework.Math.Segment2) IL_020A: ldarg.1 IL_020B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0210: ldloca.s 15 (System.Single) IL_0212: call System.Single ColossalFramework.Math.Segment2::DistanceSqr(UnityEngine.Vector2 p, System.Single& u) IL_0217: conv.r8 IL_0218: ldc.r8 9025 IL_0221: bge.un => Label5 IL_0226: ldarg.s 7 IL_0228: ldc.i4.1 IL_0229: stind.i1 IL_022A: Label3 IL_022A: Label4 IL_022A: Label5 IL_022A: ldc.i4.0 IL_022B: // end original IL_022B: Label6 IL_022B: Label7 IL_022B: ret DONE ### Patch: System.Int32 WaterManager::TryFetchWater(UnityEngine.Vector3 pos, System.Int32 rate, System.Int32 max, System.Byte& waterPollution) ### Replacement: static System.Int32 WaterManager::WaterManager.TryFetchWater_Patch1(WaterManager this, UnityEngine.Vector3 pos, System.Int32 rate, System.Int32 max, System.Byte& waterPollution) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: System.Int32 IL_0000: Local var 2: System.Int32 IL_0000: Local var 3: System.Single IL_0000: Local var 4: System.Single IL_0000: Local var 5: System.Int32 IL_0000: Local var 6: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 5 (System.Int32) IL_0009: ldc.i4 0 IL_000E: stloc 6 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 6 (System.Boolean) IL_0017: ldloc 6 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldloca 5 (System.Int32) IL_0024: ldarg 2 IL_0028: ldarg 3 IL_002C: call static System.Boolean EightyOne2.Patches.NoPipesPatches::TryFetchWater1Prefix(System.Int32& __result, System.Int32 rate, System.Int32 max) IL_0031: stloc 6 (System.Boolean) IL_0035: Label1 IL_0035: nop IL_0036: ldloc 6 (System.Boolean) IL_003A: brfalse => Label0 IL_003F: // start original IL_003F: ldarg.3 IL_0040: brtrue => Label2 IL_0045: ldc.i4.0 IL_0046: br => Label33 IL_004B: Label2 IL_004B: ldarga.s 1 IL_004D: ldfld System.Single UnityEngine.Vector3::x IL_0052: ldc.r4 38.25 IL_0057: div IL_0058: ldc.r4 231 IL_005D: add IL_005E: conv.i4 IL_005F: ldc.i4.0 IL_0060: ldc.i4 461 IL_0065: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_006A: stloc.0 IL_006B: ldarga.s 1 IL_006D: ldfld System.Single UnityEngine.Vector3::z IL_0072: ldc.r4 38.25 IL_0077: div IL_0078: ldc.r4 231 IL_007D: add IL_007E: conv.i4 IL_007F: ldc.i4.0 IL_0080: ldc.i4 461 IL_0085: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_008A: stloc.1 IL_008B: ldc.i4.0 IL_008C: stloc.2 IL_008D: ldarg.0 IL_008E: ldarg.1 IL_008F: ldloc.0 IL_0090: ldloc.1 IL_0091: ldarg.2 IL_0092: ldarg.3 IL_0093: ldloca.s 2 (System.Int32) IL_0095: ldarg.s 4 IL_0097: call System.Boolean WaterManager::TryFetchWaterImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result, System.Byte& waterPollution) IL_009C: brfalse => Label3 IL_00A1: ldloc.2 IL_00A2: br => Label34 IL_00A7: Label3 IL_00A7: ldarg.0 IL_00A8: ldfld Cell[] WaterManager::m_waterGrid IL_00AD: ldloc.1 IL_00AE: ldc.i4 462 IL_00B3: mul IL_00B4: ldloc.0 IL_00B5: add IL_00B6: ldelema WaterManager+Cell IL_00BB: ldfld System.Byte Cell::m_conductivity IL_00C0: brtrue => Label4 IL_00C5: ldc.i4.0 IL_00C6: br => Label35 IL_00CB: Label4 IL_00CB: ldloc.0 IL_00CC: conv.r4 IL_00CD: ldc.r4 0.5 IL_00D2: add IL_00D3: ldc.r4 231 IL_00D8: sub IL_00D9: ldc.r4 38.25 IL_00DE: mul IL_00DF: stloc.3 IL_00E0: ldloc.1 IL_00E1: conv.r4 IL_00E2: ldc.r4 0.5 IL_00E7: add IL_00E8: ldc.r4 231 IL_00ED: sub IL_00EE: ldc.r4 38.25 IL_00F3: mul IL_00F4: stloc.s 4 (System.Single) IL_00F6: ldarga.s 1 IL_00F8: ldfld System.Single UnityEngine.Vector3::z IL_00FD: ldloc.s 4 (System.Single) IL_00FF: ble.un => Label5 IL_0104: ldloc.1 IL_0105: ldc.i4 461 IL_010A: bge => Label6 IL_010F: ldarg.0 IL_0110: ldarg.1 IL_0111: ldloc.0 IL_0112: ldloc.1 IL_0113: ldc.i4.1 IL_0114: add IL_0115: ldarg.2 IL_0116: ldarg.3 IL_0117: ldloca.s 2 (System.Int32) IL_0119: ldarg.s 4 IL_011B: call System.Boolean WaterManager::TryFetchWaterImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result, System.Byte& waterPollution) IL_0120: brfalse => Label7 IL_0125: ldloc.2 IL_0126: br => Label36 IL_012B: Label7 IL_012B: br => Label8 IL_0130: Label5 IL_0130: Label6 IL_0130: ldarga.s 1 IL_0132: ldfld System.Single UnityEngine.Vector3::z IL_0137: ldloc.s 4 (System.Single) IL_0139: bge.un => Label9 IL_013E: ldloc.1 IL_013F: ldc.i4.0 IL_0140: ble => Label10 IL_0145: ldarg.0 IL_0146: ldarg.1 IL_0147: ldloc.0 IL_0148: ldloc.1 IL_0149: ldc.i4.1 IL_014A: sub IL_014B: ldarg.2 IL_014C: ldarg.3 IL_014D: ldloca.s 2 (System.Int32) IL_014F: ldarg.s 4 IL_0151: call System.Boolean WaterManager::TryFetchWaterImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result, System.Byte& waterPollution) IL_0156: brfalse => Label11 IL_015B: ldloc.2 IL_015C: br => Label37 IL_0161: Label8 IL_0161: Label9 IL_0161: Label10 IL_0161: Label11 IL_0161: ldarga.s 1 IL_0163: ldfld System.Single UnityEngine.Vector3::x IL_0168: ldloc.3 IL_0169: ble.un => Label12 IL_016E: ldloc.0 IL_016F: ldc.i4 461 IL_0174: bge => Label13 IL_0179: ldarg.0 IL_017A: ldarg.1 IL_017B: ldloc.0 IL_017C: ldc.i4.1 IL_017D: add IL_017E: ldloc.1 IL_017F: ldarg.2 IL_0180: ldarg.3 IL_0181: ldloca.s 2 (System.Int32) IL_0183: ldarg.s 4 IL_0185: call System.Boolean WaterManager::TryFetchWaterImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result, System.Byte& waterPollution) IL_018A: brfalse => Label14 IL_018F: ldloc.2 IL_0190: br => Label38 IL_0195: Label14 IL_0195: ldarga.s 1 IL_0197: ldfld System.Single UnityEngine.Vector3::z IL_019C: ldloc.s 4 (System.Single) IL_019E: ble.un => Label15 IL_01A3: ldloc.1 IL_01A4: ldc.i4 461 IL_01A9: bge => Label16 IL_01AE: ldarg.0 IL_01AF: ldarg.1 IL_01B0: ldloc.0 IL_01B1: ldc.i4.1 IL_01B2: add IL_01B3: ldloc.1 IL_01B4: ldc.i4.1 IL_01B5: add IL_01B6: ldarg.2 IL_01B7: ldarg.3 IL_01B8: ldloca.s 2 (System.Int32) IL_01BA: ldarg.s 4 IL_01BC: call System.Boolean WaterManager::TryFetchWaterImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result, System.Byte& waterPollution) IL_01C1: brfalse => Label17 IL_01C6: ldloc.2 IL_01C7: br => Label39 IL_01CC: Label17 IL_01CC: br => Label18 IL_01D1: Label15 IL_01D1: Label16 IL_01D1: ldarga.s 1 IL_01D3: ldfld System.Single UnityEngine.Vector3::z IL_01D8: ldloc.s 4 (System.Single) IL_01DA: bge.un => Label19 IL_01DF: ldloc.1 IL_01E0: ldc.i4.0 IL_01E1: ble => Label20 IL_01E6: ldarg.0 IL_01E7: ldarg.1 IL_01E8: ldloc.0 IL_01E9: ldc.i4.1 IL_01EA: add IL_01EB: ldloc.1 IL_01EC: ldc.i4.1 IL_01ED: sub IL_01EE: ldarg.2 IL_01EF: ldarg.3 IL_01F0: ldloca.s 2 (System.Int32) IL_01F2: ldarg.s 4 IL_01F4: call System.Boolean WaterManager::TryFetchWaterImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result, System.Byte& waterPollution) IL_01F9: brfalse => Label21 IL_01FE: ldloc.2 IL_01FF: br => Label40 IL_0204: Label18 IL_0204: Label19 IL_0204: Label20 IL_0204: Label21 IL_0204: br => Label22 IL_0209: Label12 IL_0209: Label13 IL_0209: ldarga.s 1 IL_020B: ldfld System.Single UnityEngine.Vector3::x IL_0210: ldloc.3 IL_0211: bge.un => Label23 IL_0216: ldloc.0 IL_0217: ldc.i4.0 IL_0218: ble => Label24 IL_021D: ldarg.0 IL_021E: ldarg.1 IL_021F: ldloc.0 IL_0220: ldc.i4.1 IL_0221: sub IL_0222: ldloc.1 IL_0223: ldarg.2 IL_0224: ldarg.3 IL_0225: ldloca.s 2 (System.Int32) IL_0227: ldarg.s 4 IL_0229: call System.Boolean WaterManager::TryFetchWaterImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result, System.Byte& waterPollution) IL_022E: brfalse => Label25 IL_0233: ldloc.2 IL_0234: br => Label41 IL_0239: Label25 IL_0239: ldarga.s 1 IL_023B: ldfld System.Single UnityEngine.Vector3::z IL_0240: ldloc.s 4 (System.Single) IL_0242: ble.un => Label26 IL_0247: ldloc.1 IL_0248: ldc.i4 461 IL_024D: bge => Label27 IL_0252: ldarg.0 IL_0253: ldarg.1 IL_0254: ldloc.0 IL_0255: ldc.i4.1 IL_0256: sub IL_0257: ldloc.1 IL_0258: ldc.i4.1 IL_0259: add IL_025A: ldarg.2 IL_025B: ldarg.3 IL_025C: ldloca.s 2 (System.Int32) IL_025E: ldarg.s 4 IL_0260: call System.Boolean WaterManager::TryFetchWaterImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result, System.Byte& waterPollution) IL_0265: brfalse => Label28 IL_026A: ldloc.2 IL_026B: br => Label42 IL_0270: Label28 IL_0270: br => Label29 IL_0275: Label26 IL_0275: Label27 IL_0275: ldarga.s 1 IL_0277: ldfld System.Single UnityEngine.Vector3::z IL_027C: ldloc.s 4 (System.Single) IL_027E: bge.un => Label30 IL_0283: ldloc.1 IL_0284: ldc.i4.0 IL_0285: ble => Label31 IL_028A: ldarg.0 IL_028B: ldarg.1 IL_028C: ldloc.0 IL_028D: ldc.i4.1 IL_028E: sub IL_028F: ldloc.1 IL_0290: ldc.i4.1 IL_0291: sub IL_0292: ldarg.2 IL_0293: ldarg.3 IL_0294: ldloca.s 2 (System.Int32) IL_0296: ldarg.s 4 IL_0298: call System.Boolean WaterManager::TryFetchWaterImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result, System.Byte& waterPollution) IL_029D: brfalse => Label32 IL_02A2: ldloc.2 IL_02A3: br => Label43 IL_02A8: Label22 IL_02A8: Label23 IL_02A8: Label24 IL_02A8: Label29 IL_02A8: Label30 IL_02A8: Label31 IL_02A8: Label32 IL_02A8: ldc.i4.0 IL_02A9: // end original IL_02A9: Label33 IL_02A9: Label34 IL_02A9: Label35 IL_02A9: Label36 IL_02A9: Label37 IL_02A9: Label38 IL_02A9: Label39 IL_02A9: Label40 IL_02A9: Label41 IL_02A9: Label42 IL_02A9: Label43 IL_02A9: stloc 5 (System.Int32) IL_02AD: Label0 IL_02AD: ldloc 5 (System.Int32) IL_02B1: ret DONE ### Patch: System.Boolean WaterManager::TryFetchWaterImpl(UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result, System.Byte& waterPollution) ### Replacement: static System.Boolean WaterManager::WaterManager.TryFetchWaterImpl_Patch0(WaterManager this, UnityEngine.Vector3 pos, System.Int32 x, System.Int32 z, System.Int32 rate, System.Int32 max, System.Int32& result, System.Byte& waterPollution) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: WaterManager/Cell IL_0000: Local var 2: NetManager IL_0000: Local var 3: System.UInt16 IL_0000: Local var 4: System.UInt16 IL_0000: Local var 5: System.UInt16 IL_0000: Local var 6: NetNode/Flags IL_0000: Local var 7: NetNode/Flags IL_0000: Local var 8: ColossalFramework.Math.Segment2 IL_0000: Local var 9: System.Single IL_0000: // start original IL_0000: ldarg.3 IL_0001: ldc.i4 462 IL_0006: mul IL_0007: ldarg.2 IL_0008: add IL_0009: stloc.0 IL_000A: ldarg.0 IL_000B: ldfld Cell[] WaterManager::m_waterGrid IL_0010: ldloc.0 IL_0011: ldelema WaterManager+Cell IL_0016: ldobj WaterManager+Cell IL_001B: stloc.1 IL_001C: ldloca.s 1 (WaterManager+Cell) IL_001E: ldfld System.Boolean Cell::m_hasWater IL_0023: brfalse => Label0 IL_0028: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_002D: stloc.2 IL_002E: ldloca.s 1 (WaterManager+Cell) IL_0030: ldfld System.UInt16 Cell::m_closestPipeSegment IL_0035: stloc.3 IL_0036: ldloc.2 IL_0037: ldfld Array16`1 NetManager::m_segments IL_003C: ldfld NetSegment[] Array16`1::m_buffer IL_0041: ldloc.3 IL_0042: ldelema NetSegment IL_0047: ldfld System.UInt16 NetSegment::m_startNode IL_004C: stloc.s 4 (System.UInt16) IL_004E: ldloc.2 IL_004F: ldfld Array16`1 NetManager::m_segments IL_0054: ldfld NetSegment[] Array16`1::m_buffer IL_0059: ldloc.3 IL_005A: ldelema NetSegment IL_005F: ldfld System.UInt16 NetSegment::m_endNode IL_0064: stloc.s 5 (System.UInt16) IL_0066: ldloc.2 IL_0067: ldfld Array16`1 NetManager::m_nodes IL_006C: ldfld NetNode[] Array16`1::m_buffer IL_0071: ldloc.s 4 (System.UInt16) IL_0073: ldelema NetNode IL_0078: ldfld Flags NetNode::m_flags IL_007D: stloc.s 6 (NetNode+Flags) IL_007F: ldloc.2 IL_0080: ldfld Array16`1 NetManager::m_nodes IL_0085: ldfld NetNode[] Array16`1::m_buffer IL_008A: ldloc.s 5 (System.UInt16) IL_008C: ldelema NetNode IL_0091: ldfld Flags NetNode::m_flags IL_0096: stloc.s 7 (NetNode+Flags) IL_0098: ldloc.s 6 (NetNode+Flags) IL_009A: ldloc.s 7 (NetNode+Flags) IL_009C: and IL_009D: ldc.i4 65536 IL_00A2: and IL_00A3: brfalse => Label1 IL_00A8: ldloca.s 8 (ColossalFramework.Math.Segment2) IL_00AA: ldloc.2 IL_00AB: ldfld Array16`1 NetManager::m_nodes IL_00B0: ldfld NetNode[] Array16`1::m_buffer IL_00B5: ldloc.s 4 (System.UInt16) IL_00B7: ldelema NetNode IL_00BC: ldfld UnityEngine.Vector3 NetNode::m_position IL_00C1: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_00C6: stfld UnityEngine.Vector2 ColossalFramework.Math.Segment2::a IL_00CB: ldloca.s 8 (ColossalFramework.Math.Segment2) IL_00CD: ldloc.2 IL_00CE: ldfld Array16`1 NetManager::m_nodes IL_00D3: ldfld NetNode[] Array16`1::m_buffer IL_00D8: ldloc.s 5 (System.UInt16) IL_00DA: ldelema NetNode IL_00DF: ldfld UnityEngine.Vector3 NetNode::m_position IL_00E4: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_00E9: stfld UnityEngine.Vector2 ColossalFramework.Math.Segment2::b IL_00EE: ldloca.s 8 (ColossalFramework.Math.Segment2) IL_00F0: ldarg.1 IL_00F1: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_00F6: ldloca.s 9 (System.Single) IL_00F8: call System.Single ColossalFramework.Math.Segment2::DistanceSqr(UnityEngine.Vector2 p, System.Single& u) IL_00FD: conv.r8 IL_00FE: ldc.r8 9025 IL_0107: bge.un => Label2 IL_010C: ldarg.s 4 IL_010E: ldarg.s 5 IL_0110: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0115: ldc.i4 32768 IL_011A: ldloca.s 1 (WaterManager+Cell) IL_011C: ldfld System.Int16 Cell::m_currentWaterPressure IL_0121: add IL_0122: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0127: starg.s 4 IL_0129: ldloca.s 1 (WaterManager+Cell) IL_012B: dup IL_012C: ldfld System.Int16 Cell::m_currentWaterPressure IL_0131: ldarg.s 4 IL_0133: conv.i2 IL_0134: sub IL_0135: conv.i2 IL_0136: stfld System.Int16 Cell::m_currentWaterPressure IL_013B: ldarg.s 7 IL_013D: ldloca.s 1 (WaterManager+Cell) IL_013F: ldfld System.Byte Cell::m_pollution IL_0144: stind.i1 IL_0145: ldarg.0 IL_0146: ldfld Cell[] WaterManager::m_waterGrid IL_014B: ldloc.0 IL_014C: ldelema WaterManager+Cell IL_0151: ldloc.1 IL_0152: stobj WaterManager+Cell IL_0157: ldarg.s 6 IL_0159: ldarg.s 4 IL_015B: stind.i4 IL_015C: ldc.i4.1 IL_015D: br => Label3 IL_0162: Label0 IL_0162: Label1 IL_0162: Label2 IL_0162: ldc.i4.0 IL_0163: // end original IL_0163: Label3 IL_0163: ret DONE ### Patch: System.Void WaterManager::UpdateGrid(System.Single minX, System.Single minZ, System.Single maxX, System.Single maxZ) ### Replacement: static System.Void WaterManager::WaterManager.UpdateGrid_Patch1(WaterManager this, System.Single minX, System.Single minZ, System.Single maxX, System.Single maxZ) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: System.Int32 IL_0000: Local var 2: System.Int32 IL_0000: Local var 3: System.Int32 IL_0000: Local var 4: System.Int32 IL_0000: Local var 5: System.Int32 IL_0000: Local var 6: System.Int32 IL_0000: Local var 7: System.Single IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Single IL_0000: Local var 11: System.Int32 IL_0000: Local var 12: System.Int32 IL_0000: Local var 13: System.Int32 IL_0000: Local var 14: System.Int32 IL_0000: Local var 15: System.Single IL_0000: Local var 16: Array16`1 IL_0000: Local var 17: Array16`1 IL_0000: Local var 18: System.UInt16[] IL_0000: Local var 19: System.Int32 IL_0000: Local var 20: System.Int32 IL_0000: Local var 21: System.UInt16 IL_0000: Local var 22: System.Int32 IL_0000: Local var 23: NetSegment/Flags IL_0000: Local var 24: NetInfo IL_0000: Local var 25: System.UInt16 IL_0000: Local var 26: System.UInt16 IL_0000: Local var 27: UnityEngine.Vector2 IL_0000: Local var 28: UnityEngine.Vector2 IL_0000: Local var 29: System.Single IL_0000: Local var 30: System.Single IL_0000: Local var 31: System.Int32 IL_0000: Local var 32: System.Int32 IL_0000: Local var 33: System.Int32 IL_0000: Local var 34: System.Int32 IL_0000: Local var 35: System.Int32 IL_0000: Local var 36: System.Int32 IL_0000: Local var 37: System.Single IL_0000: Local var 38: System.Int32 IL_0000: Local var 39: System.Single IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: System.Int32 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Int32 IL_0000: Local var 46: System.Int32 IL_0000: Local var 47: WaterManager/Cell IL_0000: Local var 48: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 48 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 48 (System.Boolean) IL_000E: ldloc 48 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg.0 IL_0018: ldarg 1 IL_001C: ldarg 2 IL_0020: ldarg 3 IL_0024: ldarg 4 IL_0028: ldarg.0 IL_0029: ldfld Cell[] WaterManager::m_waterGrid IL_002E: call static System.Boolean EightyOne2.Patches.WaterManagerPatches::UpdateGrid(WaterManager __instance, System.Single minX, System.Single minZ, System.Single maxX, System.Single maxZ, Cell[] ___m_waterGrid) IL_0033: stloc 48 (System.Boolean) IL_0037: Label1 IL_0037: nop IL_0038: ldloc 48 (System.Boolean) IL_003C: brfalse => Label0 IL_0041: // start original IL_0041: ldarg.1 IL_0042: ldc.r4 38.25 IL_0047: div IL_0048: ldc.r4 231 IL_004D: add IL_004E: conv.i4 IL_004F: ldc.i4.0 IL_0050: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0055: stloc.0 IL_0056: ldarg.2 IL_0057: ldc.r4 38.25 IL_005C: div IL_005D: ldc.r4 231 IL_0062: add IL_0063: conv.i4 IL_0064: ldc.i4.0 IL_0065: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_006A: stloc.1 IL_006B: ldarg.3 IL_006C: ldc.r4 38.25 IL_0071: div IL_0072: ldc.r4 231 IL_0077: add IL_0078: conv.i4 IL_0079: ldc.i4 461 IL_007E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0083: stloc.2 IL_0084: ldarg.s 4 IL_0086: ldc.r4 38.25 IL_008B: div IL_008C: ldc.r4 231 IL_0091: add IL_0092: conv.i4 IL_0093: ldc.i4 461 IL_0098: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_009D: stloc.3 IL_009E: ldloc.1 IL_009F: stloc.s 4 (System.Int32) IL_00A1: br => Label2 IL_00A6: Label5 IL_00A6: ldloc.s 4 (System.Int32) IL_00A8: ldc.i4 462 IL_00AD: mul IL_00AE: ldloc.0 IL_00AF: add IL_00B0: stloc.s 5 (System.Int32) IL_00B2: ldloc.0 IL_00B3: stloc.s 6 (System.Int32) IL_00B5: br => Label3 IL_00BA: Label4 IL_00BA: ldarg.0 IL_00BB: ldfld Cell[] WaterManager::m_waterGrid IL_00C0: ldloc.s 5 (System.Int32) IL_00C2: ldelema WaterManager+Cell IL_00C7: ldc.i4.0 IL_00C8: stfld System.Byte Cell::m_conductivity IL_00CD: ldarg.0 IL_00CE: ldfld Cell[] WaterManager::m_waterGrid IL_00D3: ldloc.s 5 (System.Int32) IL_00D5: ldelema WaterManager+Cell IL_00DA: ldc.i4.0 IL_00DB: stfld System.Byte Cell::m_conductivity2 IL_00E0: ldarg.0 IL_00E1: ldfld Cell[] WaterManager::m_waterGrid IL_00E6: ldloc.s 5 (System.Int32) IL_00E8: ldelema WaterManager+Cell IL_00ED: ldc.i4.0 IL_00EE: stfld System.UInt16 Cell::m_closestPipeSegment IL_00F3: ldarg.0 IL_00F4: ldfld Cell[] WaterManager::m_waterGrid IL_00F9: ldloc.s 5 (System.Int32) IL_00FB: ldelema WaterManager+Cell IL_0100: ldc.i4.0 IL_0101: stfld System.UInt16 Cell::m_closestPipeSegment2 IL_0106: ldloc.s 5 (System.Int32) IL_0108: ldc.i4.1 IL_0109: add IL_010A: stloc.s 5 (System.Int32) IL_010C: ldloc.s 6 (System.Int32) IL_010E: ldc.i4.1 IL_010F: add IL_0110: stloc.s 6 (System.Int32) IL_0112: Label3 IL_0112: ldloc.s 6 (System.Int32) IL_0114: ldloc.2 IL_0115: ble => Label4 IL_011A: ldloc.s 4 (System.Int32) IL_011C: ldc.i4.1 IL_011D: add IL_011E: stloc.s 4 (System.Int32) IL_0120: Label2 IL_0120: ldloc.s 4 (System.Int32) IL_0122: ldloc.3 IL_0123: ble => Label5 IL_0128: ldloc.0 IL_0129: conv.r4 IL_012A: ldc.r4 231 IL_012F: sub IL_0130: ldc.r4 38.25 IL_0135: mul IL_0136: ldc.r4 100 IL_013B: sub IL_013C: stloc.s 7 (System.Single) IL_013E: ldloc.1 IL_013F: conv.r4 IL_0140: ldc.r4 231 IL_0145: sub IL_0146: ldc.r4 38.25 IL_014B: mul IL_014C: ldc.r4 100 IL_0151: sub IL_0152: stloc.s 8 (System.Single) IL_0154: ldloc.2 IL_0155: conv.r4 IL_0156: ldc.r4 231 IL_015B: sub IL_015C: ldc.r4 1 IL_0161: add IL_0162: ldc.r4 38.25 IL_0167: mul IL_0168: ldc.r4 100 IL_016D: add IL_016E: stloc.s 9 (System.Single) IL_0170: ldloc.3 IL_0171: conv.r4 IL_0172: ldc.r4 231 IL_0177: sub IL_0178: ldc.r4 1 IL_017D: add IL_017E: ldc.r4 38.25 IL_0183: mul IL_0184: ldc.r4 100 IL_0189: add IL_018A: stloc.s 10 (System.Single) IL_018C: ldloc.s 7 (System.Single) IL_018E: ldc.r4 64 IL_0193: div IL_0194: ldc.r4 135 IL_0199: add IL_019A: conv.i4 IL_019B: ldc.i4.0 IL_019C: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_01A1: stloc.s 11 (System.Int32) IL_01A3: ldloc.s 8 (System.Single) IL_01A5: ldc.r4 64 IL_01AA: div IL_01AB: ldc.r4 135 IL_01B0: add IL_01B1: conv.i4 IL_01B2: ldc.i4.0 IL_01B3: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_01B8: stloc.s 12 (System.Int32) IL_01BA: ldloc.s 9 (System.Single) IL_01BC: ldc.r4 64 IL_01C1: div IL_01C2: ldc.r4 135 IL_01C7: add IL_01C8: conv.i4 IL_01C9: ldc.i4 269 IL_01CE: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_01D3: stloc.s 13 (System.Int32) IL_01D5: ldloc.s 10 (System.Single) IL_01D7: ldc.r4 64 IL_01DC: div IL_01DD: ldc.r4 135 IL_01E2: add IL_01E3: conv.i4 IL_01E4: ldc.i4 269 IL_01E9: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_01EE: stloc.s 14 (System.Int32) IL_01F0: ldc.r4 100 IL_01F5: stloc.s 15 (System.Single) IL_01F7: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_01FC: ldfld Array16`1 NetManager::m_nodes IL_0201: stloc.s 16 (Array16`1[NetNode]) IL_0203: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0208: ldfld Array16`1 NetManager::m_segments IL_020D: stloc.s 17 (Array16`1[NetSegment]) IL_020F: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0214: ldfld System.UInt16[] NetManager::m_segmentGrid IL_0219: stloc.s 18 (System.UInt16[]) IL_021B: ldloc.s 12 (System.Int32) IL_021D: stloc.s 19 (System.Int32) IL_021F: br => Label6 IL_0224: Label26 IL_0224: ldloc.s 11 (System.Int32) IL_0226: stloc.s 20 (System.Int32) IL_0228: br => Label7 IL_022D: Label25 IL_022D: ldloc.s 18 (System.UInt16[]) IL_022F: ldloc.s 19 (System.Int32) IL_0231: ldc.i4 270 IL_0236: mul IL_0237: ldloc.s 20 (System.Int32) IL_0239: add IL_023A: ldelem.u2 IL_023B: stloc.s 21 (System.UInt16) IL_023D: ldc.i4.0 IL_023E: stloc.s 22 (System.Int32) IL_0240: br => Label8 IL_0245: Label24 IL_0245: ldloc.s 17 (Array16`1[NetSegment]) IL_0247: ldfld NetSegment[] Array16`1::m_buffer IL_024C: ldloc.s 21 (System.UInt16) IL_024E: ldelema NetSegment IL_0253: ldfld Flags NetSegment::m_flags IL_0258: stloc.s 23 (NetSegment+Flags) IL_025A: ldloc.s 23 (NetSegment+Flags) IL_025C: ldc.i4.3 IL_025D: and IL_025E: ldc.i4.1 IL_025F: bne.un => Label9 IL_0264: ldloc.s 17 (Array16`1[NetSegment]) IL_0266: ldfld NetSegment[] Array16`1::m_buffer IL_026B: ldloc.s 21 (System.UInt16) IL_026D: ldelema NetSegment IL_0272: call NetInfo NetSegment::get_Info() IL_0277: stloc.s 24 (NetInfo) IL_0279: ldloc.s 24 (NetInfo) IL_027B: ldfld ItemClass NetInfo::m_class IL_0280: ldfld Service ItemClass::m_service IL_0285: ldc.i4.s 11 IL_0287: bne.un => Label10 IL_028C: ldloc.s 24 (NetInfo) IL_028E: ldfld ItemClass NetInfo::m_class IL_0293: ldfld Level ItemClass::m_level IL_0298: ldc.i4.1 IL_0299: bgt => Label11 IL_029E: ldloc.s 17 (Array16`1[NetSegment]) IL_02A0: ldfld NetSegment[] Array16`1::m_buffer IL_02A5: ldloc.s 21 (System.UInt16) IL_02A7: ldelema NetSegment IL_02AC: ldfld System.UInt16 NetSegment::m_startNode IL_02B1: stloc.s 25 (System.UInt16) IL_02B3: ldloc.s 17 (Array16`1[NetSegment]) IL_02B5: ldfld NetSegment[] Array16`1::m_buffer IL_02BA: ldloc.s 21 (System.UInt16) IL_02BC: ldelema NetSegment IL_02C1: ldfld System.UInt16 NetSegment::m_endNode IL_02C6: stloc.s 26 (System.UInt16) IL_02C8: ldloc.s 16 (Array16`1[NetNode]) IL_02CA: ldfld NetNode[] Array16`1::m_buffer IL_02CF: ldloc.s 25 (System.UInt16) IL_02D1: ldelema NetNode IL_02D6: ldfld UnityEngine.Vector3 NetNode::m_position IL_02DB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_02E0: stloc.s 27 (UnityEngine.Vector2) IL_02E2: ldloc.s 16 (Array16`1[NetNode]) IL_02E4: ldfld NetNode[] Array16`1::m_buffer IL_02E9: ldloc.s 26 (System.UInt16) IL_02EB: ldelema NetNode IL_02F0: ldfld UnityEngine.Vector3 NetNode::m_position IL_02F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_02FA: stloc.s 28 (UnityEngine.Vector2) IL_02FC: ldloc.s 7 (System.Single) IL_02FE: ldloca.s 27 (UnityEngine.Vector2) IL_0300: ldfld System.Single UnityEngine.Vector2::x IL_0305: sub IL_0306: ldloc.s 8 (System.Single) IL_0308: ldloca.s 27 (UnityEngine.Vector2) IL_030A: ldfld System.Single UnityEngine.Vector2::y IL_030F: sub IL_0310: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0315: ldloca.s 27 (UnityEngine.Vector2) IL_0317: ldfld System.Single UnityEngine.Vector2::x IL_031C: ldloc.s 9 (System.Single) IL_031E: sub IL_031F: ldloca.s 27 (UnityEngine.Vector2) IL_0321: ldfld System.Single UnityEngine.Vector2::y IL_0326: ldloc.s 10 (System.Single) IL_0328: sub IL_0329: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_032E: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0333: stloc.s 29 (System.Single) IL_0335: ldloc.s 7 (System.Single) IL_0337: ldloca.s 28 (UnityEngine.Vector2) IL_0339: ldfld System.Single UnityEngine.Vector2::x IL_033E: sub IL_033F: ldloc.s 8 (System.Single) IL_0341: ldloca.s 28 (UnityEngine.Vector2) IL_0343: ldfld System.Single UnityEngine.Vector2::y IL_0348: sub IL_0349: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_034E: ldloca.s 28 (UnityEngine.Vector2) IL_0350: ldfld System.Single UnityEngine.Vector2::x IL_0355: ldloc.s 9 (System.Single) IL_0357: sub IL_0358: ldloca.s 28 (UnityEngine.Vector2) IL_035A: ldfld System.Single UnityEngine.Vector2::y IL_035F: ldloc.s 10 (System.Single) IL_0361: sub IL_0362: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0367: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_036C: stloc.s 30 (System.Single) IL_036E: ldloc.s 29 (System.Single) IL_0370: ldc.r4 0 IL_0375: blt => Label12 IL_037A: ldloc.s 30 (System.Single) IL_037C: ldc.r4 0 IL_0381: bge.un => Label13 IL_0386: Label12 IL_0386: ldloca.s 27 (UnityEngine.Vector2) IL_0388: ldfld System.Single UnityEngine.Vector2::x IL_038D: ldloca.s 28 (UnityEngine.Vector2) IL_038F: ldfld System.Single UnityEngine.Vector2::x IL_0394: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0399: ldloc.s 15 (System.Single) IL_039B: sub IL_039C: ldc.r4 38.25 IL_03A1: div IL_03A2: ldc.r4 231 IL_03A7: add IL_03A8: conv.i4 IL_03A9: ldloc.0 IL_03AA: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_03AF: stloc.s 31 (System.Int32) IL_03B1: ldloca.s 27 (UnityEngine.Vector2) IL_03B3: ldfld System.Single UnityEngine.Vector2::y IL_03B8: ldloca.s 28 (UnityEngine.Vector2) IL_03BA: ldfld System.Single UnityEngine.Vector2::y IL_03BF: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_03C4: ldloc.s 15 (System.Single) IL_03C6: sub IL_03C7: ldc.r4 38.25 IL_03CC: div IL_03CD: ldc.r4 231 IL_03D2: add IL_03D3: conv.i4 IL_03D4: ldloc.1 IL_03D5: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_03DA: stloc.s 32 (System.Int32) IL_03DC: ldloca.s 27 (UnityEngine.Vector2) IL_03DE: ldfld System.Single UnityEngine.Vector2::x IL_03E3: ldloca.s 28 (UnityEngine.Vector2) IL_03E5: ldfld System.Single UnityEngine.Vector2::x IL_03EA: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_03EF: ldloc.s 15 (System.Single) IL_03F1: add IL_03F2: ldc.r4 38.25 IL_03F7: div IL_03F8: ldc.r4 231 IL_03FD: add IL_03FE: conv.i4 IL_03FF: ldloc.2 IL_0400: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0405: stloc.s 33 (System.Int32) IL_0407: ldloca.s 27 (UnityEngine.Vector2) IL_0409: ldfld System.Single UnityEngine.Vector2::y IL_040E: ldloca.s 28 (UnityEngine.Vector2) IL_0410: ldfld System.Single UnityEngine.Vector2::y IL_0415: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_041A: ldloc.s 15 (System.Single) IL_041C: add IL_041D: ldc.r4 38.25 IL_0422: div IL_0423: ldc.r4 231 IL_0428: add IL_0429: conv.i4 IL_042A: ldloc.3 IL_042B: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0430: stloc.s 34 (System.Int32) IL_0432: ldloc.s 32 (System.Int32) IL_0434: stloc.s 35 (System.Int32) IL_0436: br => Label14 IL_043B: Label21 IL_043B: ldloc.s 35 (System.Int32) IL_043D: ldc.i4 462 IL_0442: mul IL_0443: ldloc.s 31 (System.Int32) IL_0445: add IL_0446: stloc.s 36 (System.Int32) IL_0448: ldloc.s 35 (System.Int32) IL_044A: conv.r4 IL_044B: ldc.r4 0.5 IL_0450: add IL_0451: ldc.r4 231 IL_0456: sub IL_0457: ldc.r4 38.25 IL_045C: mul IL_045D: stloc.s 37 (System.Single) IL_045F: ldloc.s 31 (System.Int32) IL_0461: stloc.s 38 (System.Int32) IL_0463: br => Label15 IL_0468: Label20 IL_0468: ldloc.s 38 (System.Int32) IL_046A: conv.r4 IL_046B: ldc.r4 0.5 IL_0470: add IL_0471: ldc.r4 231 IL_0476: sub IL_0477: ldc.r4 38.25 IL_047C: mul IL_047D: stloc.s 39 (System.Single) IL_047F: ldloc.s 27 (UnityEngine.Vector2) IL_0481: ldloc.s 28 (UnityEngine.Vector2) IL_0483: ldloc.s 39 (System.Single) IL_0485: ldloc.s 37 (System.Single) IL_0487: newobj System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_048C: ldloca.s 40 (System.Single) IL_048E: call static System.Single ColossalFramework.Math.Segment2::DistanceSqr(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, System.Single& u) IL_0493: stloc.s 41 (System.Single) IL_0495: ldloc.s 41 (System.Single) IL_0497: call static System.Single UnityEngine.Mathf::Sqrt(System.Single f) IL_049C: stloc.s 41 (System.Single) IL_049E: ldloc.s 41 (System.Single) IL_04A0: ldloc.s 15 (System.Single) IL_04A2: ldc.r4 19.125 IL_04A7: add IL_04A8: bge.un => Label16 IL_04AD: ldloc.s 15 (System.Single) IL_04AF: ldloc.s 41 (System.Single) IL_04B1: sub IL_04B2: ldc.r4 0.0130719 IL_04B7: mul IL_04B8: ldc.r4 0.25 IL_04BD: add IL_04BE: stloc.s 42 (System.Single) IL_04C0: ldc.i4 461 IL_04C5: ldloc.s 42 (System.Single) IL_04C7: ldc.r4 255 IL_04CC: mul IL_04CD: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_04D2: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_04D7: stloc.s 43 (System.Int32) IL_04D9: ldloc.s 43 (System.Int32) IL_04DB: ldarg.0 IL_04DC: ldfld Cell[] WaterManager::m_waterGrid IL_04E1: ldloc.s 36 (System.Int32) IL_04E3: ldelema WaterManager+Cell IL_04E8: ldfld System.Byte Cell::m_conductivity IL_04ED: ble => Label17 IL_04F2: ldarg.0 IL_04F3: ldfld Cell[] WaterManager::m_waterGrid IL_04F8: ldloc.s 36 (System.Int32) IL_04FA: ldelema WaterManager+Cell IL_04FF: ldloc.s 43 (System.Int32) IL_0501: conv.u1 IL_0502: stfld System.Byte Cell::m_conductivity IL_0507: ldarg.0 IL_0508: ldfld Cell[] WaterManager::m_waterGrid IL_050D: ldloc.s 36 (System.Int32) IL_050F: ldelema WaterManager+Cell IL_0514: ldloc.s 21 (System.UInt16) IL_0516: stfld System.UInt16 Cell::m_closestPipeSegment IL_051B: Label17 IL_051B: ldloc.s 24 (NetInfo) IL_051D: ldfld ItemClass NetInfo::m_class IL_0522: ldfld Level ItemClass::m_level IL_0527: ldc.i4.1 IL_0528: bne.un => Label18 IL_052D: ldloc.s 43 (System.Int32) IL_052F: ldarg.0 IL_0530: ldfld Cell[] WaterManager::m_waterGrid IL_0535: ldloc.s 36 (System.Int32) IL_0537: ldelema WaterManager+Cell IL_053C: ldfld System.Byte Cell::m_conductivity2 IL_0541: ble => Label19 IL_0546: ldarg.0 IL_0547: ldfld Cell[] WaterManager::m_waterGrid IL_054C: ldloc.s 36 (System.Int32) IL_054E: ldelema WaterManager+Cell IL_0553: ldloc.s 43 (System.Int32) IL_0555: conv.u1 IL_0556: stfld System.Byte Cell::m_conductivity2 IL_055B: ldarg.0 IL_055C: ldfld Cell[] WaterManager::m_waterGrid IL_0561: ldloc.s 36 (System.Int32) IL_0563: ldelema WaterManager+Cell IL_0568: ldloc.s 21 (System.UInt16) IL_056A: stfld System.UInt16 Cell::m_closestPipeSegment2 IL_056F: Label16 IL_056F: Label18 IL_056F: Label19 IL_056F: ldloc.s 36 (System.Int32) IL_0571: ldc.i4.1 IL_0572: add IL_0573: stloc.s 36 (System.Int32) IL_0575: ldloc.s 38 (System.Int32) IL_0577: ldc.i4.1 IL_0578: add IL_0579: stloc.s 38 (System.Int32) IL_057B: Label15 IL_057B: ldloc.s 38 (System.Int32) IL_057D: ldloc.s 33 (System.Int32) IL_057F: ble => Label20 IL_0584: ldloc.s 35 (System.Int32) IL_0586: ldc.i4.1 IL_0587: add IL_0588: stloc.s 35 (System.Int32) IL_058A: Label14 IL_058A: ldloc.s 35 (System.Int32) IL_058C: ldloc.s 34 (System.Int32) IL_058E: ble => Label21 IL_0593: Label9 IL_0593: Label10 IL_0593: Label11 IL_0593: Label13 IL_0593: ldloc.s 17 (Array16`1[NetSegment]) IL_0595: ldfld NetSegment[] Array16`1::m_buffer IL_059A: ldloc.s 21 (System.UInt16) IL_059C: ldelema NetSegment IL_05A1: ldfld System.UInt16 NetSegment::m_nextGridSegment IL_05A6: stloc.s 21 (System.UInt16) IL_05A8: ldloc.s 22 (System.Int32) IL_05AA: ldc.i4.1 IL_05AB: add IL_05AC: dup IL_05AD: stloc.s 22 (System.Int32) IL_05AF: ldc.i4 32768 IL_05B4: blt => Label22 IL_05B9: ldc.i4.1 IL_05BA: ldstr "Invalid list detected!\n" IL_05BF: call static System.String System.Environment::get_StackTrace() IL_05C4: call static System.String System.String::Concat(System.String str0, System.String str1) IL_05C9: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_05CE: br => Label23 IL_05D3: Label8 IL_05D3: Label22 IL_05D3: ldloc.s 21 (System.UInt16) IL_05D5: brtrue => Label24 IL_05DA: Label23 IL_05DA: ldloc.s 20 (System.Int32) IL_05DC: ldc.i4.1 IL_05DD: add IL_05DE: stloc.s 20 (System.Int32) IL_05E0: Label7 IL_05E0: ldloc.s 20 (System.Int32) IL_05E2: ldloc.s 13 (System.Int32) IL_05E4: ble => Label25 IL_05E9: ldloc.s 19 (System.Int32) IL_05EB: ldc.i4.1 IL_05EC: add IL_05ED: stloc.s 19 (System.Int32) IL_05EF: Label6 IL_05EF: ldloc.s 19 (System.Int32) IL_05F1: ldloc.s 14 (System.Int32) IL_05F3: ble => Label26 IL_05F8: ldloc.1 IL_05F9: stloc.s 44 (System.Int32) IL_05FB: br => Label27 IL_0600: Label33 IL_0600: ldloc.s 44 (System.Int32) IL_0602: ldc.i4 462 IL_0607: mul IL_0608: ldloc.0 IL_0609: add IL_060A: stloc.s 45 (System.Int32) IL_060C: ldloc.0 IL_060D: stloc.s 46 (System.Int32) IL_060F: br => Label28 IL_0614: Label32 IL_0614: ldarg.0 IL_0615: ldfld Cell[] WaterManager::m_waterGrid IL_061A: ldloc.s 45 (System.Int32) IL_061C: ldelema WaterManager+Cell IL_0621: ldobj WaterManager+Cell IL_0626: stloc.s 47 (WaterManager+Cell) IL_0628: ldloca.s 47 (WaterManager+Cell) IL_062A: ldfld System.Byte Cell::m_conductivity IL_062F: brtrue => Label29 IL_0634: ldloca.s 47 (WaterManager+Cell) IL_0636: ldc.i4.0 IL_0637: stfld System.Int16 Cell::m_currentWaterPressure IL_063C: ldloca.s 47 (WaterManager+Cell) IL_063E: ldc.i4.0 IL_063F: stfld System.Int16 Cell::m_currentSewagePressure IL_0644: ldloca.s 47 (WaterManager+Cell) IL_0646: ldc.i4.0 IL_0647: stfld System.Int16 Cell::m_currentHeatingPressure IL_064C: ldloca.s 47 (WaterManager+Cell) IL_064E: ldc.i4 65535 IL_0653: stfld System.UInt16 Cell::m_waterPulseGroup IL_0658: ldloca.s 47 (WaterManager+Cell) IL_065A: ldc.i4 65535 IL_065F: stfld System.UInt16 Cell::m_sewagePulseGroup IL_0664: ldloca.s 47 (WaterManager+Cell) IL_0666: ldc.i4 65535 IL_066B: stfld System.UInt16 Cell::m_heatingPulseGroup IL_0670: ldloca.s 47 (WaterManager+Cell) IL_0672: ldc.i4.0 IL_0673: stfld System.Boolean Cell::m_tmpHasWater IL_0678: ldloca.s 47 (WaterManager+Cell) IL_067A: ldc.i4.0 IL_067B: stfld System.Boolean Cell::m_tmpHasSewage IL_0680: ldloca.s 47 (WaterManager+Cell) IL_0682: ldc.i4.0 IL_0683: stfld System.Boolean Cell::m_tmpHasHeating IL_0688: ldloca.s 47 (WaterManager+Cell) IL_068A: ldc.i4.0 IL_068B: stfld System.Boolean Cell::m_hasWater IL_0690: ldloca.s 47 (WaterManager+Cell) IL_0692: ldc.i4.0 IL_0693: stfld System.Boolean Cell::m_hasSewage IL_0698: ldloca.s 47 (WaterManager+Cell) IL_069A: ldc.i4.0 IL_069B: stfld System.Boolean Cell::m_hasHeating IL_06A0: ldloca.s 47 (WaterManager+Cell) IL_06A2: ldc.i4.0 IL_06A3: stfld System.Byte Cell::m_pollution IL_06A8: ldarg.0 IL_06A9: ldfld Cell[] WaterManager::m_waterGrid IL_06AE: ldloc.s 45 (System.Int32) IL_06B0: ldelema WaterManager+Cell IL_06B5: ldloc.s 47 (WaterManager+Cell) IL_06B7: stobj WaterManager+Cell IL_06BC: br => Label30 IL_06C1: Label29 IL_06C1: ldloca.s 47 (WaterManager+Cell) IL_06C3: ldfld System.Byte Cell::m_conductivity2 IL_06C8: brtrue => Label31 IL_06CD: ldloca.s 47 (WaterManager+Cell) IL_06CF: ldc.i4.0 IL_06D0: stfld System.Int16 Cell::m_currentHeatingPressure IL_06D5: ldloca.s 47 (WaterManager+Cell) IL_06D7: ldc.i4 65535 IL_06DC: stfld System.UInt16 Cell::m_heatingPulseGroup IL_06E1: ldloca.s 47 (WaterManager+Cell) IL_06E3: ldc.i4.0 IL_06E4: stfld System.Boolean Cell::m_tmpHasHeating IL_06E9: ldloca.s 47 (WaterManager+Cell) IL_06EB: ldc.i4.0 IL_06EC: stfld System.Boolean Cell::m_hasHeating IL_06F1: ldarg.0 IL_06F2: ldfld Cell[] WaterManager::m_waterGrid IL_06F7: ldloc.s 45 (System.Int32) IL_06F9: ldelema WaterManager+Cell IL_06FE: ldloc.s 47 (WaterManager+Cell) IL_0700: stobj WaterManager+Cell IL_0705: Label30 IL_0705: Label31 IL_0705: ldloc.s 45 (System.Int32) IL_0707: ldc.i4.1 IL_0708: add IL_0709: stloc.s 45 (System.Int32) IL_070B: ldloc.s 46 (System.Int32) IL_070D: ldc.i4.1 IL_070E: add IL_070F: stloc.s 46 (System.Int32) IL_0711: Label28 IL_0711: ldloc.s 46 (System.Int32) IL_0713: ldloc.2 IL_0714: ble => Label32 IL_0719: ldloc.s 44 (System.Int32) IL_071B: ldc.i4.1 IL_071C: add IL_071D: stloc.s 44 (System.Int32) IL_071F: Label27 IL_071F: ldloc.s 44 (System.Int32) IL_0721: ldloc.3 IL_0722: ble => Label33 IL_0727: ldarg.0 IL_0728: ldloc.0 IL_0729: ldloc.1 IL_072A: ldloc.2 IL_072B: ldloc.3 IL_072C: call System.Void WaterManager::AreaModified(System.Int32 minX, System.Int32 minZ, System.Int32 maxX, System.Int32 maxZ) IL_0731: // end original IL_0731: Label0 IL_0731: ret DONE ### Patch: System.Void WaterManager::UpdateTexture() ### Replacement: static System.Void WaterManager::WaterManager.UpdateTexture_Patch0(WaterManager this) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: System.Int32 IL_0000: Local var 2: System.Int32 IL_0000: Local var 3: System.Int32 IL_0000: Local var 4: NetManager IL_0000: Local var 5: System.Int32 IL_0000: Local var 6: System.Int32 IL_0000: Local var 7: WaterManager/Cell IL_0000: Local var 8: System.UInt16 IL_0000: Local var 9: UnityEngine.Color IL_0000: Local var 10: System.UInt16 IL_0000: Local var 11: System.UInt16 IL_0000: Local var 12: UnityEngine.Vector3 IL_0000: Local var 13: UnityEngine.Vector3 IL_0000: Local var 14: System.Int32 IL_0000: Local var 15: System.Int32 IL_0000: Local var 16: System.Int32 IL_0000: Local var 17: System.Int32 IL_0000: // start original IL_0000: br => Label0 IL_0005: Label0 IL_0005: Label1 IL_0005: ldarg.0 IL_0006: ldfld Cell[] WaterManager::m_waterGrid IL_000B: ldsfld System.Int32 SimulationManager::SYNCHRONIZE_TIMEOUT IL_0010: call static System.Boolean System.Threading.Monitor::TryEnter(System.Object obj, System.Int32 millisecondsTimeout) IL_0015: brfalse => Label1 .try { IL_001A: ldarg.0 IL_001B: ldfld System.Int32 WaterManager::m_modifiedX1 IL_0020: stloc.0 IL_0021: ldarg.0 IL_0022: ldfld System.Int32 WaterManager::m_modifiedZ1 IL_0027: stloc.1 IL_0028: ldarg.0 IL_0029: ldfld System.Int32 WaterManager::m_modifiedX2 IL_002E: stloc.2 IL_002F: ldarg.0 IL_0030: ldfld System.Int32 WaterManager::m_modifiedZ2 IL_0035: stloc.3 IL_0036: ldarg.0 IL_0037: ldc.i4 10000 IL_003C: stfld System.Int32 WaterManager::m_modifiedX1 IL_0041: ldarg.0 IL_0042: ldc.i4 10000 IL_0047: stfld System.Int32 WaterManager::m_modifiedZ1 IL_004C: ldarg.0 IL_004D: ldc.i4 -10000 IL_0052: stfld System.Int32 WaterManager::m_modifiedX2 IL_0057: ldarg.0 IL_0058: ldc.i4 -10000 IL_005D: stfld System.Int32 WaterManager::m_modifiedZ2 IL_0062: leave => Label2 IL_0067: leave => (autogenerated) } // end try .finally { IL_006C: ldarg.0 IL_006D: ldfld Cell[] WaterManager::m_waterGrid IL_0072: call static System.Void System.Threading.Monitor::Exit(System.Object obj) IL_0077: endfinally IL_0078: leave => (autogenerated) } // end handler IL_0079: Label2 IL_0079: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_007E: stloc.s 4 (NetManager) IL_0080: ldloc.1 IL_0081: stloc.s 5 (System.Int32) IL_0083: br => Label3 IL_0088: Label14 IL_0088: ldloc.0 IL_0089: stloc.s 6 (System.Int32) IL_008B: br => Label4 IL_0090: Label13 IL_0090: ldarg.0 IL_0091: ldfld Cell[] WaterManager::m_waterGrid IL_0096: ldloc.s 5 (System.Int32) IL_0098: ldc.i4 462 IL_009D: mul IL_009E: ldloc.s 6 (System.Int32) IL_00A0: add IL_00A1: ldelema WaterManager+Cell IL_00A6: ldobj WaterManager+Cell IL_00AB: stloc.s 7 (WaterManager+Cell) IL_00AD: ldarg.0 IL_00AE: ldfld System.Boolean WaterManager::m_waterMapVisible IL_00B3: brfalse => Label5 IL_00B8: ldloca.s 7 (WaterManager+Cell) IL_00BA: ldfld System.UInt16 Cell::m_closestPipeSegment IL_00BF: br => Label6 IL_00C4: Label5 IL_00C4: ldloca.s 7 (WaterManager+Cell) IL_00C6: ldfld System.UInt16 Cell::m_closestPipeSegment2 IL_00CB: Label6 IL_00CB: stloc.s 8 (System.UInt16) IL_00CD: ldloc.s 8 (System.UInt16) IL_00CF: brfalse => Label7 IL_00D4: ldloc.s 6 (System.Int32) IL_00D6: brfalse => Label8 IL_00DB: ldloc.s 5 (System.Int32) IL_00DD: brfalse => Label9 IL_00E2: ldloc.s 6 (System.Int32) IL_00E4: ldc.i4 461 IL_00E9: beq => Label10 IL_00EE: ldloc.s 5 (System.Int32) IL_00F0: ldc.i4 461 IL_00F5: beq => Label11 IL_00FA: ldloc.s 4 (NetManager) IL_00FC: ldfld Array16`1 NetManager::m_segments IL_0101: ldfld NetSegment[] Array16`1::m_buffer IL_0106: ldloc.s 8 (System.UInt16) IL_0108: ldelema NetSegment IL_010D: ldfld System.UInt16 NetSegment::m_startNode IL_0112: stloc.s 10 (System.UInt16) IL_0114: ldloc.s 4 (NetManager) IL_0116: ldfld Array16`1 NetManager::m_segments IL_011B: ldfld NetSegment[] Array16`1::m_buffer IL_0120: ldloc.s 8 (System.UInt16) IL_0122: ldelema NetSegment IL_0127: ldfld System.UInt16 NetSegment::m_endNode IL_012C: stloc.s 11 (System.UInt16) IL_012E: ldloc.s 4 (NetManager) IL_0130: ldfld Array16`1 NetManager::m_nodes IL_0135: ldfld NetNode[] Array16`1::m_buffer IL_013A: ldloc.s 10 (System.UInt16) IL_013C: ldelema NetNode IL_0141: ldfld UnityEngine.Vector3 NetNode::m_position IL_0146: stloc.s 12 (UnityEngine.Vector3) IL_0148: ldloc.s 4 (NetManager) IL_014A: ldfld Array16`1 NetManager::m_nodes IL_014F: ldfld NetNode[] Array16`1::m_buffer IL_0154: ldloc.s 11 (System.UInt16) IL_0156: ldelema NetNode IL_015B: ldfld UnityEngine.Vector3 NetNode::m_position IL_0160: stloc.s 13 (UnityEngine.Vector3) IL_0162: ldloca.s 12 (UnityEngine.Vector3) IL_0164: ldfld System.Single UnityEngine.Vector3::x IL_0169: ldc.r4 0.4183007 IL_016E: mul IL_016F: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_0174: ldc.i4 3696 IL_0179: add IL_017A: stloc.s 14 (System.Int32) IL_017C: ldloca.s 12 (UnityEngine.Vector3) IL_017E: ldfld System.Single UnityEngine.Vector3::z IL_0183: ldc.r4 0.4183007 IL_0188: mul IL_0189: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_018E: ldc.i4 3696 IL_0193: add IL_0194: stloc.s 15 (System.Int32) IL_0196: ldloca.s 13 (UnityEngine.Vector3) IL_0198: ldfld System.Single UnityEngine.Vector3::x IL_019D: ldc.r4 0.4183007 IL_01A2: mul IL_01A3: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_01A8: ldc.i4 3696 IL_01AD: add IL_01AE: stloc.s 16 (System.Int32) IL_01B0: ldloca.s 13 (UnityEngine.Vector3) IL_01B2: ldfld System.Single UnityEngine.Vector3::z IL_01B7: ldc.r4 0.4183007 IL_01BC: mul IL_01BD: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_01C2: ldc.i4 3696 IL_01C7: add IL_01C8: stloc.s 17 (System.Int32) IL_01CA: ldloca.s 9 (UnityEngine.Color) IL_01CC: ldloc.s 6 (System.Int32) IL_01CE: ldc.i4.s 16 IL_01D0: mul IL_01D1: ldc.i4.8 IL_01D2: add IL_01D3: ldloc.s 14 (System.Int32) IL_01D5: sub IL_01D6: ldc.i4 128 IL_01DB: add IL_01DC: conv.r4 IL_01DD: ldc.r4 0.003921569 IL_01E2: mul IL_01E3: stfld System.Single UnityEngine.Color::r IL_01E8: ldloca.s 9 (UnityEngine.Color) IL_01EA: ldloc.s 5 (System.Int32) IL_01EC: ldc.i4.s 16 IL_01EE: mul IL_01EF: ldc.i4.8 IL_01F0: add IL_01F1: ldloc.s 15 (System.Int32) IL_01F3: sub IL_01F4: ldc.i4 128 IL_01F9: add IL_01FA: conv.r4 IL_01FB: ldc.r4 0.003921569 IL_0200: mul IL_0201: stfld System.Single UnityEngine.Color::g IL_0206: ldloca.s 9 (UnityEngine.Color) IL_0208: ldloc.s 6 (System.Int32) IL_020A: ldc.i4.s 16 IL_020C: mul IL_020D: ldc.i4.8 IL_020E: add IL_020F: ldloc.s 16 (System.Int32) IL_0211: sub IL_0212: ldc.i4 128 IL_0217: add IL_0218: conv.r4 IL_0219: ldc.r4 0.003921569 IL_021E: mul IL_021F: stfld System.Single UnityEngine.Color::b IL_0224: ldloca.s 9 (UnityEngine.Color) IL_0226: ldloc.s 5 (System.Int32) IL_0228: ldc.i4.s 16 IL_022A: mul IL_022B: ldc.i4.8 IL_022C: add IL_022D: ldloc.s 17 (System.Int32) IL_022F: sub IL_0230: ldc.i4 128 IL_0235: add IL_0236: conv.r4 IL_0237: ldc.r4 0.003921569 IL_023C: mul IL_023D: stfld System.Single UnityEngine.Color::a IL_0242: br => Label12 IL_0247: Label7 IL_0247: Label8 IL_0247: Label9 IL_0247: Label10 IL_0247: Label11 IL_0247: ldloca.s 9 (UnityEngine.Color) IL_0249: ldc.r4 0 IL_024E: stfld System.Single UnityEngine.Color::r IL_0253: ldloca.s 9 (UnityEngine.Color) IL_0255: ldc.r4 0 IL_025A: stfld System.Single UnityEngine.Color::g IL_025F: ldloca.s 9 (UnityEngine.Color) IL_0261: ldc.r4 0 IL_0266: stfld System.Single UnityEngine.Color::b IL_026B: ldloca.s 9 (UnityEngine.Color) IL_026D: ldc.r4 0 IL_0272: stfld System.Single UnityEngine.Color::a IL_0277: Label12 IL_0277: ldarg.0 IL_0278: ldfld UnityEngine.Texture2D WaterManager::m_waterTexture IL_027D: ldloc.s 6 (System.Int32) IL_027F: ldloc.s 5 (System.Int32) IL_0281: ldloc.s 9 (UnityEngine.Color) IL_0283: callvirt System.Void UnityEngine.Texture2D::SetPixel(System.Int32 x, System.Int32 y, UnityEngine.Color color) IL_0288: ldloc.s 6 (System.Int32) IL_028A: ldc.i4.1 IL_028B: add IL_028C: stloc.s 6 (System.Int32) IL_028E: Label4 IL_028E: ldloc.s 6 (System.Int32) IL_0290: ldloc.2 IL_0291: ble => Label13 IL_0296: ldloc.s 5 (System.Int32) IL_0298: ldc.i4.1 IL_0299: add IL_029A: stloc.s 5 (System.Int32) IL_029C: Label3 IL_029C: ldloc.s 5 (System.Int32) IL_029E: ldloc.3 IL_029F: ble => Label14 IL_02A4: ldarg.0 IL_02A5: ldfld UnityEngine.Texture2D WaterManager::m_waterTexture IL_02AA: callvirt System.Void UnityEngine.Texture2D::Apply() IL_02AF: // end original IL_02AF: ret DONE ### Patch: System.Void WaterManager::UpdateWaterMapping() ### Replacement: static System.Void WaterManager::WaterManager.UpdateWaterMapping_Patch0(WaterManager this) IL_0000: Local var 0: UnityEngine.Vector4 IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldfld UnityEngine.Camera WaterManager::m_undergroundCamera IL_0006: ldnull IL_0007: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_000C: brfalse => Label0 IL_0011: ldarg.0 IL_0012: ldfld System.Boolean WaterManager::m_waterMapVisible IL_0017: brtrue => Label1 IL_001C: ldarg.0 IL_001D: ldfld System.Boolean WaterManager::m_heatingMapVisible IL_0022: brfalse => Label2 IL_0027: Label1 IL_0027: ldarg.0 IL_0028: ldfld UnityEngine.Camera WaterManager::m_undergroundCamera IL_002D: dup IL_002E: callvirt System.Int32 UnityEngine.Camera::get_cullingMask() IL_0033: ldc.i4.1 IL_0034: ldstr "WaterPipes" IL_0039: call static System.Int32 UnityEngine.LayerMask::NameToLayer(System.String layerName) IL_003E: ldc.i4.s 31 IL_0040: and IL_0041: shl IL_0042: or IL_0043: callvirt System.Void UnityEngine.Camera::set_cullingMask(System.Int32 value) IL_0048: br => Label3 IL_004D: Label2 IL_004D: ldarg.0 IL_004E: ldfld UnityEngine.Camera WaterManager::m_undergroundCamera IL_0053: dup IL_0054: callvirt System.Int32 UnityEngine.Camera::get_cullingMask() IL_0059: ldc.i4.1 IL_005A: ldstr "WaterPipes" IL_005F: call static System.Int32 UnityEngine.LayerMask::NameToLayer(System.String layerName) IL_0064: ldc.i4.s 31 IL_0066: and IL_0067: shl IL_0068: not IL_0069: and IL_006A: callvirt System.Void UnityEngine.Camera::set_cullingMask(System.Int32 value) IL_006F: Label0 IL_006F: Label3 IL_006F: ldloca.s 0 (UnityEngine.Vector4) IL_0071: ldc.r4 5.658829E-05 IL_0076: stfld System.Single UnityEngine.Vector4::z IL_007B: ldloca.s 0 (UnityEngine.Vector4) IL_007D: ldc.r4 0.5 IL_0082: stfld System.Single UnityEngine.Vector4::x IL_0087: ldloca.s 0 (UnityEngine.Vector4) IL_0089: ldc.r4 0.5 IL_008E: stfld System.Single UnityEngine.Vector4::y IL_0093: ldloca.s 0 (UnityEngine.Vector4) IL_0095: ldc.r4 0.002164502 IL_009A: stfld System.Single UnityEngine.Vector4::w IL_009F: ldstr "_WaterMapping" IL_00A4: ldloc.0 IL_00A5: call static System.Void UnityEngine.Shader::SetGlobalVector(System.String name, UnityEngine.Vector4 value) IL_00AA: // end original IL_00AA: ret DONE ### Patch: virtual System.Void WaterPipeAI::UpdateNode(System.UInt16 nodeID, NetNode& data) ### Replacement: static System.Void WaterPipeAI::WaterPipeAI.UpdateNode_Patch0(WaterPipeAI this, System.UInt16 nodeID, NetNode& data) IL_0000: Local var 0: System.UInt16 IL_0000: Local var 1: BuildingManager IL_0000: Local var 2: BuildingInfo IL_0000: Local var 3: Notification/ProblemStruct IL_0000: Local var 4: Notification/ProblemStruct IL_0000: Local var 5: System.Boolean IL_0000: Local var 6: System.Int32 IL_0000: Local var 7: System.UInt16 IL_0000: Local var 8: NetInfo IL_0000: Local var 9: System.UInt16 IL_0000: Local var 10: BuildingManager IL_0000: Local var 11: System.Boolean IL_0000: Local var 12: System.Int32 IL_0000: Local var 13: System.Int32 IL_0000: Local var 14: System.Int32 IL_0000: Local var 15: System.Single IL_0000: Local var 16: System.Single IL_0000: Local var 17: System.Single IL_0000: Local var 18: System.Single IL_0000: // start original IL_0000: ldarg.2 IL_0001: ldfld Flags NetNode::m_flags IL_0006: ldc.i4 512 IL_000B: and IL_000C: brfalse => Label0 IL_0011: ldarg.1 IL_0012: ldc.r4 64 IL_0017: call static System.UInt16 NetNode::FindOwnerBuilding(System.UInt16 nodeID, System.Single maxDistance) IL_001C: stloc.0 IL_001D: ldloc.0 IL_001E: brfalse => Label1 IL_0023: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0028: stloc.1 IL_0029: ldloc.1 IL_002A: ldfld Array16`1 BuildingManager::m_buildings IL_002F: ldfld Building[] Array16`1::m_buffer IL_0034: ldloc.0 IL_0035: ldelema Building IL_003A: call BuildingInfo Building::get_Info() IL_003F: stloc.2 IL_0040: ldloc.1 IL_0041: ldfld Array16`1 BuildingManager::m_buildings IL_0046: ldfld Building[] Array16`1::m_buffer IL_004B: ldloc.0 IL_004C: ldelema Building IL_0051: ldfld ProblemStruct Building::m_problems IL_0056: stloc.3 IL_0057: ldsfld System.Boolean EightyOne2.Patches.NoPipesPatches::s_noPipesEnabled IL_005C: stloc.s 5 (System.Boolean) IL_005E: ldc.i4.0 IL_005F: stloc.s 6 (System.Int32) IL_0061: br => Label2 IL_0066: Label8 IL_0066: ldarg.2 IL_0067: ldloc.s 6 (System.Int32) IL_0069: call System.UInt16 NetNode::GetSegment(System.Int32 index) IL_006E: stloc.s 7 (System.UInt16) IL_0070: ldloc.s 7 (System.UInt16) IL_0072: brfalse => Label3 IL_0077: ldloc.2 IL_0078: ldfld ItemClass BuildingInfo::m_class IL_007D: ldfld Level ItemClass::m_level IL_0082: ldc.i4.1 IL_0083: bne.un => Label4 IL_0088: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_008D: ldfld Array16`1 NetManager::m_segments IL_0092: ldfld NetSegment[] Array16`1::m_buffer IL_0097: ldloc.s 7 (System.UInt16) IL_0099: ldelema NetSegment IL_009E: call NetInfo NetSegment::get_Info() IL_00A3: stloc.s 8 (NetInfo) IL_00A5: ldloc.s 8 (NetInfo) IL_00A7: ldfld ItemClass NetInfo::m_class IL_00AC: ldfld Level ItemClass::m_level IL_00B1: ldc.i4.1 IL_00B2: bne.un => Label5 IL_00B7: ldc.i4.1 IL_00B8: stloc.s 5 (System.Boolean) IL_00BA: Label5 IL_00BA: br => Label6 IL_00BF: Label4 IL_00BF: ldc.i4.1 IL_00C0: stloc.s 5 (System.Boolean) IL_00C2: Label3 IL_00C2: Label6 IL_00C2: ldloc.s 6 (System.Int32) IL_00C4: ldc.i4.1 IL_00C5: add IL_00C6: stloc.s 6 (System.Int32) IL_00C8: Label2 IL_00C8: ldloc.s 6 (System.Int32) IL_00CA: ldc.i4.8 IL_00CB: bge => Label7 IL_00D0: ldloc.s 5 (System.Boolean) IL_00D2: brfalse => Label8 IL_00D7: Label7 IL_00D7: ldloc.s 5 (System.Boolean) IL_00D9: brfalse => Label9 IL_00DE: ldloc.3 IL_00DF: ldc.i4 -2147475456 IL_00E4: conv.u8 IL_00E5: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_00EA: call static ProblemStruct Notification::RemoveProblems(ProblemStruct problems1, ProblemStruct problems2) IL_00EF: stloc.s 4 (Notification+ProblemStruct) IL_00F1: br => Label10 IL_00F6: Label9 IL_00F6: ldloc.2 IL_00F7: ldfld ItemClass BuildingInfo::m_class IL_00FC: ldfld Level ItemClass::m_level IL_0101: ldc.i4.1 IL_0102: bne.un => Label11 IL_0107: ldloc.3 IL_0108: ldc.i4 -2147483648 IL_010D: conv.u8 IL_010E: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0113: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0118: stloc.s 4 (Notification+ProblemStruct) IL_011A: br => Label12 IL_011F: Label11 IL_011F: ldloc.3 IL_0120: ldc.i4 8192 IL_0125: conv.i8 IL_0126: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_012B: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0130: stloc.s 4 (Notification+ProblemStruct) IL_0132: Label10 IL_0132: Label12 IL_0132: ldloc.s 4 (Notification+ProblemStruct) IL_0134: ldloc.3 IL_0135: call static System.Boolean ProblemStruct::op_Inequality(ProblemStruct a, ProblemStruct b) IL_013A: brfalse => Label13 IL_013F: ldloc.1 IL_0140: ldfld Array16`1 BuildingManager::m_buildings IL_0145: ldfld Building[] Array16`1::m_buffer IL_014A: ldloc.0 IL_014B: ldelema Building IL_0150: ldloc.s 4 (Notification+ProblemStruct) IL_0152: stfld ProblemStruct Building::m_problems IL_0157: ldloc.1 IL_0158: ldloc.0 IL_0159: ldloc.3 IL_015A: ldloc.s 4 (Notification+ProblemStruct) IL_015C: callvirt System.Void BuildingManager::UpdateNotifications(System.UInt16 building, ProblemStruct oldProblems, ProblemStruct newProblems) IL_0161: Label1 IL_0161: Label13 IL_0161: ldarg.2 IL_0162: ldarg.2 IL_0163: ldfld ProblemStruct NetNode::m_problems IL_0168: ldc.i4 8192 IL_016D: conv.i8 IL_016E: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0173: call static ProblemStruct Notification::RemoveProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0178: stfld ProblemStruct NetNode::m_problems IL_017D: Label0 IL_017D: ldarg.2 IL_017E: ldfld System.UInt16 NetNode::m_building IL_0183: stloc.s 9 (System.UInt16) IL_0185: ldloc.s 9 (System.UInt16) IL_0187: brfalse => Label14 IL_018C: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0191: stloc.s 10 (BuildingManager) IL_0193: ldc.i4.0 IL_0194: stloc.s 11 (System.Boolean) IL_0196: ldarg.2 IL_0197: ldfld Flags NetNode::m_flags IL_019C: ldc.i4 65536 IL_01A1: and IL_01A2: brfalse => Label15 IL_01A7: ldc.i4.1 IL_01A8: br => Label16 IL_01AD: Label15 IL_01AD: ldc.i4.0 IL_01AE: Label16 IL_01AE: stloc.s 12 (System.Int32) IL_01B0: ldarg.2 IL_01B1: ldfld Flags NetNode::m_flags IL_01B6: ldc.i4 131072 IL_01BB: and IL_01BC: brfalse => Label17 IL_01C1: ldc.i4.1 IL_01C2: br => Label18 IL_01C7: Label17 IL_01C7: ldc.i4.0 IL_01C8: Label18 IL_01C8: stloc.s 13 (System.Int32) IL_01CA: ldarg.2 IL_01CB: ldfld Flags NetNode::m_flags IL_01D0: ldc.i4 33554432 IL_01D5: and IL_01D6: brfalse => Label19 IL_01DB: ldc.i4.1 IL_01DC: br => Label20 IL_01E1: Label19 IL_01E1: ldc.i4.0 IL_01E2: Label20 IL_01E2: stloc.s 14 (System.Int32) IL_01E4: ldloc.s 10 (BuildingManager) IL_01E6: ldfld Array16`1 BuildingManager::m_buildings IL_01EB: ldfld Building[] Array16`1::m_buffer IL_01F0: ldloc.s 9 (System.UInt16) IL_01F2: ldelema Building IL_01F7: ldfld System.UInt16 Building::m_waterBuffer IL_01FC: ldloc.s 12 (System.Int32) IL_01FE: beq => Label21 IL_0203: ldloc.s 10 (BuildingManager) IL_0205: ldfld Array16`1 BuildingManager::m_buildings IL_020A: ldfld Building[] Array16`1::m_buffer IL_020F: ldloc.s 9 (System.UInt16) IL_0211: ldelema Building IL_0216: ldloc.s 12 (System.Int32) IL_0218: conv.u2 IL_0219: stfld System.UInt16 Building::m_waterBuffer IL_021E: ldc.i4.1 IL_021F: stloc.s 11 (System.Boolean) IL_0221: Label21 IL_0221: ldloc.s 10 (BuildingManager) IL_0223: ldfld Array16`1 BuildingManager::m_buildings IL_0228: ldfld Building[] Array16`1::m_buffer IL_022D: ldloc.s 9 (System.UInt16) IL_022F: ldelema Building IL_0234: ldfld System.UInt16 Building::m_sewageBuffer IL_0239: ldloc.s 13 (System.Int32) IL_023B: beq => Label22 IL_0240: ldloc.s 10 (BuildingManager) IL_0242: ldfld Array16`1 BuildingManager::m_buildings IL_0247: ldfld Building[] Array16`1::m_buffer IL_024C: ldloc.s 9 (System.UInt16) IL_024E: ldelema Building IL_0253: ldloc.s 13 (System.Int32) IL_0255: conv.u2 IL_0256: stfld System.UInt16 Building::m_sewageBuffer IL_025B: ldc.i4.1 IL_025C: stloc.s 11 (System.Boolean) IL_025E: Label22 IL_025E: ldloc.s 10 (BuildingManager) IL_0260: ldfld Array16`1 BuildingManager::m_buildings IL_0265: ldfld Building[] Array16`1::m_buffer IL_026A: ldloc.s 9 (System.UInt16) IL_026C: ldelema Building IL_0271: ldfld System.UInt16 Building::m_heatingBuffer IL_0276: ldloc.s 14 (System.Int32) IL_0278: beq => Label23 IL_027D: ldloc.s 10 (BuildingManager) IL_027F: ldfld Array16`1 BuildingManager::m_buildings IL_0284: ldfld Building[] Array16`1::m_buffer IL_0289: ldloc.s 9 (System.UInt16) IL_028B: ldelema Building IL_0290: ldloc.s 14 (System.Int32) IL_0292: conv.u2 IL_0293: stfld System.UInt16 Building::m_heatingBuffer IL_0298: ldc.i4.1 IL_0299: stloc.s 11 (System.Boolean) IL_029B: Label23 IL_029B: ldloc.s 11 (System.Boolean) IL_029D: brfalse => Label24 IL_02A2: ldloc.s 10 (BuildingManager) IL_02A4: ldloc.s 9 (System.UInt16) IL_02A6: callvirt System.Void BuildingManager::UpdateBuildingColors(System.UInt16 building) IL_02AB: Label14 IL_02AB: Label24 IL_02AB: ldarg.2 IL_02AC: ldflda UnityEngine.Vector3 NetNode::m_position IL_02B1: ldfld System.Single UnityEngine.Vector3::x IL_02B6: ldc.r4 100 IL_02BB: sub IL_02BC: stloc.s 15 (System.Single) IL_02BE: ldarg.2 IL_02BF: ldflda UnityEngine.Vector3 NetNode::m_position IL_02C4: ldfld System.Single UnityEngine.Vector3::x IL_02C9: ldc.r4 100 IL_02CE: add IL_02CF: stloc.s 16 (System.Single) IL_02D1: ldarg.2 IL_02D2: ldflda UnityEngine.Vector3 NetNode::m_position IL_02D7: ldfld System.Single UnityEngine.Vector3::z IL_02DC: ldc.r4 100 IL_02E1: sub IL_02E2: stloc.s 17 (System.Single) IL_02E4: ldarg.2 IL_02E5: ldflda UnityEngine.Vector3 NetNode::m_position IL_02EA: ldfld System.Single UnityEngine.Vector3::z IL_02EF: ldc.r4 100 IL_02F4: add IL_02F5: stloc.s 18 (System.Single) IL_02F7: call static WaterManager ColossalFramework.Singleton`1::get_instance() IL_02FC: ldloc.s 15 (System.Single) IL_02FE: ldloc.s 17 (System.Single) IL_0300: ldloc.s 16 (System.Single) IL_0302: ldloc.s 18 (System.Single) IL_0304: callvirt System.Void WaterManager::UpdateGrid(System.Single minX, System.Single minZ, System.Single maxX, System.Single maxZ) IL_0309: // end original IL_0309: ret DONE ### Patch: System.Void ZoneBlock::CalculateBlock2(System.UInt16 blockID) ### Replacement: static System.Void ZoneBlock::ZoneBlock.CalculateBlock2_Patch0(ZoneBlock& this, System.UInt16 blockID) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: UnityEngine.Vector2 IL_0000: Local var 2: UnityEngine.Vector2 IL_0000: Local var 3: UnityEngine.Vector2 IL_0000: Local var 4: UnityEngine.Vector2 IL_0000: Local var 5: UnityEngine.Vector2 IL_0000: Local var 6: UnityEngine.Vector2 IL_0000: Local var 7: UnityEngine.Vector2 IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Single IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.UInt64 IL_0000: Local var 13: System.UInt64 IL_0000: Local var 14: ZoneManager IL_0000: Local var 15: System.Int32 IL_0000: Local var 16: System.Int32 IL_0000: Local var 17: System.Int32 IL_0000: Local var 18: System.Int32 IL_0000: Local var 19: System.Int32 IL_0000: Local var 20: System.Int32 IL_0000: Local var 21: System.Int32 IL_0000: Local var 22: System.UInt16 IL_0000: Local var 23: System.Int32 IL_0000: Local var 24: UnityEngine.Vector3 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.UInt64 IL_0000: Local var 27: System.Int32 IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldfld System.UInt32 ZoneBlock::m_flags IL_0006: ldc.i4.3 IL_0007: and IL_0008: ldc.i4.1 IL_0009: beq => Label0 IL_000E: br => Label15 IL_0013: Label0 IL_0013: ldarg.0 IL_0014: call System.Int32 ZoneBlock::get_RowCount() IL_0019: stloc.0 IL_001A: ldarg.0 IL_001B: ldfld System.Single ZoneBlock::m_angle IL_0020: call static System.Single UnityEngine.Mathf::Cos(System.Single f) IL_0025: ldarg.0 IL_0026: ldfld System.Single ZoneBlock::m_angle IL_002B: call static System.Single UnityEngine.Mathf::Sin(System.Single f) IL_0030: newobj System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_0035: ldc.r4 8 IL_003A: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(UnityEngine.Vector2 a, System.Single d) IL_003F: stloc.1 IL_0040: ldloca.s 2 (UnityEngine.Vector2) IL_0042: ldloca.s 1 (UnityEngine.Vector2) IL_0044: ldfld System.Single UnityEngine.Vector2::y IL_0049: ldloca.s 1 (UnityEngine.Vector2) IL_004B: ldfld System.Single UnityEngine.Vector2::x IL_0050: neg IL_0051: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_0056: ldarg.0 IL_0057: ldfld UnityEngine.Vector3 ZoneBlock::m_position IL_005C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0061: stloc.3 IL_0062: ldloc.3 IL_0063: ldc.r4 4 IL_0068: ldloc.1 IL_0069: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_006E: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Subtraction(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_0073: ldc.r4 4 IL_0078: ldloc.2 IL_0079: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_007E: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Subtraction(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_0083: stloc.s 4 (UnityEngine.Vector2) IL_0085: ldloc.3 IL_0086: ldc.r4 0 IL_008B: ldloc.1 IL_008C: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_0091: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Addition(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_0096: ldc.r4 4 IL_009B: ldloc.2 IL_009C: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_00A1: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Subtraction(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_00A6: stloc.s 5 (UnityEngine.Vector2) IL_00A8: ldloc.3 IL_00A9: ldc.r4 0 IL_00AE: ldloc.1 IL_00AF: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_00B4: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Addition(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_00B9: ldloc.0 IL_00BA: ldc.i4.4 IL_00BB: sub IL_00BC: conv.r4 IL_00BD: ldloc.2 IL_00BE: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_00C3: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Addition(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_00C8: stloc.s 6 (UnityEngine.Vector2) IL_00CA: ldloc.3 IL_00CB: ldc.r4 4 IL_00D0: ldloc.1 IL_00D1: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_00D6: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Subtraction(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_00DB: ldloc.0 IL_00DC: ldc.i4.4 IL_00DD: sub IL_00DE: conv.r4 IL_00DF: ldloc.2 IL_00E0: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_00E5: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Addition(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_00EA: stloc.s 7 (UnityEngine.Vector2) IL_00EC: ldloca.s 4 (UnityEngine.Vector2) IL_00EE: ldfld System.Single UnityEngine.Vector2::x IL_00F3: ldloca.s 5 (UnityEngine.Vector2) IL_00F5: ldfld System.Single UnityEngine.Vector2::x IL_00FA: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_00FF: ldloca.s 6 (UnityEngine.Vector2) IL_0101: ldfld System.Single UnityEngine.Vector2::x IL_0106: ldloca.s 7 (UnityEngine.Vector2) IL_0108: ldfld System.Single UnityEngine.Vector2::x IL_010D: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0112: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0117: stloc.s 8 (System.Single) IL_0119: ldloca.s 4 (UnityEngine.Vector2) IL_011B: ldfld System.Single UnityEngine.Vector2::y IL_0120: ldloca.s 5 (UnityEngine.Vector2) IL_0122: ldfld System.Single UnityEngine.Vector2::y IL_0127: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_012C: ldloca.s 6 (UnityEngine.Vector2) IL_012E: ldfld System.Single UnityEngine.Vector2::y IL_0133: ldloca.s 7 (UnityEngine.Vector2) IL_0135: ldfld System.Single UnityEngine.Vector2::y IL_013A: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_013F: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0144: stloc.s 9 (System.Single) IL_0146: ldloca.s 4 (UnityEngine.Vector2) IL_0148: ldfld System.Single UnityEngine.Vector2::x IL_014D: ldloca.s 5 (UnityEngine.Vector2) IL_014F: ldfld System.Single UnityEngine.Vector2::x IL_0154: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0159: ldloca.s 6 (UnityEngine.Vector2) IL_015B: ldfld System.Single UnityEngine.Vector2::x IL_0160: ldloca.s 7 (UnityEngine.Vector2) IL_0162: ldfld System.Single UnityEngine.Vector2::x IL_0167: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_016C: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0171: stloc.s 10 (System.Single) IL_0173: ldloca.s 4 (UnityEngine.Vector2) IL_0175: ldfld System.Single UnityEngine.Vector2::y IL_017A: ldloca.s 5 (UnityEngine.Vector2) IL_017C: ldfld System.Single UnityEngine.Vector2::y IL_0181: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0186: ldloca.s 6 (UnityEngine.Vector2) IL_0188: ldfld System.Single UnityEngine.Vector2::y IL_018D: ldloca.s 7 (UnityEngine.Vector2) IL_018F: ldfld System.Single UnityEngine.Vector2::y IL_0194: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0199: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_019E: stloc.s 11 (System.Single) IL_01A0: ldarg.0 IL_01A1: ldfld System.UInt64 ZoneBlock::m_valid IL_01A6: stloc.s 12 (System.UInt64) IL_01A8: ldc.i4.0 IL_01A9: conv.i8 IL_01AA: stloc.s 13 (System.UInt64) IL_01AC: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_01B1: stloc.s 14 (ZoneManager) IL_01B3: ldc.i4.0 IL_01B4: stloc.s 15 (System.Int32) IL_01B6: br => Label1 IL_01BB: Label2 IL_01BB: ldarg.0 IL_01BC: ldarg.1 IL_01BD: ldloc.s 14 (ZoneManager) IL_01BF: ldfld FastList`1 ZoneManager::m_cachedBlocks IL_01C4: ldfld ZoneBlock[] FastList`1::m_buffer IL_01C9: ldloc.s 15 (System.Int32) IL_01CB: ldelema ZoneBlock IL_01D0: ldloca.s 12 (System.UInt64) IL_01D2: ldloca.s 13 (System.UInt64) IL_01D4: ldloc.s 8 (System.Single) IL_01D6: ldloc.s 9 (System.Single) IL_01D8: ldloc.s 10 (System.Single) IL_01DA: ldloc.s 11 (System.Single) IL_01DC: call System.Void ZoneBlock::CalculateImplementation2(System.UInt16 blockID, ZoneBlock& other, System.UInt64& valid, System.UInt64& shared, System.Single minX, System.Single minZ, System.Single maxX, System.Single maxZ) IL_01E1: ldloc.s 15 (System.Int32) IL_01E3: ldc.i4.1 IL_01E4: add IL_01E5: stloc.s 15 (System.Int32) IL_01E7: Label1 IL_01E7: ldloc.s 15 (System.Int32) IL_01E9: ldloc.s 14 (ZoneManager) IL_01EB: ldfld FastList`1 ZoneManager::m_cachedBlocks IL_01F0: ldfld System.Int32 FastList`1::m_size IL_01F5: blt => Label2 IL_01FA: ldloc.s 8 (System.Single) IL_01FC: ldc.r4 46 IL_0201: sub IL_0202: ldc.r4 64 IL_0207: div IL_0208: ldc.r4 135 IL_020D: add IL_020E: conv.i4 IL_020F: ldc.i4.0 IL_0210: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0215: stloc.s 16 (System.Int32) IL_0217: ldloc.s 9 (System.Single) IL_0219: ldc.r4 46 IL_021E: sub IL_021F: ldc.r4 64 IL_0224: div IL_0225: ldc.r4 135 IL_022A: add IL_022B: conv.i4 IL_022C: ldc.i4.0 IL_022D: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0232: stloc.s 17 (System.Int32) IL_0234: ldloc.s 10 (System.Single) IL_0236: ldc.r4 46 IL_023B: add IL_023C: ldc.r4 64 IL_0241: div IL_0242: ldc.r4 135 IL_0247: add IL_0248: conv.i4 IL_0249: ldc.i4 269 IL_024E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0253: stloc.s 18 (System.Int32) IL_0255: ldloc.s 11 (System.Single) IL_0257: ldc.r4 46 IL_025C: add IL_025D: ldc.r4 64 IL_0262: div IL_0263: ldc.r4 135 IL_0268: add IL_0269: conv.i4 IL_026A: ldc.i4 269 IL_026F: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0274: stloc.s 19 (System.Int32) IL_0276: ldloc.s 17 (System.Int32) IL_0278: stloc.s 20 (System.Int32) IL_027A: br => Label3 IL_027F: Label12 IL_027F: ldloc.s 16 (System.Int32) IL_0281: stloc.s 21 (System.Int32) IL_0283: br => Label4 IL_0288: Label11 IL_0288: ldloc.s 14 (ZoneManager) IL_028A: ldfld System.UInt16[] ZoneManager::m_zoneGrid IL_028F: ldloc.s 20 (System.Int32) IL_0291: ldc.i4 270 IL_0296: mul IL_0297: ldloc.s 21 (System.Int32) IL_0299: add IL_029A: ldelem.u2 IL_029B: stloc.s 22 (System.UInt16) IL_029D: ldc.i4.0 IL_029E: stloc.s 23 (System.Int32) IL_02A0: br => Label5 IL_02A5: Label10 IL_02A5: ldloc.s 14 (ZoneManager) IL_02A7: ldfld Array16`1 ZoneManager::m_blocks IL_02AC: ldfld ZoneBlock[] Array16`1::m_buffer IL_02B1: ldloc.s 22 (System.UInt16) IL_02B3: ldelema ZoneBlock IL_02B8: ldfld UnityEngine.Vector3 ZoneBlock::m_position IL_02BD: stloc.s 24 (UnityEngine.Vector3) IL_02BF: ldloc.s 8 (System.Single) IL_02C1: ldc.r4 46 IL_02C6: sub IL_02C7: ldloca.s 24 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::x IL_02CE: sub IL_02CF: ldloc.s 9 (System.Single) IL_02D1: ldc.r4 46 IL_02D6: sub IL_02D7: ldloca.s 24 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: sub IL_02DF: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_02E4: ldloca.s 24 (UnityEngine.Vector3) IL_02E6: ldfld System.Single UnityEngine.Vector3::x IL_02EB: ldloc.s 10 (System.Single) IL_02ED: sub IL_02EE: ldc.r4 46 IL_02F3: sub IL_02F4: ldloca.s 24 (UnityEngine.Vector3) IL_02F6: ldfld System.Single UnityEngine.Vector3::z IL_02FB: ldloc.s 11 (System.Single) IL_02FD: sub IL_02FE: ldc.r4 46 IL_0303: sub IL_0304: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0309: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_030E: stloc.s 25 (System.Single) IL_0310: ldloc.s 25 (System.Single) IL_0312: ldc.r4 0 IL_0317: bge.un => Label6 IL_031C: ldloc.s 22 (System.UInt16) IL_031E: ldarg.1 IL_031F: beq => Label7 IL_0324: ldarg.0 IL_0325: ldarg.1 IL_0326: ldloc.s 14 (ZoneManager) IL_0328: ldfld Array16`1 ZoneManager::m_blocks IL_032D: ldfld ZoneBlock[] Array16`1::m_buffer IL_0332: ldloc.s 22 (System.UInt16) IL_0334: ldelema ZoneBlock IL_0339: ldloca.s 12 (System.UInt64) IL_033B: ldloca.s 13 (System.UInt64) IL_033D: ldloc.s 8 (System.Single) IL_033F: ldloc.s 9 (System.Single) IL_0341: ldloc.s 10 (System.Single) IL_0343: ldloc.s 11 (System.Single) IL_0345: call System.Void ZoneBlock::CalculateImplementation2(System.UInt16 blockID, ZoneBlock& other, System.UInt64& valid, System.UInt64& shared, System.Single minX, System.Single minZ, System.Single maxX, System.Single maxZ) IL_034A: Label6 IL_034A: Label7 IL_034A: ldloc.s 14 (ZoneManager) IL_034C: ldfld Array16`1 ZoneManager::m_blocks IL_0351: ldfld ZoneBlock[] Array16`1::m_buffer IL_0356: ldloc.s 22 (System.UInt16) IL_0358: ldelema ZoneBlock IL_035D: ldfld System.UInt16 ZoneBlock::m_nextGridBlock IL_0362: stloc.s 22 (System.UInt16) IL_0364: ldloc.s 23 (System.Int32) IL_0366: ldc.i4.1 IL_0367: add IL_0368: dup IL_0369: stloc.s 23 (System.Int32) IL_036B: ldc.i4 49152 IL_0370: blt => Label8 IL_0375: ldc.i4.1 IL_0376: ldstr "Invalid list detected!\n" IL_037B: call static System.String System.Environment::get_StackTrace() IL_0380: call static System.String System.String::Concat(System.String str0, System.String str1) IL_0385: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_038A: br => Label9 IL_038F: Label5 IL_038F: Label8 IL_038F: ldloc.s 22 (System.UInt16) IL_0391: brtrue => Label10 IL_0396: Label9 IL_0396: ldloc.s 21 (System.Int32) IL_0398: ldc.i4.1 IL_0399: add IL_039A: stloc.s 21 (System.Int32) IL_039C: Label4 IL_039C: ldloc.s 21 (System.Int32) IL_039E: ldloc.s 18 (System.Int32) IL_03A0: ble => Label11 IL_03A5: ldloc.s 20 (System.Int32) IL_03A7: ldc.i4.1 IL_03A8: add IL_03A9: stloc.s 20 (System.Int32) IL_03AB: Label3 IL_03AB: ldloc.s 20 (System.Int32) IL_03AD: ldloc.s 19 (System.Int32) IL_03AF: ble => Label12 IL_03B4: ldc.i8 144680345676153346 IL_03BD: stloc.s 26 (System.UInt64) IL_03BF: ldc.i4.0 IL_03C0: stloc.s 27 (System.Int32) IL_03C2: br => Label13 IL_03C7: Label14 IL_03C7: ldloc.s 12 (System.UInt64) IL_03C9: ldloc.s 26 (System.UInt64) IL_03CB: not IL_03CC: and IL_03CD: ldloc.s 12 (System.UInt64) IL_03CF: ldloc.s 12 (System.UInt64) IL_03D1: ldc.i4.1 IL_03D2: shl IL_03D3: and IL_03D4: ldloc.s 26 (System.UInt64) IL_03D6: and IL_03D7: or IL_03D8: stloc.s 12 (System.UInt64) IL_03DA: ldloc.s 26 (System.UInt64) IL_03DC: ldc.i4.1 IL_03DD: shl IL_03DE: stloc.s 26 (System.UInt64) IL_03E0: ldloc.s 27 (System.Int32) IL_03E2: ldc.i4.1 IL_03E3: add IL_03E4: stloc.s 27 (System.Int32) IL_03E6: Label13 IL_03E6: ldloc.s 27 (System.Int32) IL_03E8: ldc.i4.7 IL_03E9: blt => Label14 IL_03EE: ldarg.0 IL_03EF: ldloc.s 12 (System.UInt64) IL_03F1: stfld System.UInt64 ZoneBlock::m_valid IL_03F6: ldarg.0 IL_03F7: ldloc.s 13 (System.UInt64) IL_03F9: stfld System.UInt64 ZoneBlock::m_shared IL_03FE: // end original IL_03FE: Label15 IL_03FE: ret DONE ### Patch: System.Void ZoneBlock::SimulationStep(System.UInt16 blockID) ### Replacement: static System.Void ZoneBlock::ZoneBlock.SimulationStep_Patch0(ZoneBlock& this, System.UInt16 blockID) IL_0000: Local var 0: ZoneManager IL_0000: Local var 1: System.Int32 IL_0000: Local var 2: UnityEngine.Vector2 IL_0000: Local var 3: UnityEngine.Vector2 IL_0000: Local var 4: System.UInt64 IL_0000: Local var 5: System.Int32 IL_0000: Local var 6: ItemClass/Zone IL_0000: Local var 7: System.Int32 IL_0000: Local var 8: DistrictManager IL_0000: Local var 9: System.Byte IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: UnityEngine.Vector2 IL_0000: Local var 12: UnityEngine.Vector2 IL_0000: Local var 13: System.Int32[] IL_0000: Local var 14: System.Int32 IL_0000: Local var 15: ColossalFramework.Math.Quad2 IL_0000: Local var 16: UnityEngine.Vector2 IL_0000: Local var 17: UnityEngine.Vector2 IL_0000: Local var 18: System.Int32 IL_0000: Local var 19: System.Int32 IL_0000: Local var 20: System.Int32 IL_0000: Local var 21: System.Int32 IL_0000: Local var 22: System.Int32 IL_0000: Local var 23: System.Int32 IL_0000: Local var 24: System.UInt16 IL_0000: Local var 25: System.Int32 IL_0000: Local var 26: UnityEngine.Vector3 IL_0000: Local var 27: System.Single IL_0000: Local var 28: System.Int32 IL_0000: Local var 29: System.UInt32 IL_0000: Local var 30: System.Int32 IL_0000: Local var 31: System.Boolean IL_0000: Local var 32: System.Boolean IL_0000: Local var 33: System.Boolean IL_0000: Local var 34: System.Int32 IL_0000: Local var 35: System.Boolean IL_0000: Local var 36: System.Int32 IL_0000: Local var 37: System.Int32 IL_0000: Local var 38: System.Boolean IL_0000: Local var 39: System.Int32 IL_0000: Local var 40: System.Int32 IL_0000: Local var 41: System.Boolean IL_0000: Local var 42: System.Boolean IL_0000: Local var 43: System.Int32 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Int32 IL_0000: Local var 46: System.Int32 IL_0000: Local var 47: BuildingInfo/ZoningMode IL_0000: Local var 48: System.Boolean IL_0000: Local var 49: System.Int32 IL_0000: Local var 50: System.Int32 IL_0000: Local var 51: System.Int32 IL_0000: Local var 52: BuildingInfo/ZoningMode IL_0000: Local var 53: System.Boolean IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: ItemClass/Service IL_0000: Local var 56: ItemClass/SubService IL_0000: Local var 57: ItemClass/Level IL_0000: Local var 58: BuildingInfo IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Int32 IL_0000: Local var 61: System.Int32 IL_0000: Local var 62: System.Int32 IL_0000: Local var 63: BuildingInfo/ZoningMode IL_0000: Local var 64: System.Int32 IL_0000: Local var 65: System.Byte IL_0000: Local var 66: System.UInt16 IL_0000: Local var 67: System.Single IL_0000: Local var 68: System.Single IL_0000: Local var 69: System.UInt16 IL_0000: // start original IL_0000: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldarg.0 IL_0007: call System.Int32 ZoneBlock::get_RowCount() IL_000C: stloc.1 IL_000D: ldarg.0 IL_000E: ldfld System.Single ZoneBlock::m_angle IL_0013: call static System.Single UnityEngine.Mathf::Cos(System.Single f) IL_0018: ldarg.0 IL_0019: ldfld System.Single ZoneBlock::m_angle IL_001E: call static System.Single UnityEngine.Mathf::Sin(System.Single f) IL_0023: newobj System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_0028: ldc.r4 8 IL_002D: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(UnityEngine.Vector2 a, System.Single d) IL_0032: stloc.2 IL_0033: ldloca.s 3 (UnityEngine.Vector2) IL_0035: ldloca.s 2 (UnityEngine.Vector2) IL_0037: ldfld System.Single UnityEngine.Vector2::y IL_003C: ldloca.s 2 (UnityEngine.Vector2) IL_003E: ldfld System.Single UnityEngine.Vector2::x IL_0043: neg IL_0044: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_0049: ldarg.0 IL_004A: ldfld System.UInt64 ZoneBlock::m_valid IL_004F: ldarg.0 IL_0050: ldfld System.UInt64 ZoneBlock::m_occupied1 IL_0055: ldarg.0 IL_0056: ldfld System.UInt64 ZoneBlock::m_occupied2 IL_005B: or IL_005C: not IL_005D: and IL_005E: stloc.s 4 (System.UInt64) IL_0060: ldc.i4.0 IL_0061: stloc.s 5 (System.Int32) IL_0063: ldc.i4.0 IL_0064: stloc.s 6 (ItemClass+Zone) IL_0066: ldc.i4.0 IL_0067: stloc.s 7 (System.Int32) IL_0069: br => Label0 IL_006E: Label3 IL_006E: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0073: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0078: ldloc.1 IL_0079: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_007E: stloc.s 5 (System.Int32) IL_0080: ldloc.s 4 (System.UInt64) IL_0082: ldc.i4.1 IL_0083: conv.i8 IL_0084: ldloc.s 5 (System.Int32) IL_0086: ldc.i4.3 IL_0087: shl IL_0088: ldc.i4.s 63 IL_008A: and IL_008B: shl IL_008C: and IL_008D: ldc.i4.0 IL_008E: conv.i8 IL_008F: beq => Label1 IL_0094: ldarg.0 IL_0095: ldc.i4.0 IL_0096: ldloc.s 5 (System.Int32) IL_0098: call Zone ZoneBlock::GetZone(System.Int32 x, System.Int32 z) IL_009D: stloc.s 6 (ItemClass+Zone) IL_009F: Label1 IL_009F: ldloc.s 7 (System.Int32) IL_00A1: ldc.i4.1 IL_00A2: add IL_00A3: stloc.s 7 (System.Int32) IL_00A5: Label0 IL_00A5: ldloc.s 7 (System.Int32) IL_00A7: ldc.i4.4 IL_00A8: bge => Label2 IL_00AD: ldloc.s 6 (ItemClass+Zone) IL_00AF: brfalse => Label3 IL_00B4: Label2 IL_00B4: call static DistrictManager ColossalFramework.Singleton`1::get_instance() IL_00B9: stloc.s 8 (DistrictManager) IL_00BB: ldloc.s 8 (DistrictManager) IL_00BD: ldarg.0 IL_00BE: ldfld UnityEngine.Vector3 ZoneBlock::m_position IL_00C3: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3 worldPos) IL_00C8: stloc.s 9 (System.Byte) IL_00CA: ldloc.s 6 (ItemClass+Zone) IL_00CC: ldc.i4.2 IL_00CD: sub IL_00CE: switch => Labels4,5,6,7,8,9 IL_00EB: br => Label10 IL_00F0: Label4 IL_00F0: ldloc.0 IL_00F1: ldfld System.Int32 ZoneManager::m_actualResidentialDemand IL_00F6: stloc.s 10 (System.Int32) IL_00F8: ldloc.s 10 (System.Int32) IL_00FA: ldloc.s 8 (DistrictManager) IL_00FC: ldfld Array8`1 DistrictManager::m_districts IL_0101: ldfld District[] Array8`1::m_buffer IL_0106: ldloc.s 9 (System.Byte) IL_0108: ldelema District IL_010D: call System.Int32 District::CalculateResidentialLowDemandOffset() IL_0112: add IL_0113: stloc.s 10 (System.Int32) IL_0115: br => Label11 IL_011A: Label5 IL_011A: ldloc.0 IL_011B: ldfld System.Int32 ZoneManager::m_actualResidentialDemand IL_0120: stloc.s 10 (System.Int32) IL_0122: ldloc.s 10 (System.Int32) IL_0124: ldloc.s 8 (DistrictManager) IL_0126: ldfld Array8`1 DistrictManager::m_districts IL_012B: ldfld District[] Array8`1::m_buffer IL_0130: ldloc.s 9 (System.Byte) IL_0132: ldelema District IL_0137: call System.Int32 District::CalculateResidentialHighDemandOffset() IL_013C: add IL_013D: stloc.s 10 (System.Int32) IL_013F: br => Label12 IL_0144: Label6 IL_0144: ldloc.0 IL_0145: ldfld System.Int32 ZoneManager::m_actualCommercialDemand IL_014A: stloc.s 10 (System.Int32) IL_014C: ldloc.s 10 (System.Int32) IL_014E: ldloc.s 8 (DistrictManager) IL_0150: ldfld Array8`1 DistrictManager::m_districts IL_0155: ldfld District[] Array8`1::m_buffer IL_015A: ldloc.s 9 (System.Byte) IL_015C: ldelema District IL_0161: call System.Int32 District::CalculateCommercialLowDemandOffset() IL_0166: add IL_0167: stloc.s 10 (System.Int32) IL_0169: br => Label13 IL_016E: Label7 IL_016E: ldloc.0 IL_016F: ldfld System.Int32 ZoneManager::m_actualCommercialDemand IL_0174: stloc.s 10 (System.Int32) IL_0176: ldloc.s 10 (System.Int32) IL_0178: ldloc.s 8 (DistrictManager) IL_017A: ldfld Array8`1 DistrictManager::m_districts IL_017F: ldfld District[] Array8`1::m_buffer IL_0184: ldloc.s 9 (System.Byte) IL_0186: ldelema District IL_018B: call System.Int32 District::CalculateCommercialHighDemandOffset() IL_0190: add IL_0191: stloc.s 10 (System.Int32) IL_0193: br => Label14 IL_0198: Label8 IL_0198: ldloc.0 IL_0199: ldfld System.Int32 ZoneManager::m_actualWorkplaceDemand IL_019E: stloc.s 10 (System.Int32) IL_01A0: ldloc.s 10 (System.Int32) IL_01A2: ldloc.s 8 (DistrictManager) IL_01A4: ldfld Array8`1 DistrictManager::m_districts IL_01A9: ldfld District[] Array8`1::m_buffer IL_01AE: ldloc.s 9 (System.Byte) IL_01B0: ldelema District IL_01B5: call System.Int32 District::CalculateIndustrialDemandOffset() IL_01BA: add IL_01BB: stloc.s 10 (System.Int32) IL_01BD: br => Label15 IL_01C2: Label9 IL_01C2: ldloc.0 IL_01C3: ldfld System.Int32 ZoneManager::m_actualWorkplaceDemand IL_01C8: stloc.s 10 (System.Int32) IL_01CA: ldloc.s 10 (System.Int32) IL_01CC: ldloc.s 8 (DistrictManager) IL_01CE: ldfld Array8`1 DistrictManager::m_districts IL_01D3: ldfld District[] Array8`1::m_buffer IL_01D8: ldloc.s 9 (System.Byte) IL_01DA: ldelema District IL_01DF: call System.Int32 District::CalculateOfficeDemandOffset() IL_01E4: add IL_01E5: stloc.s 10 (System.Int32) IL_01E7: br => Label16 IL_01EC: Label10 IL_01EC: br => Label235 IL_01F1: Label11 IL_01F1: Label12 IL_01F1: Label13 IL_01F1: Label14 IL_01F1: Label15 IL_01F1: Label16 IL_01F1: ldarg.0 IL_01F2: ldfld UnityEngine.Vector3 ZoneBlock::m_position IL_01F7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_01FC: stloc.s 11 (UnityEngine.Vector2) IL_01FE: ldloc.s 11 (UnityEngine.Vector2) IL_0200: ldc.r4 3.5 IL_0205: ldloc.2 IL_0206: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_020B: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Subtraction(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_0210: ldloc.s 5 (System.Int32) IL_0212: conv.r4 IL_0213: ldc.r4 3.5 IL_0218: sub IL_0219: ldloc.3 IL_021A: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_021F: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Addition(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_0224: stloc.s 12 (UnityEngine.Vector2) IL_0226: ldloc.0 IL_0227: ldfld System.Int32[] ZoneManager::m_tmpXBuffer IL_022C: stloc.s 13 (System.Int32[]) IL_022E: ldc.i4.0 IL_022F: stloc.s 14 (System.Int32) IL_0231: br => Label17 IL_0236: Label18 IL_0236: ldloc.s 13 (System.Int32[]) IL_0238: ldloc.s 14 (System.Int32) IL_023A: ldc.i4.0 IL_023B: stelem.i4 IL_023C: ldloc.s 14 (System.Int32) IL_023E: ldc.i4.1 IL_023F: add IL_0240: stloc.s 14 (System.Int32) IL_0242: Label17 IL_0242: ldloc.s 14 (System.Int32) IL_0244: ldc.i4.s 13 IL_0246: blt => Label18 IL_024B: ldloca.s 15 (ColossalFramework.Math.Quad2) IL_024D: initobj ColossalFramework.Math.Quad2 IL_0253: ldloca.s 15 (ColossalFramework.Math.Quad2) IL_0255: ldloc.s 11 (UnityEngine.Vector2) IL_0257: ldc.r4 4 IL_025C: ldloc.2 IL_025D: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_0262: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Subtraction(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_0267: ldloc.s 5 (System.Int32) IL_0269: conv.r4 IL_026A: ldc.r4 10 IL_026F: sub IL_0270: ldloc.3 IL_0271: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_0276: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Addition(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_027B: stfld UnityEngine.Vector2 ColossalFramework.Math.Quad2::a IL_0280: ldloca.s 15 (ColossalFramework.Math.Quad2) IL_0282: ldloc.s 11 (UnityEngine.Vector2) IL_0284: ldc.r4 3 IL_0289: ldloc.2 IL_028A: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_028F: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Addition(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_0294: ldloc.s 5 (System.Int32) IL_0296: conv.r4 IL_0297: ldc.r4 10 IL_029C: sub IL_029D: ldloc.3 IL_029E: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_02A3: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Addition(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_02A8: stfld UnityEngine.Vector2 ColossalFramework.Math.Quad2::b IL_02AD: ldloca.s 15 (ColossalFramework.Math.Quad2) IL_02AF: ldloc.s 11 (UnityEngine.Vector2) IL_02B1: ldc.r4 3 IL_02B6: ldloc.2 IL_02B7: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_02BC: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Addition(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_02C1: ldloc.s 5 (System.Int32) IL_02C3: conv.r4 IL_02C4: ldc.r4 2 IL_02C9: add IL_02CA: ldloc.3 IL_02CB: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_02D0: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Addition(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_02D5: stfld UnityEngine.Vector2 ColossalFramework.Math.Quad2::c IL_02DA: ldloca.s 15 (ColossalFramework.Math.Quad2) IL_02DC: ldloc.s 11 (UnityEngine.Vector2) IL_02DE: ldc.r4 4 IL_02E3: ldloc.2 IL_02E4: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_02E9: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Subtraction(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_02EE: ldloc.s 5 (System.Int32) IL_02F0: conv.r4 IL_02F1: ldc.r4 2 IL_02F6: add IL_02F7: ldloc.3 IL_02F8: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_02FD: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Addition(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_0302: stfld UnityEngine.Vector2 ColossalFramework.Math.Quad2::d IL_0307: ldloca.s 15 (ColossalFramework.Math.Quad2) IL_0309: call UnityEngine.Vector2 ColossalFramework.Math.Quad2::Min() IL_030E: stloc.s 16 (UnityEngine.Vector2) IL_0310: ldloca.s 15 (ColossalFramework.Math.Quad2) IL_0312: call UnityEngine.Vector2 ColossalFramework.Math.Quad2::Max() IL_0317: stloc.s 17 (UnityEngine.Vector2) IL_0319: ldloca.s 16 (UnityEngine.Vector2) IL_031B: ldfld System.Single UnityEngine.Vector2::x IL_0320: ldc.r4 46 IL_0325: sub IL_0326: ldc.r4 64 IL_032B: div IL_032C: ldc.r4 135 IL_0331: add IL_0332: conv.i4 IL_0333: ldc.i4.0 IL_0334: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0339: stloc.s 18 (System.Int32) IL_033B: ldloca.s 16 (UnityEngine.Vector2) IL_033D: ldfld System.Single UnityEngine.Vector2::y IL_0342: ldc.r4 46 IL_0347: sub IL_0348: ldc.r4 64 IL_034D: div IL_034E: ldc.r4 135 IL_0353: add IL_0354: conv.i4 IL_0355: ldc.i4.0 IL_0356: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_035B: stloc.s 19 (System.Int32) IL_035D: ldloca.s 17 (UnityEngine.Vector2) IL_035F: ldfld System.Single UnityEngine.Vector2::x IL_0364: ldc.r4 46 IL_0369: add IL_036A: ldc.r4 64 IL_036F: div IL_0370: ldc.r4 135 IL_0375: add IL_0376: conv.i4 IL_0377: ldc.i4 269 IL_037C: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0381: stloc.s 20 (System.Int32) IL_0383: ldloca.s 17 (UnityEngine.Vector2) IL_0385: ldfld System.Single UnityEngine.Vector2::y IL_038A: ldc.r4 46 IL_038F: add IL_0390: ldc.r4 64 IL_0395: div IL_0396: ldc.r4 135 IL_039B: add IL_039C: conv.i4 IL_039D: ldc.i4 269 IL_03A2: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_03A7: stloc.s 21 (System.Int32) IL_03A9: ldloc.s 19 (System.Int32) IL_03AB: stloc.s 22 (System.Int32) IL_03AD: br => Label19 IL_03B2: Label27 IL_03B2: ldloc.s 18 (System.Int32) IL_03B4: stloc.s 23 (System.Int32) IL_03B6: br => Label20 IL_03BB: Label26 IL_03BB: ldloc.0 IL_03BC: ldfld System.UInt16[] ZoneManager::m_zoneGrid IL_03C1: ldloc.s 22 (System.Int32) IL_03C3: ldc.i4 270 IL_03C8: mul IL_03C9: ldloc.s 23 (System.Int32) IL_03CB: add IL_03CC: ldelem.u2 IL_03CD: stloc.s 24 (System.UInt16) IL_03CF: ldc.i4.0 IL_03D0: stloc.s 25 (System.Int32) IL_03D2: br => Label21 IL_03D7: Label25 IL_03D7: ldloc.0 IL_03D8: ldfld Array16`1 ZoneManager::m_blocks IL_03DD: ldfld ZoneBlock[] Array16`1::m_buffer IL_03E2: ldloc.s 24 (System.UInt16) IL_03E4: ldelema ZoneBlock IL_03E9: ldfld UnityEngine.Vector3 ZoneBlock::m_position IL_03EE: stloc.s 26 (UnityEngine.Vector3) IL_03F0: ldloca.s 16 (UnityEngine.Vector2) IL_03F2: ldfld System.Single UnityEngine.Vector2::x IL_03F7: ldc.r4 46 IL_03FC: sub IL_03FD: ldloca.s 26 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::x IL_0404: sub IL_0405: ldloca.s 16 (UnityEngine.Vector2) IL_0407: ldfld System.Single UnityEngine.Vector2::y IL_040C: ldc.r4 46 IL_0411: sub IL_0412: ldloca.s 26 (UnityEngine.Vector3) IL_0414: ldfld System.Single UnityEngine.Vector3::z IL_0419: sub IL_041A: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_041F: ldloca.s 26 (UnityEngine.Vector3) IL_0421: ldfld System.Single UnityEngine.Vector3::x IL_0426: ldloca.s 17 (UnityEngine.Vector2) IL_0428: ldfld System.Single UnityEngine.Vector2::x IL_042D: sub IL_042E: ldc.r4 46 IL_0433: sub IL_0434: ldloca.s 26 (UnityEngine.Vector3) IL_0436: ldfld System.Single UnityEngine.Vector3::z IL_043B: ldloca.s 17 (UnityEngine.Vector2) IL_043D: ldfld System.Single UnityEngine.Vector2::y IL_0442: sub IL_0443: ldc.r4 46 IL_0448: sub IL_0449: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_044E: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0453: stloc.s 27 (System.Single) IL_0455: ldloc.s 27 (System.Single) IL_0457: ldc.r4 0 IL_045C: bge.un => Label22 IL_0461: ldarg.0 IL_0462: ldarg.1 IL_0463: ldloc.s 24 (System.UInt16) IL_0465: ldloc.0 IL_0466: ldfld Array16`1 ZoneManager::m_blocks IL_046B: ldfld ZoneBlock[] Array16`1::m_buffer IL_0470: ldloc.s 24 (System.UInt16) IL_0472: ldelema ZoneBlock IL_0477: ldloc.s 13 (System.Int32[]) IL_0479: ldloc.s 6 (ItemClass+Zone) IL_047B: ldloc.s 12 (UnityEngine.Vector2) IL_047D: ldloc.2 IL_047E: ldloc.3 IL_047F: ldloc.s 15 (ColossalFramework.Math.Quad2) IL_0481: call System.Void ZoneBlock::CheckBlock(System.UInt16 blockID, System.UInt16 otherID, ZoneBlock& other, System.Int32[] xBuffer, Zone zone, UnityEngine.Vector2 startPos, UnityEngine.Vector2 xDir, UnityEngine.Vector2 zDir, ColossalFramework.Math.Quad2 quad) IL_0486: Label22 IL_0486: ldloc.0 IL_0487: ldfld Array16`1 ZoneManager::m_blocks IL_048C: ldfld ZoneBlock[] Array16`1::m_buffer IL_0491: ldloc.s 24 (System.UInt16) IL_0493: ldelema ZoneBlock IL_0498: ldfld System.UInt16 ZoneBlock::m_nextGridBlock IL_049D: stloc.s 24 (System.UInt16) IL_049F: ldloc.s 25 (System.Int32) IL_04A1: ldc.i4.1 IL_04A2: add IL_04A3: dup IL_04A4: stloc.s 25 (System.Int32) IL_04A6: ldc.i4 49152 IL_04AB: blt => Label23 IL_04B0: ldc.i4.1 IL_04B1: ldstr "Invalid list detected!\n" IL_04B6: call static System.String System.Environment::get_StackTrace() IL_04BB: call static System.String System.String::Concat(System.String str0, System.String str1) IL_04C0: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_04C5: br => Label24 IL_04CA: Label21 IL_04CA: Label23 IL_04CA: ldloc.s 24 (System.UInt16) IL_04CC: brtrue => Label25 IL_04D1: Label24 IL_04D1: ldloc.s 23 (System.Int32) IL_04D3: ldc.i4.1 IL_04D4: add IL_04D5: stloc.s 23 (System.Int32) IL_04D7: Label20 IL_04D7: ldloc.s 23 (System.Int32) IL_04D9: ldloc.s 20 (System.Int32) IL_04DB: ble => Label26 IL_04E0: ldloc.s 22 (System.Int32) IL_04E2: ldc.i4.1 IL_04E3: add IL_04E4: stloc.s 22 (System.Int32) IL_04E6: Label19 IL_04E6: ldloc.s 22 (System.Int32) IL_04E8: ldloc.s 21 (System.Int32) IL_04EA: ble => Label27 IL_04EF: ldc.i4.0 IL_04F0: stloc.s 28 (System.Int32) IL_04F2: br => Label28 IL_04F7: Label40 IL_04F7: ldloc.s 13 (System.Int32[]) IL_04F9: ldloc.s 28 (System.Int32) IL_04FB: ldelem.i4 IL_04FC: stloc.s 29 (System.UInt32) IL_04FE: ldc.i4.0 IL_04FF: stloc.s 30 (System.Int32) IL_0501: ldloc.s 29 (System.UInt32) IL_0503: ldc.i4 65536 IL_0508: and IL_0509: ldc.i4 65536 IL_050E: ceq IL_0510: stloc.s 31 (System.Boolean) IL_0512: ldloc.s 29 (System.UInt32) IL_0514: ldc.i4 131072 IL_0519: and IL_051A: ldc.i4 131072 IL_051F: ceq IL_0521: stloc.s 32 (System.Boolean) IL_0523: ldc.i4.0 IL_0524: stloc.s 33 (System.Boolean) IL_0526: br => Label29 IL_052B: Label30 IL_052B: ldloc.s 30 (System.Int32) IL_052D: ldc.i4.1 IL_052E: add IL_052F: stloc.s 30 (System.Int32) IL_0531: ldloc.s 29 (System.UInt32) IL_0533: ldc.i4 65536 IL_0538: and IL_0539: ldc.i4.0 IL_053A: ceq IL_053C: ldc.i4.0 IL_053D: ceq IL_053F: stloc.s 33 (System.Boolean) IL_0541: ldloc.s 29 (System.UInt32) IL_0543: ldc.i4.1 IL_0544: shr.un IL_0545: stloc.s 29 (System.UInt32) IL_0547: Label29 IL_0547: ldloc.s 29 (System.UInt32) IL_0549: ldc.i4.1 IL_054A: and IL_054B: brtrue => Label30 IL_0550: ldloc.s 30 (System.Int32) IL_0552: ldc.i4.5 IL_0553: beq => Label31 IL_0558: ldloc.s 30 (System.Int32) IL_055A: ldc.i4.6 IL_055B: bne.un => Label32 IL_0560: Label31 IL_0560: ldloc.s 33 (System.Boolean) IL_0562: brfalse => Label33 IL_0567: ldloc.s 30 (System.Int32) IL_0569: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_056E: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0573: ldc.i4.2 IL_0574: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0579: ldc.i4.2 IL_057A: add IL_057B: sub IL_057C: stloc.s 30 (System.Int32) IL_057E: br => Label34 IL_0583: Label33 IL_0583: ldc.i4.4 IL_0584: stloc.s 30 (System.Int32) IL_0586: Label34 IL_0586: ldloc.s 30 (System.Int32) IL_0588: ldc.i4 262144 IL_058D: or IL_058E: stloc.s 30 (System.Int32) IL_0590: br => Label35 IL_0595: Label32 IL_0595: ldloc.s 30 (System.Int32) IL_0597: ldc.i4.7 IL_0598: bne.un => Label36 IL_059D: ldc.i4.4 IL_059E: stloc.s 30 (System.Int32) IL_05A0: ldloc.s 30 (System.Int32) IL_05A2: ldc.i4 262144 IL_05A7: or IL_05A8: stloc.s 30 (System.Int32) IL_05AA: Label35 IL_05AA: Label36 IL_05AA: ldloc.s 30 (System.Int32) IL_05AC: brfalse => Label37 IL_05B1: ldloc.s 31 (System.Boolean) IL_05B3: brfalse => Label38 IL_05B8: ldloc.s 30 (System.Int32) IL_05BA: ldc.i4 65536 IL_05BF: or IL_05C0: stloc.s 30 (System.Int32) IL_05C2: Label38 IL_05C2: ldloc.s 32 (System.Boolean) IL_05C4: brfalse => Label39 IL_05C9: ldloc.s 30 (System.Int32) IL_05CB: ldc.i4 131072 IL_05D0: or IL_05D1: stloc.s 30 (System.Int32) IL_05D3: Label37 IL_05D3: Label39 IL_05D3: ldloc.s 13 (System.Int32[]) IL_05D5: ldloc.s 28 (System.Int32) IL_05D7: ldloc.s 30 (System.Int32) IL_05D9: stelem.i4 IL_05DA: ldloc.s 28 (System.Int32) IL_05DC: ldc.i4.1 IL_05DD: add IL_05DE: stloc.s 28 (System.Int32) IL_05E0: Label28 IL_05E0: ldloc.s 28 (System.Int32) IL_05E2: ldc.i4.s 13 IL_05E4: blt => Label40 IL_05E9: ldloc.s 13 (System.Int32[]) IL_05EB: ldc.i4.6 IL_05EC: ldelem.i4 IL_05ED: ldc.i4 65535 IL_05F2: and IL_05F3: stloc.s 34 (System.Int32) IL_05F5: ldloc.s 34 (System.Int32) IL_05F7: brtrue => Label41 IL_05FC: br => Label236 IL_0601: Label41 IL_0601: ldarg.0 IL_0602: ldloc.s 12 (UnityEngine.Vector2) IL_0604: call System.Boolean ZoneBlock::IsGoodPlace(UnityEngine.Vector2 position) IL_0609: stloc.s 35 (System.Boolean) IL_060B: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0610: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0615: ldc.i4.s 100 IL_0617: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_061C: ldloc.s 10 (System.Int32) IL_061E: blt => Label42 IL_0623: ldloc.s 35 (System.Boolean) IL_0625: brfalse => Label43 IL_062A: ldloc.0 IL_062B: ldfld System.Int16[] ZoneManager::m_goodAreaFound IL_0630: ldloc.s 6 (ItemClass+Zone) IL_0632: ldc.i4 1024 IL_0637: stelem.i2 IL_0638: Label43 IL_0638: br => Label237 IL_063D: Label42 IL_063D: ldloc.s 35 (System.Boolean) IL_063F: brtrue => Label44 IL_0644: ldloc.0 IL_0645: ldfld System.Int16[] ZoneManager::m_goodAreaFound IL_064A: ldloc.s 6 (ItemClass+Zone) IL_064C: ldelem.i2 IL_064D: ldc.i4 -1024 IL_0652: ble => Label45 IL_0657: ldloc.0 IL_0658: ldfld System.Int16[] ZoneManager::m_goodAreaFound IL_065D: ldloc.s 6 (ItemClass+Zone) IL_065F: ldelem.i2 IL_0660: brtrue => Label46 IL_0665: ldloc.0 IL_0666: ldfld System.Int16[] ZoneManager::m_goodAreaFound IL_066B: ldloc.s 6 (ItemClass+Zone) IL_066D: ldc.i4.m1 IL_066E: stelem.i2 IL_066F: Label46 IL_066F: br => Label238 IL_0674: Label44 IL_0674: Label45 IL_0674: ldc.i4.6 IL_0675: stloc.s 36 (System.Int32) IL_0677: ldc.i4.6 IL_0678: stloc.s 37 (System.Int32) IL_067A: ldc.i4.1 IL_067B: stloc.s 38 (System.Boolean) IL_067D: Label109 IL_067D: ldloc.s 38 (System.Boolean) IL_067F: brfalse => Label47 IL_0684: br => Label48 IL_0689: Label51 IL_0689: ldloc.s 13 (System.Int32[]) IL_068B: ldloc.s 36 (System.Int32) IL_068D: ldc.i4.1 IL_068E: sub IL_068F: ldelem.i4 IL_0690: ldc.i4 65535 IL_0695: and IL_0696: ldloc.s 34 (System.Int32) IL_0698: beq => Label49 IL_069D: br => Label50 IL_06A2: Label49 IL_06A2: ldloc.s 36 (System.Int32) IL_06A4: ldc.i4.1 IL_06A5: sub IL_06A6: stloc.s 36 (System.Int32) IL_06A8: Label48 IL_06A8: ldloc.s 36 (System.Int32) IL_06AA: brtrue => Label51 IL_06AF: Label50 IL_06AF: br => Label52 IL_06B4: Label55 IL_06B4: ldloc.s 13 (System.Int32[]) IL_06B6: ldloc.s 37 (System.Int32) IL_06B8: ldc.i4.1 IL_06B9: add IL_06BA: ldelem.i4 IL_06BB: ldc.i4 65535 IL_06C0: and IL_06C1: ldloc.s 34 (System.Int32) IL_06C3: beq => Label53 IL_06C8: br => Label54 IL_06CD: Label53 IL_06CD: ldloc.s 37 (System.Int32) IL_06CF: ldc.i4.1 IL_06D0: add IL_06D1: stloc.s 37 (System.Int32) IL_06D3: Label52 IL_06D3: ldloc.s 37 (System.Int32) IL_06D5: ldc.i4.s 12 IL_06D7: bne.un => Label55 IL_06DC: Label54 IL_06DC: br => Label56 IL_06E1: Label47 IL_06E1: br => Label57 IL_06E6: Label60 IL_06E6: ldloc.s 13 (System.Int32[]) IL_06E8: ldloc.s 36 (System.Int32) IL_06EA: ldc.i4.1 IL_06EB: sub IL_06EC: ldelem.i4 IL_06ED: ldc.i4 65535 IL_06F2: and IL_06F3: ldloc.s 34 (System.Int32) IL_06F5: bge => Label58 IL_06FA: br => Label59 IL_06FF: Label58 IL_06FF: ldloc.s 36 (System.Int32) IL_0701: ldc.i4.1 IL_0702: sub IL_0703: stloc.s 36 (System.Int32) IL_0705: Label57 IL_0705: ldloc.s 36 (System.Int32) IL_0707: brtrue => Label60 IL_070C: Label59 IL_070C: br => Label61 IL_0711: Label64 IL_0711: ldloc.s 13 (System.Int32[]) IL_0713: ldloc.s 37 (System.Int32) IL_0715: ldc.i4.1 IL_0716: add IL_0717: ldelem.i4 IL_0718: ldc.i4 65535 IL_071D: and IL_071E: ldloc.s 34 (System.Int32) IL_0720: bge => Label62 IL_0725: br => Label63 IL_072A: Label62 IL_072A: ldloc.s 37 (System.Int32) IL_072C: ldc.i4.1 IL_072D: add IL_072E: stloc.s 37 (System.Int32) IL_0730: Label61 IL_0730: ldloc.s 37 (System.Int32) IL_0732: ldc.i4.s 12 IL_0734: bne.un => Label64 IL_0739: Label56 IL_0739: Label63 IL_0739: ldloc.s 36 (System.Int32) IL_073B: stloc.s 39 (System.Int32) IL_073D: ldloc.s 37 (System.Int32) IL_073F: stloc.s 40 (System.Int32) IL_0741: br => Label65 IL_0746: Label68 IL_0746: ldloc.s 13 (System.Int32[]) IL_0748: ldloc.s 39 (System.Int32) IL_074A: ldc.i4.1 IL_074B: sub IL_074C: ldelem.i4 IL_074D: ldc.i4 65535 IL_0752: and IL_0753: ldc.i4.2 IL_0754: bge => Label66 IL_0759: br => Label67 IL_075E: Label66 IL_075E: ldloc.s 39 (System.Int32) IL_0760: ldc.i4.1 IL_0761: sub IL_0762: stloc.s 39 (System.Int32) IL_0764: Label65 IL_0764: ldloc.s 39 (System.Int32) IL_0766: brtrue => Label68 IL_076B: Label67 IL_076B: br => Label69 IL_0770: Label72 IL_0770: ldloc.s 13 (System.Int32[]) IL_0772: ldloc.s 40 (System.Int32) IL_0774: ldc.i4.1 IL_0775: add IL_0776: ldelem.i4 IL_0777: ldc.i4 65535 IL_077C: and IL_077D: ldc.i4.2 IL_077E: bge => Label70 IL_0783: br => Label71 IL_0788: Label70 IL_0788: ldloc.s 40 (System.Int32) IL_078A: ldc.i4.1 IL_078B: add IL_078C: stloc.s 40 (System.Int32) IL_078E: Label69 IL_078E: ldloc.s 40 (System.Int32) IL_0790: ldc.i4.s 12 IL_0792: bne.un => Label72 IL_0797: Label71 IL_0797: ldloc.s 39 (System.Int32) IL_0799: brfalse => Label73 IL_079E: ldloc.s 39 (System.Int32) IL_07A0: ldloc.s 36 (System.Int32) IL_07A2: ldc.i4.1 IL_07A3: sub IL_07A4: ceq IL_07A6: br => Label74 IL_07AB: Label73 IL_07AB: ldc.i4.0 IL_07AC: Label74 IL_07AC: stloc.s 41 (System.Boolean) IL_07AE: ldloc.s 40 (System.Int32) IL_07B0: ldc.i4.s 12 IL_07B2: beq => Label75 IL_07B7: ldloc.s 40 (System.Int32) IL_07B9: ldloc.s 37 (System.Int32) IL_07BB: ldc.i4.1 IL_07BC: add IL_07BD: ceq IL_07BF: br => Label76 IL_07C4: Label75 IL_07C4: ldc.i4.0 IL_07C5: Label76 IL_07C5: stloc.s 42 (System.Boolean) IL_07C7: ldloc.s 41 (System.Boolean) IL_07C9: brfalse => Label77 IL_07CE: ldloc.s 42 (System.Boolean) IL_07D0: brfalse => Label78 IL_07D5: ldloc.s 37 (System.Int32) IL_07D7: ldloc.s 36 (System.Int32) IL_07D9: sub IL_07DA: ldc.i4.2 IL_07DB: ble => Label79 IL_07E0: ldloc.s 36 (System.Int32) IL_07E2: ldc.i4.1 IL_07E3: add IL_07E4: stloc.s 36 (System.Int32) IL_07E6: ldloc.s 37 (System.Int32) IL_07E8: ldc.i4.1 IL_07E9: sub IL_07EA: stloc.s 37 (System.Int32) IL_07EC: br => Label80 IL_07F1: Label79 IL_07F1: ldloc.s 34 (System.Int32) IL_07F3: ldc.i4.2 IL_07F4: bgt => Label81 IL_07F9: ldloc.s 38 (System.Boolean) IL_07FB: brtrue => Label82 IL_0800: br => Label83 IL_0805: Label82 IL_0805: br => Label84 IL_080A: Label81 IL_080A: ldloc.s 34 (System.Int32) IL_080C: ldc.i4.1 IL_080D: sub IL_080E: stloc.s 34 (System.Int32) IL_0810: Label84 IL_0810: br => Label85 IL_0815: Label77 IL_0815: Label78 IL_0815: ldloc.s 41 (System.Boolean) IL_0817: brfalse => Label86 IL_081C: ldloc.s 37 (System.Int32) IL_081E: ldloc.s 36 (System.Int32) IL_0820: sub IL_0821: ldc.i4.1 IL_0822: ble => Label87 IL_0827: ldloc.s 36 (System.Int32) IL_0829: ldc.i4.1 IL_082A: add IL_082B: stloc.s 36 (System.Int32) IL_082D: br => Label88 IL_0832: Label87 IL_0832: ldloc.s 34 (System.Int32) IL_0834: ldc.i4.2 IL_0835: bgt => Label89 IL_083A: ldloc.s 38 (System.Boolean) IL_083C: brtrue => Label90 IL_0841: br => Label91 IL_0846: Label90 IL_0846: br => Label92 IL_084B: Label89 IL_084B: ldloc.s 34 (System.Int32) IL_084D: ldc.i4.1 IL_084E: sub IL_084F: stloc.s 34 (System.Int32) IL_0851: Label92 IL_0851: br => Label93 IL_0856: Label86 IL_0856: ldloc.s 42 (System.Boolean) IL_0858: brfalse => Label94 IL_085D: ldloc.s 37 (System.Int32) IL_085F: ldloc.s 36 (System.Int32) IL_0861: sub IL_0862: ldc.i4.1 IL_0863: ble => Label95 IL_0868: ldloc.s 37 (System.Int32) IL_086A: ldc.i4.1 IL_086B: sub IL_086C: stloc.s 37 (System.Int32) IL_086E: br => Label96 IL_0873: Label95 IL_0873: ldloc.s 34 (System.Int32) IL_0875: ldc.i4.2 IL_0876: bgt => Label97 IL_087B: ldloc.s 38 (System.Boolean) IL_087D: brtrue => Label98 IL_0882: br => Label99 IL_0887: Label98 IL_0887: br => Label100 IL_088C: Label97 IL_088C: ldloc.s 34 (System.Int32) IL_088E: ldc.i4.1 IL_088F: sub IL_0890: stloc.s 34 (System.Int32) IL_0892: Label100 IL_0892: br => Label101 IL_0897: Label94 IL_0897: ldloc.s 36 (System.Int32) IL_0899: ldloc.s 37 (System.Int32) IL_089B: bne.un => Label102 IL_08A0: ldloc.s 34 (System.Int32) IL_08A2: ldc.i4.2 IL_08A3: bgt => Label103 IL_08A8: ldloc.s 38 (System.Boolean) IL_08AA: brtrue => Label104 IL_08AF: br => Label105 IL_08B4: Label104 IL_08B4: br => Label106 IL_08B9: Label103 IL_08B9: ldloc.s 34 (System.Int32) IL_08BB: ldc.i4.1 IL_08BC: sub IL_08BD: stloc.s 34 (System.Int32) IL_08BF: Label106 IL_08BF: br => Label107 IL_08C4: Label102 IL_08C4: br => Label108 IL_08C9: Label85 IL_08C9: Label93 IL_08C9: Label101 IL_08C9: Label107 IL_08C9: ldc.i4.0 IL_08CA: stloc.s 38 (System.Boolean) IL_08CC: br => Label109 IL_08D1: Label80 IL_08D1: Label83 IL_08D1: Label88 IL_08D1: Label91 IL_08D1: Label96 IL_08D1: Label99 IL_08D1: Label105 IL_08D1: Label108 IL_08D1: ldloc.s 34 (System.Int32) IL_08D3: ldc.i4.1 IL_08D4: bne.un => Label110 IL_08D9: ldloc.s 37 (System.Int32) IL_08DB: ldloc.s 36 (System.Int32) IL_08DD: sub IL_08DE: ldc.i4.1 IL_08DF: blt => Label111 IL_08E4: ldloc.s 36 (System.Int32) IL_08E6: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_08EB: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_08F0: ldloc.s 37 (System.Int32) IL_08F2: ldloc.s 36 (System.Int32) IL_08F4: sub IL_08F5: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_08FA: add IL_08FB: stloc.s 36 (System.Int32) IL_08FD: ldloc.s 36 (System.Int32) IL_08FF: ldc.i4.1 IL_0900: add IL_0901: stloc.s 37 (System.Int32) IL_0903: ldloc.s 36 (System.Int32) IL_0905: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_090A: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_090F: ldc.i4.2 IL_0910: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0915: add IL_0916: stloc.s 43 (System.Int32) IL_0918: ldloc.s 43 (System.Int32) IL_091A: stloc.s 44 (System.Int32) IL_091C: br => Label112 IL_0921: Label110 IL_0921: Label111 IL_0921: Label137 IL_0921: Label138 IL_0921: ldloc.s 36 (System.Int32) IL_0923: stloc.s 43 (System.Int32) IL_0925: ldloc.s 37 (System.Int32) IL_0927: stloc.s 44 (System.Int32) IL_0929: ldloc.s 37 (System.Int32) IL_092B: ldloc.s 36 (System.Int32) IL_092D: sub IL_092E: ldc.i4.2 IL_092F: bne.un => Label113 IL_0934: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0939: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_093E: ldc.i4.2 IL_093F: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0944: brtrue => Label114 IL_0949: ldloc.s 44 (System.Int32) IL_094B: ldc.i4.1 IL_094C: sub IL_094D: stloc.s 44 (System.Int32) IL_094F: br => Label115 IL_0954: Label114 IL_0954: ldloc.s 43 (System.Int32) IL_0956: ldc.i4.1 IL_0957: add IL_0958: stloc.s 43 (System.Int32) IL_095A: Label115 IL_095A: br => Label116 IL_095F: Label113 IL_095F: ldloc.s 37 (System.Int32) IL_0961: ldloc.s 36 (System.Int32) IL_0963: sub IL_0964: ldc.i4.3 IL_0965: bne.un => Label117 IL_096A: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_096F: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0974: ldc.i4.2 IL_0975: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_097A: brtrue => Label118 IL_097F: ldloc.s 44 (System.Int32) IL_0981: ldc.i4.2 IL_0982: sub IL_0983: stloc.s 44 (System.Int32) IL_0985: br => Label119 IL_098A: Label118 IL_098A: ldloc.s 43 (System.Int32) IL_098C: ldc.i4.2 IL_098D: add IL_098E: stloc.s 43 (System.Int32) IL_0990: Label119 IL_0990: br => Label120 IL_0995: Label117 IL_0995: ldloc.s 37 (System.Int32) IL_0997: ldloc.s 36 (System.Int32) IL_0999: sub IL_099A: ldc.i4.4 IL_099B: bne.un => Label121 IL_09A0: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_09A5: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_09AA: ldc.i4.2 IL_09AB: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_09B0: brtrue => Label122 IL_09B5: ldloc.s 37 (System.Int32) IL_09B7: ldc.i4.2 IL_09B8: sub IL_09B9: stloc.s 37 (System.Int32) IL_09BB: ldloc.s 44 (System.Int32) IL_09BD: ldc.i4.3 IL_09BE: sub IL_09BF: stloc.s 44 (System.Int32) IL_09C1: br => Label123 IL_09C6: Label122 IL_09C6: ldloc.s 36 (System.Int32) IL_09C8: ldc.i4.2 IL_09C9: add IL_09CA: stloc.s 36 (System.Int32) IL_09CC: ldloc.s 43 (System.Int32) IL_09CE: ldc.i4.3 IL_09CF: add IL_09D0: stloc.s 43 (System.Int32) IL_09D2: Label123 IL_09D2: br => Label124 IL_09D7: Label121 IL_09D7: ldloc.s 37 (System.Int32) IL_09D9: ldloc.s 36 (System.Int32) IL_09DB: sub IL_09DC: ldc.i4.5 IL_09DD: bne.un => Label125 IL_09E2: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_09E7: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_09EC: ldc.i4.2 IL_09ED: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_09F2: brtrue => Label126 IL_09F7: ldloc.s 37 (System.Int32) IL_09F9: ldc.i4.3 IL_09FA: sub IL_09FB: stloc.s 37 (System.Int32) IL_09FD: ldloc.s 44 (System.Int32) IL_09FF: ldc.i4.2 IL_0A00: sub IL_0A01: stloc.s 44 (System.Int32) IL_0A03: br => Label127 IL_0A08: Label126 IL_0A08: ldloc.s 36 (System.Int32) IL_0A0A: ldc.i4.3 IL_0A0B: add IL_0A0C: stloc.s 36 (System.Int32) IL_0A0E: ldloc.s 43 (System.Int32) IL_0A10: ldc.i4.2 IL_0A11: add IL_0A12: stloc.s 43 (System.Int32) IL_0A14: Label127 IL_0A14: br => Label128 IL_0A19: Label125 IL_0A19: ldloc.s 37 (System.Int32) IL_0A1B: ldloc.s 36 (System.Int32) IL_0A1D: sub IL_0A1E: ldc.i4.6 IL_0A1F: blt => Label129 IL_0A24: ldloc.s 36 (System.Int32) IL_0A26: brfalse => Label130 IL_0A2B: ldloc.s 37 (System.Int32) IL_0A2D: ldc.i4.s 12 IL_0A2F: bne.un => Label131 IL_0A34: Label130 IL_0A34: ldloc.s 36 (System.Int32) IL_0A36: brtrue => Label132 IL_0A3B: ldc.i4.3 IL_0A3C: stloc.s 36 (System.Int32) IL_0A3E: ldc.i4.2 IL_0A3F: stloc.s 43 (System.Int32) IL_0A41: Label132 IL_0A41: ldloc.s 37 (System.Int32) IL_0A43: ldc.i4.s 12 IL_0A45: bne.un => Label133 IL_0A4A: ldc.i4.s 9 IL_0A4C: stloc.s 37 (System.Int32) IL_0A4E: ldc.i4.s 10 IL_0A50: stloc.s 44 (System.Int32) IL_0A52: Label133 IL_0A52: br => Label134 IL_0A57: Label131 IL_0A57: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0A5C: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0A61: ldc.i4.2 IL_0A62: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0A67: brtrue => Label135 IL_0A6C: ldloc.s 36 (System.Int32) IL_0A6E: ldc.i4.3 IL_0A6F: add IL_0A70: stloc.s 37 (System.Int32) IL_0A72: ldloc.s 43 (System.Int32) IL_0A74: ldc.i4.2 IL_0A75: add IL_0A76: stloc.s 44 (System.Int32) IL_0A78: br => Label136 IL_0A7D: Label135 IL_0A7D: ldloc.s 37 (System.Int32) IL_0A7F: ldc.i4.3 IL_0A80: sub IL_0A81: stloc.s 36 (System.Int32) IL_0A83: ldloc.s 44 (System.Int32) IL_0A85: ldc.i4.2 IL_0A86: sub IL_0A87: stloc.s 43 (System.Int32) IL_0A89: Label116 IL_0A89: Label120 IL_0A89: Label124 IL_0A89: Label128 IL_0A89: Label129 IL_0A89: Label134 IL_0A89: Label136 IL_0A89: ldloc.s 37 (System.Int32) IL_0A8B: ldloc.s 36 (System.Int32) IL_0A8D: sub IL_0A8E: ldc.i4.3 IL_0A8F: bgt => Label137 IL_0A94: ldloc.s 44 (System.Int32) IL_0A96: ldloc.s 43 (System.Int32) IL_0A98: sub IL_0A99: ldc.i4.3 IL_0A9A: bgt => Label138 IL_0A9F: Label112 IL_0A9F: ldc.i4.4 IL_0AA0: stloc.s 45 (System.Int32) IL_0AA2: ldloc.s 37 (System.Int32) IL_0AA4: ldloc.s 36 (System.Int32) IL_0AA6: sub IL_0AA7: ldc.i4.1 IL_0AA8: add IL_0AA9: stloc.s 46 (System.Int32) IL_0AAB: ldc.i4.0 IL_0AAC: stloc.s 47 (BuildingInfo+ZoningMode) IL_0AAE: ldc.i4.1 IL_0AAF: stloc.s 48 (System.Boolean) IL_0AB1: ldloc.s 36 (System.Int32) IL_0AB3: stloc.s 49 (System.Int32) IL_0AB5: br => Label139 IL_0ABA: Label141 IL_0ABA: ldloc.s 45 (System.Int32) IL_0ABC: ldloc.s 13 (System.Int32[]) IL_0ABE: ldloc.s 49 (System.Int32) IL_0AC0: ldelem.i4 IL_0AC1: ldc.i4 65535 IL_0AC6: and IL_0AC7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0ACC: stloc.s 45 (System.Int32) IL_0ACE: ldloc.s 13 (System.Int32[]) IL_0AD0: ldloc.s 49 (System.Int32) IL_0AD2: ldelem.i4 IL_0AD3: ldc.i4 262144 IL_0AD8: and IL_0AD9: brtrue => Label140 IL_0ADE: ldc.i4.0 IL_0ADF: stloc.s 48 (System.Boolean) IL_0AE1: Label140 IL_0AE1: ldloc.s 49 (System.Int32) IL_0AE3: ldc.i4.1 IL_0AE4: add IL_0AE5: stloc.s 49 (System.Int32) IL_0AE7: Label139 IL_0AE7: ldloc.s 49 (System.Int32) IL_0AE9: ldloc.s 37 (System.Int32) IL_0AEB: ble => Label141 IL_0AF0: ldloc.s 37 (System.Int32) IL_0AF2: ldloc.s 36 (System.Int32) IL_0AF4: blt => Label142 IL_0AF9: ldloc.s 13 (System.Int32[]) IL_0AFB: ldloc.s 36 (System.Int32) IL_0AFD: ldelem.i4 IL_0AFE: ldc.i4 65536 IL_0B03: and IL_0B04: brfalse => Label143 IL_0B09: ldc.i4.1 IL_0B0A: stloc.s 47 (BuildingInfo+ZoningMode) IL_0B0C: ldloc.s 36 (System.Int32) IL_0B0E: ldloc.s 44 (System.Int32) IL_0B10: add IL_0B11: ldloc.s 43 (System.Int32) IL_0B13: sub IL_0B14: stloc.s 44 (System.Int32) IL_0B16: ldloc.s 36 (System.Int32) IL_0B18: stloc.s 43 (System.Int32) IL_0B1A: br => Label144 IL_0B1F: Label143 IL_0B1F: ldloc.s 13 (System.Int32[]) IL_0B21: ldloc.s 37 (System.Int32) IL_0B23: ldelem.i4 IL_0B24: ldc.i4 131072 IL_0B29: and IL_0B2A: brfalse => Label145 IL_0B2F: ldc.i4.2 IL_0B30: stloc.s 47 (BuildingInfo+ZoningMode) IL_0B32: ldloc.s 37 (System.Int32) IL_0B34: ldloc.s 43 (System.Int32) IL_0B36: add IL_0B37: ldloc.s 44 (System.Int32) IL_0B39: sub IL_0B3A: stloc.s 43 (System.Int32) IL_0B3C: ldloc.s 37 (System.Int32) IL_0B3E: stloc.s 44 (System.Int32) IL_0B40: Label142 IL_0B40: Label144 IL_0B40: Label145 IL_0B40: ldc.i4.4 IL_0B41: stloc.s 50 (System.Int32) IL_0B43: ldloc.s 44 (System.Int32) IL_0B45: ldloc.s 43 (System.Int32) IL_0B47: sub IL_0B48: ldc.i4.1 IL_0B49: add IL_0B4A: stloc.s 51 (System.Int32) IL_0B4C: ldc.i4.0 IL_0B4D: stloc.s 52 (BuildingInfo+ZoningMode) IL_0B4F: ldc.i4.1 IL_0B50: stloc.s 53 (System.Boolean) IL_0B52: ldloc.s 43 (System.Int32) IL_0B54: stloc.s 54 (System.Int32) IL_0B56: br => Label146 IL_0B5B: Label148 IL_0B5B: ldloc.s 50 (System.Int32) IL_0B5D: ldloc.s 13 (System.Int32[]) IL_0B5F: ldloc.s 54 (System.Int32) IL_0B61: ldelem.i4 IL_0B62: ldc.i4 65535 IL_0B67: and IL_0B68: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0B6D: stloc.s 50 (System.Int32) IL_0B6F: ldloc.s 13 (System.Int32[]) IL_0B71: ldloc.s 54 (System.Int32) IL_0B73: ldelem.i4 IL_0B74: ldc.i4 262144 IL_0B79: and IL_0B7A: brtrue => Label147 IL_0B7F: ldc.i4.0 IL_0B80: stloc.s 53 (System.Boolean) IL_0B82: Label147 IL_0B82: ldloc.s 54 (System.Int32) IL_0B84: ldc.i4.1 IL_0B85: add IL_0B86: stloc.s 54 (System.Int32) IL_0B88: Label146 IL_0B88: ldloc.s 54 (System.Int32) IL_0B8A: ldloc.s 44 (System.Int32) IL_0B8C: ble => Label148 IL_0B91: ldloc.s 44 (System.Int32) IL_0B93: ldloc.s 43 (System.Int32) IL_0B95: blt => Label149 IL_0B9A: ldloc.s 13 (System.Int32[]) IL_0B9C: ldloc.s 43 (System.Int32) IL_0B9E: ldelem.i4 IL_0B9F: ldc.i4 65536 IL_0BA4: and IL_0BA5: brfalse => Label150 IL_0BAA: ldc.i4.1 IL_0BAB: stloc.s 52 (BuildingInfo+ZoningMode) IL_0BAD: br => Label151 IL_0BB2: Label150 IL_0BB2: ldloc.s 13 (System.Int32[]) IL_0BB4: ldloc.s 44 (System.Int32) IL_0BB6: ldelem.i4 IL_0BB7: ldc.i4 131072 IL_0BBC: and IL_0BBD: brfalse => Label152 IL_0BC2: ldc.i4.2 IL_0BC3: stloc.s 52 (BuildingInfo+ZoningMode) IL_0BC5: Label149 IL_0BC5: Label151 IL_0BC5: Label152 IL_0BC5: ldc.i4.0 IL_0BC6: stloc.s 55 (ItemClass+Service) IL_0BC8: ldc.i4.0 IL_0BC9: stloc.s 56 (ItemClass+SubService) IL_0BCB: ldc.i4.0 IL_0BCC: stloc.s 57 (ItemClass+Level) IL_0BCE: ldloc.s 6 (ItemClass+Zone) IL_0BD0: ldc.i4.2 IL_0BD1: sub IL_0BD2: switch => Labels153,154,155,156,157,158 IL_0BEF: br => Label159 IL_0BF4: Label153 IL_0BF4: ldc.i4.1 IL_0BF5: stloc.s 55 (ItemClass+Service) IL_0BF7: ldc.i4.1 IL_0BF8: stloc.s 56 (ItemClass+SubService) IL_0BFA: br => Label160 IL_0BFF: Label154 IL_0BFF: ldc.i4.1 IL_0C00: stloc.s 55 (ItemClass+Service) IL_0C02: ldc.i4.2 IL_0C03: stloc.s 56 (ItemClass+SubService) IL_0C05: br => Label161 IL_0C0A: Label155 IL_0C0A: ldc.i4.2 IL_0C0B: stloc.s 55 (ItemClass+Service) IL_0C0D: ldc.i4.3 IL_0C0E: stloc.s 56 (ItemClass+SubService) IL_0C10: br => Label162 IL_0C15: Label156 IL_0C15: ldc.i4.2 IL_0C16: stloc.s 55 (ItemClass+Service) IL_0C18: ldc.i4.4 IL_0C19: stloc.s 56 (ItemClass+SubService) IL_0C1B: br => Label163 IL_0C20: Label157 IL_0C20: ldc.i4.3 IL_0C21: stloc.s 55 (ItemClass+Service) IL_0C23: br => Label164 IL_0C28: Label158 IL_0C28: ldc.i4.8 IL_0C29: stloc.s 55 (ItemClass+Service) IL_0C2B: br => Label165 IL_0C30: Label159 IL_0C30: br => Label239 IL_0C35: Label160 IL_0C35: Label161 IL_0C35: Label162 IL_0C35: Label163 IL_0C35: Label164 IL_0C35: Label165 IL_0C35: ldnull IL_0C36: stloc.s 58 (BuildingInfo) IL_0C38: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero() IL_0C3D: stloc.s 59 (UnityEngine.Vector3) IL_0C3F: ldc.i4.0 IL_0C40: stloc.s 60 (System.Int32) IL_0C42: ldc.i4.0 IL_0C43: stloc.s 61 (System.Int32) IL_0C45: ldc.i4.0 IL_0C46: stloc.s 62 (System.Int32) IL_0C48: ldc.i4.0 IL_0C49: stloc.s 63 (BuildingInfo+ZoningMode) IL_0C4B: ldc.i4.0 IL_0C4C: stloc.s 64 (System.Int32) IL_0C4E: br => Label166 IL_0C53: Label208 IL_0C53: ldloc.s 64 (System.Int32) IL_0C55: switch => Labels167,168,169,170,171,172 IL_0C72: br => Label173 IL_0C77: Label167 IL_0C77: ldloc.s 47 (BuildingInfo+ZoningMode) IL_0C79: brtrue => Label174 IL_0C7E: br => Label175 IL_0C83: Label174 IL_0C83: ldloc.s 36 (System.Int32) IL_0C85: ldloc.s 37 (System.Int32) IL_0C87: add IL_0C88: ldc.i4.1 IL_0C89: add IL_0C8A: stloc.s 60 (System.Int32) IL_0C8C: ldloc.s 45 (System.Int32) IL_0C8E: stloc.s 61 (System.Int32) IL_0C90: ldloc.s 46 (System.Int32) IL_0C92: stloc.s 62 (System.Int32) IL_0C94: ldloc.s 47 (BuildingInfo+ZoningMode) IL_0C96: stloc.s 63 (BuildingInfo+ZoningMode) IL_0C98: br => Label176 IL_0C9D: Label168 IL_0C9D: ldloc.s 52 (BuildingInfo+ZoningMode) IL_0C9F: brtrue => Label177 IL_0CA4: br => Label178 IL_0CA9: Label177 IL_0CA9: ldloc.s 43 (System.Int32) IL_0CAB: ldloc.s 44 (System.Int32) IL_0CAD: add IL_0CAE: ldc.i4.1 IL_0CAF: add IL_0CB0: stloc.s 60 (System.Int32) IL_0CB2: ldloc.s 50 (System.Int32) IL_0CB4: stloc.s 61 (System.Int32) IL_0CB6: ldloc.s 51 (System.Int32) IL_0CB8: stloc.s 62 (System.Int32) IL_0CBA: ldloc.s 52 (BuildingInfo+ZoningMode) IL_0CBC: stloc.s 63 (BuildingInfo+ZoningMode) IL_0CBE: br => Label179 IL_0CC3: Label169 IL_0CC3: ldloc.s 47 (BuildingInfo+ZoningMode) IL_0CC5: brtrue => Label180 IL_0CCA: br => Label181 IL_0CCF: Label180 IL_0CCF: ldloc.s 45 (System.Int32) IL_0CD1: ldc.i4.4 IL_0CD2: bge => Label182 IL_0CD7: br => Label183 IL_0CDC: Label182 IL_0CDC: ldloc.s 36 (System.Int32) IL_0CDE: ldloc.s 37 (System.Int32) IL_0CE0: add IL_0CE1: ldc.i4.1 IL_0CE2: add IL_0CE3: stloc.s 60 (System.Int32) IL_0CE5: ldloc.s 48 (System.Boolean) IL_0CE7: brfalse => Label184 IL_0CEC: ldc.i4.3 IL_0CED: br => Label185 IL_0CF2: Label184 IL_0CF2: ldc.i4.2 IL_0CF3: Label185 IL_0CF3: stloc.s 61 (System.Int32) IL_0CF5: ldloc.s 46 (System.Int32) IL_0CF7: stloc.s 62 (System.Int32) IL_0CF9: ldloc.s 47 (BuildingInfo+ZoningMode) IL_0CFB: stloc.s 63 (BuildingInfo+ZoningMode) IL_0CFD: br => Label186 IL_0D02: Label170 IL_0D02: ldloc.s 52 (BuildingInfo+ZoningMode) IL_0D04: brtrue => Label187 IL_0D09: br => Label188 IL_0D0E: Label187 IL_0D0E: ldloc.s 50 (System.Int32) IL_0D10: ldc.i4.4 IL_0D11: bge => Label189 IL_0D16: br => Label190 IL_0D1B: Label189 IL_0D1B: ldloc.s 43 (System.Int32) IL_0D1D: ldloc.s 44 (System.Int32) IL_0D1F: add IL_0D20: ldc.i4.1 IL_0D21: add IL_0D22: stloc.s 60 (System.Int32) IL_0D24: ldloc.s 53 (System.Boolean) IL_0D26: brfalse => Label191 IL_0D2B: ldc.i4.3 IL_0D2C: br => Label192 IL_0D31: Label191 IL_0D31: ldc.i4.2 IL_0D32: Label192 IL_0D32: stloc.s 61 (System.Int32) IL_0D34: ldloc.s 51 (System.Int32) IL_0D36: stloc.s 62 (System.Int32) IL_0D38: ldloc.s 52 (BuildingInfo+ZoningMode) IL_0D3A: stloc.s 63 (BuildingInfo+ZoningMode) IL_0D3C: br => Label193 IL_0D41: Label171 IL_0D41: ldloc.s 36 (System.Int32) IL_0D43: ldloc.s 37 (System.Int32) IL_0D45: add IL_0D46: ldc.i4.1 IL_0D47: add IL_0D48: stloc.s 60 (System.Int32) IL_0D4A: ldloc.s 45 (System.Int32) IL_0D4C: stloc.s 61 (System.Int32) IL_0D4E: ldloc.s 46 (System.Int32) IL_0D50: stloc.s 62 (System.Int32) IL_0D52: ldc.i4.0 IL_0D53: stloc.s 63 (BuildingInfo+ZoningMode) IL_0D55: br => Label194 IL_0D5A: Label172 IL_0D5A: ldloc.s 43 (System.Int32) IL_0D5C: ldloc.s 44 (System.Int32) IL_0D5E: add IL_0D5F: ldc.i4.1 IL_0D60: add IL_0D61: stloc.s 60 (System.Int32) IL_0D63: ldloc.s 50 (System.Int32) IL_0D65: stloc.s 61 (System.Int32) IL_0D67: ldloc.s 51 (System.Int32) IL_0D69: stloc.s 62 (System.Int32) IL_0D6B: ldc.i4.0 IL_0D6C: stloc.s 63 (BuildingInfo+ZoningMode) IL_0D6E: br => Label195 IL_0D73: Label173 IL_0D73: Label176 IL_0D73: Label179 IL_0D73: Label186 IL_0D73: Label193 IL_0D73: Label194 IL_0D73: Label195 IL_0D73: ldarg.0 IL_0D74: ldfld UnityEngine.Vector3 ZoneBlock::m_position IL_0D79: ldloc.s 61 (System.Int32) IL_0D7B: conv.r4 IL_0D7C: ldc.r4 0.5 IL_0D81: mul IL_0D82: ldc.r4 4 IL_0D87: sub IL_0D88: ldloc.2 IL_0D89: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_0D8E: ldloc.s 60 (System.Int32) IL_0D90: conv.r4 IL_0D91: ldc.r4 0.5 IL_0D96: mul IL_0D97: ldloc.s 5 (System.Int32) IL_0D99: conv.r4 IL_0D9A: add IL_0D9B: ldc.r4 10 IL_0DA0: sub IL_0DA1: ldloc.3 IL_0DA2: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_0DA7: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Addition(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_0DAC: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::X_Y(UnityEngine.Vector2 v) IL_0DB1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0DB6: stloc.s 59 (UnityEngine.Vector3) IL_0DB8: ldloc.s 6 (ItemClass+Zone) IL_0DBA: ldc.i4.6 IL_0DBB: bne.un => Label196 IL_0DC0: ldloc.s 59 (UnityEngine.Vector3) IL_0DC2: ldloca.s 56 (ItemClass+SubService) IL_0DC4: ldloca.s 57 (ItemClass+Level) IL_0DC6: call static System.Void ZoneBlock::GetIndustryType(UnityEngine.Vector3 position, SubService& subService, Level& level) IL_0DCB: br => Label197 IL_0DD0: Label196 IL_0DD0: ldloc.s 6 (ItemClass+Zone) IL_0DD2: ldc.i4.4 IL_0DD3: beq => Label198 IL_0DD8: ldloc.s 6 (ItemClass+Zone) IL_0DDA: ldc.i4.5 IL_0DDB: bne.un => Label199 IL_0DE0: Label198 IL_0DE0: ldloc.s 59 (UnityEngine.Vector3) IL_0DE2: ldloc.s 6 (ItemClass+Zone) IL_0DE4: ldloc.s 62 (System.Int32) IL_0DE6: ldloc.s 61 (System.Int32) IL_0DE8: ldloca.s 56 (ItemClass+SubService) IL_0DEA: ldloca.s 57 (ItemClass+Level) IL_0DEC: call static System.Void ZoneBlock::GetCommercialType(UnityEngine.Vector3 position, Zone zone, System.Int32 width, System.Int32 len, SubService& subService, Level& level) IL_0DF1: br => Label200 IL_0DF6: Label199 IL_0DF6: ldloc.s 6 (ItemClass+Zone) IL_0DF8: ldc.i4.2 IL_0DF9: beq => Label201 IL_0DFE: ldloc.s 6 (ItemClass+Zone) IL_0E00: ldc.i4.3 IL_0E01: bne.un => Label202 IL_0E06: Label201 IL_0E06: ldloc.s 59 (UnityEngine.Vector3) IL_0E08: ldloc.s 6 (ItemClass+Zone) IL_0E0A: ldloc.s 62 (System.Int32) IL_0E0C: ldloc.s 61 (System.Int32) IL_0E0E: ldloca.s 56 (ItemClass+SubService) IL_0E10: ldloca.s 57 (ItemClass+Level) IL_0E12: call static System.Void ZoneBlock::GetResidentialType(UnityEngine.Vector3 position, Zone zone, System.Int32 width, System.Int32 len, SubService& subService, Level& level) IL_0E17: br => Label203 IL_0E1C: Label202 IL_0E1C: ldloc.s 6 (ItemClass+Zone) IL_0E1E: ldc.i4.7 IL_0E1F: bne.un => Label204 IL_0E24: ldloc.s 59 (UnityEngine.Vector3) IL_0E26: ldloc.s 6 (ItemClass+Zone) IL_0E28: ldloc.s 62 (System.Int32) IL_0E2A: ldloc.s 61 (System.Int32) IL_0E2C: ldloca.s 56 (ItemClass+SubService) IL_0E2E: ldloca.s 57 (ItemClass+Level) IL_0E30: call static System.Void ZoneBlock::GetOfficeType(UnityEngine.Vector3 position, Zone zone, System.Int32 width, System.Int32 len, SubService& subService, Level& level) IL_0E35: Label197 IL_0E35: Label200 IL_0E35: Label203 IL_0E35: Label204 IL_0E35: ldloc.s 8 (DistrictManager) IL_0E37: ldloc.s 59 (UnityEngine.Vector3) IL_0E39: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3 worldPos) IL_0E3E: stloc.s 65 (System.Byte) IL_0E40: ldloc.s 8 (DistrictManager) IL_0E42: ldfld Array8`1 DistrictManager::m_districts IL_0E47: ldfld District[] Array8`1::m_buffer IL_0E4C: ldloc.s 65 (System.Byte) IL_0E4E: ldelema District IL_0E53: ldfld System.UInt16 District::m_Style IL_0E58: stloc.s 66 (System.UInt16) IL_0E5A: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0E5F: ldfld BuildingWrapper BuildingManager::m_BuildingWrapper IL_0E64: brfalse => Label205 IL_0E69: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0E6E: ldfld BuildingWrapper BuildingManager::m_BuildingWrapper IL_0E73: ldloc.s 59 (UnityEngine.Vector3) IL_0E75: ldloca.s 55 (ItemClass+Service) IL_0E77: ldloca.s 56 (ItemClass+SubService) IL_0E79: ldloca.s 57 (ItemClass+Level) IL_0E7B: ldloca.s 66 (System.UInt16) IL_0E7D: callvirt System.Void BuildingWrapper::OnCalculateSpawn(UnityEngine.Vector3 position, Service& service, SubService& subService, Level& level, System.UInt16& style) IL_0E82: Label205 IL_0E82: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0E87: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0E8C: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0E91: ldloc.s 55 (ItemClass+Service) IL_0E93: ldloc.s 56 (ItemClass+SubService) IL_0E95: ldloc.s 57 (ItemClass+Level) IL_0E97: ldloc.s 62 (System.Int32) IL_0E99: ldloc.s 61 (System.Int32) IL_0E9B: ldloc.s 63 (BuildingInfo+ZoningMode) IL_0E9D: ldloc.s 66 (System.UInt16) IL_0E9F: callvirt BuildingInfo BuildingManager::GetRandomBuildingInfo(ColossalFramework.Math.Randomizer& r, Service service, SubService subService, Level level, System.Int32 width, System.Int32 length, ZoningMode zoningMode, System.Int32 style) IL_0EA4: stloc.s 58 (BuildingInfo) IL_0EA6: ldloc.s 58 (BuildingInfo) IL_0EA8: brfalse => Label206 IL_0EAD: br => Label207 IL_0EB2: Label175 IL_0EB2: Label178 IL_0EB2: Label181 IL_0EB2: Label183 IL_0EB2: Label188 IL_0EB2: Label190 IL_0EB2: Label206 IL_0EB2: ldloc.s 64 (System.Int32) IL_0EB4: ldc.i4.1 IL_0EB5: add IL_0EB6: stloc.s 64 (System.Int32) IL_0EB8: Label166 IL_0EB8: ldloc.s 64 (System.Int32) IL_0EBA: ldc.i4.6 IL_0EBB: blt => Label208 IL_0EC0: Label207 IL_0EC0: ldloc.s 58 (BuildingInfo) IL_0EC2: brtrue => Label209 IL_0EC7: br => Label240 IL_0ECC: Label209 IL_0ECC: call static TerrainManager ColossalFramework.Singleton`1::get_instance() IL_0ED1: ldloc.s 59 (UnityEngine.Vector3) IL_0ED3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0ED8: callvirt System.Single TerrainManager::WaterLevel(UnityEngine.Vector2 position) IL_0EDD: stloc.s 67 (System.Single) IL_0EDF: ldloc.s 67 (System.Single) IL_0EE1: ldloca.s 59 (UnityEngine.Vector3) IL_0EE3: ldfld System.Single UnityEngine.Vector3::y IL_0EE8: ble.un => Label210 IL_0EED: br => Label241 IL_0EF2: Label210 IL_0EF2: call static DisasterManager ColossalFramework.Singleton`1::get_instance() IL_0EF7: ldloc.s 59 (UnityEngine.Vector3) IL_0EF9: callvirt System.Boolean DisasterManager::IsEvacuating(UnityEngine.Vector3 position) IL_0EFE: brfalse => Label211 IL_0F03: br => Label242 IL_0F08: Label211 IL_0F08: ldarg.0 IL_0F09: ldfld System.Single ZoneBlock::m_angle IL_0F0E: ldc.r4 1.570796 IL_0F13: add IL_0F14: stloc.s 68 (System.Single) IL_0F16: ldloc.s 63 (BuildingInfo+ZoningMode) IL_0F18: ldc.i4.1 IL_0F19: bne.un => Label212 IL_0F1E: ldloc.s 58 (BuildingInfo) IL_0F20: ldfld ZoningMode BuildingInfo::m_zoningMode IL_0F25: ldc.i4.2 IL_0F26: bne.un => Label213 IL_0F2B: ldloc.s 68 (System.Single) IL_0F2D: ldc.r4 1.570796 IL_0F32: sub IL_0F33: stloc.s 68 (System.Single) IL_0F35: ldloc.s 62 (System.Int32) IL_0F37: stloc.s 61 (System.Int32) IL_0F39: br => Label214 IL_0F3E: Label212 IL_0F3E: Label213 IL_0F3E: ldloc.s 63 (BuildingInfo+ZoningMode) IL_0F40: ldc.i4.2 IL_0F41: bne.un => Label215 IL_0F46: ldloc.s 58 (BuildingInfo) IL_0F48: ldfld ZoningMode BuildingInfo::m_zoningMode IL_0F4D: ldc.i4.1 IL_0F4E: bne.un => Label216 IL_0F53: ldloc.s 68 (System.Single) IL_0F55: ldc.r4 1.570796 IL_0F5A: add IL_0F5B: stloc.s 68 (System.Single) IL_0F5D: ldloc.s 62 (System.Int32) IL_0F5F: stloc.s 61 (System.Int32) IL_0F61: Label214 IL_0F61: Label215 IL_0F61: Label216 IL_0F61: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0F66: ldloca.s 69 (System.UInt16) IL_0F68: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0F6D: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0F72: ldloc.s 58 (BuildingInfo) IL_0F74: ldloc.s 59 (UnityEngine.Vector3) IL_0F76: ldloc.s 68 (System.Single) IL_0F78: ldloc.s 61 (System.Int32) IL_0F7A: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0F7F: ldfld System.UInt32 SimulationManager::m_currentBuildIndex IL_0F84: callvirt System.Boolean BuildingManager::CreateBuilding(System.UInt16& building, ColossalFramework.Math.Randomizer& randomizer, BuildingInfo info, UnityEngine.Vector3 position, System.Single angle, System.Int32 length, System.UInt32 buildIndex) IL_0F89: brfalse => Label217 IL_0F8E: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0F93: dup IL_0F94: ldfld System.UInt32 SimulationManager::m_currentBuildIndex IL_0F99: ldc.i4.1 IL_0F9A: add IL_0F9B: stfld System.UInt32 SimulationManager::m_currentBuildIndex IL_0FA0: ldloc.s 55 (ItemClass+Service) IL_0FA2: ldc.i4.1 IL_0FA3: sub IL_0FA4: switch => Labels218,219,220,221,222,223,224,225 IL_0FC9: br => Label226 IL_0FCE: Label218 IL_0FCE: ldloc.0 IL_0FCF: ldc.i4.0 IL_0FD0: ldloc.0 IL_0FD1: ldfld System.Int32 ZoneManager::m_actualResidentialDemand IL_0FD6: ldc.i4.5 IL_0FD7: sub IL_0FD8: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0FDD: stfld System.Int32 ZoneManager::m_actualResidentialDemand IL_0FE2: br => Label227 IL_0FE7: Label219 IL_0FE7: ldloc.0 IL_0FE8: ldc.i4.0 IL_0FE9: ldloc.0 IL_0FEA: ldfld System.Int32 ZoneManager::m_actualCommercialDemand IL_0FEF: ldc.i4.5 IL_0FF0: sub IL_0FF1: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0FF6: stfld System.Int32 ZoneManager::m_actualCommercialDemand IL_0FFB: br => Label228 IL_1000: Label220 IL_1000: ldloc.0 IL_1001: ldc.i4.0 IL_1002: ldloc.0 IL_1003: ldfld System.Int32 ZoneManager::m_actualWorkplaceDemand IL_1008: ldc.i4.5 IL_1009: sub IL_100A: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_100F: stfld System.Int32 ZoneManager::m_actualWorkplaceDemand IL_1014: br => Label229 IL_1019: Label225 IL_1019: ldloc.0 IL_101A: ldc.i4.0 IL_101B: ldloc.0 IL_101C: ldfld System.Int32 ZoneManager::m_actualWorkplaceDemand IL_1021: ldc.i4.5 IL_1022: sub IL_1023: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_1028: stfld System.Int32 ZoneManager::m_actualWorkplaceDemand IL_102D: br => Label230 IL_1032: Label221 IL_1032: Label222 IL_1032: Label223 IL_1032: Label224 IL_1032: Label226 IL_1032: Label227 IL_1032: Label228 IL_1032: Label229 IL_1032: Label230 IL_1032: ldloc.s 6 (ItemClass+Zone) IL_1034: ldc.i4.3 IL_1035: beq => Label231 IL_103A: ldloc.s 6 (ItemClass+Zone) IL_103C: ldc.i4.5 IL_103D: beq => Label232 IL_1042: br => Label233 IL_1047: Label231 IL_1047: Label232 IL_1047: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_104C: ldfld Array16`1 BuildingManager::m_buildings IL_1051: ldfld Building[] Array16`1::m_buffer IL_1056: ldloc.s 69 (System.UInt16) IL_1058: ldelema Building IL_105D: dup IL_105E: ldfld Flags Building::m_flags IL_1063: ldc.i4 2048 IL_1068: or IL_1069: stfld Flags Building::m_flags IL_106E: br => Label234 IL_1073: Label217 IL_1073: Label233 IL_1073: Label234 IL_1073: ldloc.0 IL_1074: ldfld System.Int16[] ZoneManager::m_goodAreaFound IL_1079: ldloc.s 6 (ItemClass+Zone) IL_107B: ldc.i4 1024 IL_1080: stelem.i2 IL_1081: // end original IL_1081: Label235 IL_1081: Label236 IL_1081: Label237 IL_1081: Label238 IL_1081: Label239 IL_1081: Label240 IL_1081: Label241 IL_1081: Label242 IL_1081: ret DONE ### Patch: virtual System.Void Data::Deserialize(ColossalFramework.IO.DataSerializer s) ### Replacement: static System.Void ZoneManager+Data::ZoneManager+Data.Deserialize_Patch0(Data this, ColossalFramework.IO.DataSerializer s) IL_0000: Local var 0: ZoneManager IL_0000: Local var 1: ZoneBlock[] IL_0000: Local var 2: System.UInt16[] IL_0000: Local var 3: System.Int32 IL_0000: Local var 4: System.Int32 IL_0000: Local var 5: System.Int32 IL_0000: Local var 6: ColossalFramework.IO.EncodedArray/UInt IL_0000: Local var 7: System.Int32 IL_0000: Local var 8: ColossalFramework.IO.EncodedArray/UInt IL_0000: Local var 9: System.Int32 IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: ColossalFramework.IO.EncodedArray/UInt IL_0000: Local var 12: System.Int32 IL_0000: Local var 13: System.Int32 IL_0000: Local var 14: System.Int32 IL_0000: Local var 15: System.Int32 IL_0000: Local var 16: System.Int32 IL_0000: Local var 17: System.Int32 IL_0000: Local var 18: System.Int32 IL_0000: // start original IL_0000: call static LoadingManager ColossalFramework.Singleton`1::get_instance() IL_0005: ldfld LoadingProfiler LoadingManager::m_loadingProfilerSimulation IL_000A: ldarg.1 IL_000B: ldstr "ZoneManager" IL_0010: callvirt System.Void LoadingProfiler::BeginDeserialize(ColossalFramework.IO.DataSerializer s, System.String name) IL_0015: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_001A: dup IL_001B: call static System.Void EightyOne2.Patches.ZoneManagerDataPatches::EnsureGridSize(ZoneManager instance) IL_0020: stloc.0 IL_0021: ldloc.0 IL_0022: ldfld Array16`1 ZoneManager::m_blocks IL_0027: ldfld ZoneBlock[] Array16`1::m_buffer IL_002C: stloc.1 IL_002D: ldloc.0 IL_002E: ldfld System.UInt16[] ZoneManager::m_zoneGrid IL_0033: stloc.2 IL_0034: ldloc.1 IL_0035: ldlen IL_0036: conv.i4 IL_0037: stloc.3 IL_0038: ldloc.2 IL_0039: ldlen IL_003A: conv.i4 IL_003B: stloc.s 4 (System.Int32) IL_003D: ldloc.0 IL_003E: ldfld Array16`1 ZoneManager::m_blocks IL_0043: callvirt System.Void Array16`1::ClearUnused() IL_0048: ldc.i4.0 IL_0049: stloc.s 5 (System.Int32) IL_004B: br => Label0 IL_0050: Label1 IL_0050: ldloc.2 IL_0051: ldloc.s 5 (System.Int32) IL_0053: ldc.i4.0 IL_0054: stelem.i2 IL_0055: ldloc.s 5 (System.Int32) IL_0057: ldc.i4.1 IL_0058: add IL_0059: stloc.s 5 (System.Int32) IL_005B: Label0 IL_005B: ldloc.s 5 (System.Int32) IL_005D: ldloc.s 4 (System.Int32) IL_005F: blt => Label1 IL_0064: ldarg.1 IL_0065: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_006A: ldc.i4 222 IL_006F: blt.un => Label2 IL_0074: ldarg.1 IL_0075: call static ColossalFramework.IO.UInt ColossalFramework.IO.UInt::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_007A: stloc.s 6 (ColossalFramework.IO.EncodedArray+UInt) IL_007C: ldc.i4.1 IL_007D: stloc.s 7 (System.Int32) IL_007F: br => Label3 IL_0084: Label4 IL_0084: ldloc.1 IL_0085: ldloc.s 7 (System.Int32) IL_0087: ldelema ZoneBlock IL_008C: ldloc.s 6 (ColossalFramework.IO.EncodedArray+UInt) IL_008E: callvirt System.UInt32 ColossalFramework.IO.UInt::Read() IL_0093: stfld System.UInt32 ZoneBlock::m_flags IL_0098: ldloc.s 7 (System.Int32) IL_009A: ldc.i4.1 IL_009B: add IL_009C: stloc.s 7 (System.Int32) IL_009E: Label3 IL_009E: ldloc.s 7 (System.Int32) IL_00A0: ldloc.3 IL_00A1: blt => Label4 IL_00A6: ldloc.s 6 (ColossalFramework.IO.EncodedArray+UInt) IL_00A8: callvirt System.Void ColossalFramework.IO.UInt::EndRead() IL_00AD: br => Label5 IL_00B2: Label2 IL_00B2: ldarg.1 IL_00B3: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_00B8: ldc.i4 205 IL_00BD: blt.un => Label6 IL_00C2: ldarg.1 IL_00C3: call static ColossalFramework.IO.UInt ColossalFramework.IO.UInt::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_00C8: stloc.s 8 (ColossalFramework.IO.EncodedArray+UInt) IL_00CA: ldc.i4.1 IL_00CB: stloc.s 9 (System.Int32) IL_00CD: br => Label7 IL_00D2: Label8 IL_00D2: ldloc.1 IL_00D3: ldloc.s 9 (System.Int32) IL_00D5: ldelema ZoneBlock IL_00DA: ldloc.s 8 (ColossalFramework.IO.EncodedArray+UInt) IL_00DC: callvirt System.UInt32 ColossalFramework.IO.UInt::Read() IL_00E1: stfld System.UInt32 ZoneBlock::m_flags IL_00E6: ldloc.s 9 (System.Int32) IL_00E8: ldc.i4.1 IL_00E9: add IL_00EA: stloc.s 9 (System.Int32) IL_00EC: Label7 IL_00EC: ldloc.s 9 (System.Int32) IL_00EE: ldc.i4 32768 IL_00F3: blt => Label8 IL_00F8: ldc.i4 32768 IL_00FD: stloc.s 10 (System.Int32) IL_00FF: br => Label9 IL_0104: Label10 IL_0104: ldloc.1 IL_0105: ldloc.s 10 (System.Int32) IL_0107: ldelema ZoneBlock IL_010C: ldc.i4.0 IL_010D: stfld System.UInt32 ZoneBlock::m_flags IL_0112: ldloc.s 10 (System.Int32) IL_0114: ldc.i4.1 IL_0115: add IL_0116: stloc.s 10 (System.Int32) IL_0118: Label9 IL_0118: ldloc.s 10 (System.Int32) IL_011A: ldloc.3 IL_011B: blt => Label10 IL_0120: ldloc.s 8 (ColossalFramework.IO.EncodedArray+UInt) IL_0122: callvirt System.Void ColossalFramework.IO.UInt::EndRead() IL_0127: br => Label11 IL_012C: Label6 IL_012C: ldarg.1 IL_012D: call static ColossalFramework.IO.UInt ColossalFramework.IO.UInt::BeginRead(ColossalFramework.IO.DataSerializer serializer) IL_0132: stloc.s 11 (ColossalFramework.IO.EncodedArray+UInt) IL_0134: ldc.i4.1 IL_0135: stloc.s 12 (System.Int32) IL_0137: br => Label12 IL_013C: Label13 IL_013C: ldloc.1 IL_013D: ldloc.s 12 (System.Int32) IL_013F: ldelema ZoneBlock IL_0144: ldloc.s 11 (ColossalFramework.IO.EncodedArray+UInt) IL_0146: callvirt System.UInt32 ColossalFramework.IO.UInt::Read() IL_014B: stfld System.UInt32 ZoneBlock::m_flags IL_0150: ldloc.s 12 (System.Int32) IL_0152: ldc.i4.1 IL_0153: add IL_0154: stloc.s 12 (System.Int32) IL_0156: Label12 IL_0156: ldloc.s 12 (System.Int32) IL_0158: ldc.i4 16384 IL_015D: blt => Label13 IL_0162: ldc.i4 16384 IL_0167: stloc.s 13 (System.Int32) IL_0169: br => Label14 IL_016E: Label15 IL_016E: ldloc.1 IL_016F: ldloc.s 13 (System.Int32) IL_0171: ldelema ZoneBlock IL_0176: ldc.i4.0 IL_0177: stfld System.UInt32 ZoneBlock::m_flags IL_017C: ldloc.s 13 (System.Int32) IL_017E: ldc.i4.1 IL_017F: add IL_0180: stloc.s 13 (System.Int32) IL_0182: Label14 IL_0182: ldloc.s 13 (System.Int32) IL_0184: ldloc.3 IL_0185: blt => Label15 IL_018A: ldloc.s 11 (ColossalFramework.IO.EncodedArray+UInt) IL_018C: callvirt System.Void ColossalFramework.IO.UInt::EndRead() IL_0191: Label5 IL_0191: Label11 IL_0191: ldc.i4.1 IL_0192: stloc.s 14 (System.Int32) IL_0194: br => Label16 IL_0199: Label25 IL_0199: ldloc.1 IL_019A: ldloc.s 14 (System.Int32) IL_019C: ldelema ZoneBlock IL_01A1: ldc.i4.0 IL_01A2: stfld System.UInt16 ZoneBlock::m_nextGridBlock IL_01A7: ldloc.1 IL_01A8: ldloc.s 14 (System.Int32) IL_01AA: ldelema ZoneBlock IL_01AF: ldfld System.UInt32 ZoneBlock::m_flags IL_01B4: brfalse => Label17 IL_01B9: ldloc.1 IL_01BA: ldloc.s 14 (System.Int32) IL_01BC: ldelema ZoneBlock IL_01C1: ldarg.1 IL_01C2: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt32() IL_01C7: stfld System.UInt32 ZoneBlock::m_buildIndex IL_01CC: ldloc.1 IL_01CD: ldloc.s 14 (System.Int32) IL_01CF: ldelema ZoneBlock IL_01D4: ldarg.1 IL_01D5: callvirt UnityEngine.Vector3 ColossalFramework.IO.DataSerializer::ReadVector3() IL_01DA: stfld UnityEngine.Vector3 ZoneBlock::m_position IL_01DF: ldloc.1 IL_01E0: ldloc.s 14 (System.Int32) IL_01E2: ldelema ZoneBlock IL_01E7: ldarg.1 IL_01E8: callvirt System.Single ColossalFramework.IO.DataSerializer::ReadFloat() IL_01ED: stfld System.Single ZoneBlock::m_angle IL_01F2: ldloc.1 IL_01F3: ldloc.s 14 (System.Int32) IL_01F5: ldelema ZoneBlock IL_01FA: ldarg.1 IL_01FB: callvirt System.UInt64 ColossalFramework.IO.DataSerializer::ReadULong64() IL_0200: stfld System.UInt64 ZoneBlock::m_valid IL_0205: ldloc.1 IL_0206: ldloc.s 14 (System.Int32) IL_0208: ldelema ZoneBlock IL_020D: ldarg.1 IL_020E: callvirt System.UInt64 ColossalFramework.IO.DataSerializer::ReadULong64() IL_0213: stfld System.UInt64 ZoneBlock::m_shared IL_0218: ldloc.1 IL_0219: ldloc.s 14 (System.Int32) IL_021B: ldelema ZoneBlock IL_0220: ldarg.1 IL_0221: callvirt System.UInt64 ColossalFramework.IO.DataSerializer::ReadULong64() IL_0226: stfld System.UInt64 ZoneBlock::m_occupied1 IL_022B: ldarg.1 IL_022C: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_0231: ldc.i4 138 IL_0236: blt.un => Label18 IL_023B: ldloc.1 IL_023C: ldloc.s 14 (System.Int32) IL_023E: ldelema ZoneBlock IL_0243: ldarg.1 IL_0244: callvirt System.UInt64 ColossalFramework.IO.DataSerializer::ReadULong64() IL_0249: stfld System.UInt64 ZoneBlock::m_occupied2 IL_024E: br => Label19 IL_0253: Label18 IL_0253: ldloc.1 IL_0254: ldloc.s 14 (System.Int32) IL_0256: ldelema ZoneBlock IL_025B: ldc.i4.0 IL_025C: conv.i8 IL_025D: stfld System.UInt64 ZoneBlock::m_occupied2 IL_0262: Label19 IL_0262: ldarg.1 IL_0263: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_0268: ldc.i4.4 IL_0269: blt.un => Label20 IL_026E: ldloc.1 IL_026F: ldloc.s 14 (System.Int32) IL_0271: ldelema ZoneBlock IL_0276: ldarg.1 IL_0277: callvirt System.UInt64 ColossalFramework.IO.DataSerializer::ReadULong64() IL_027C: stfld System.UInt64 ZoneBlock::m_zone1 IL_0281: ldloc.1 IL_0282: ldloc.s 14 (System.Int32) IL_0284: ldelema ZoneBlock IL_0289: ldarg.1 IL_028A: callvirt System.UInt64 ColossalFramework.IO.DataSerializer::ReadULong64() IL_028F: stfld System.UInt64 ZoneBlock::m_zone2 IL_0294: br => Label21 IL_0299: Label20 IL_0299: ldarg.1 IL_029A: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt32() IL_029F: pop IL_02A0: ldarg.1 IL_02A1: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt32() IL_02A6: pop IL_02A7: ldloc.1 IL_02A8: ldloc.s 14 (System.Int32) IL_02AA: ldelema ZoneBlock IL_02AF: ldc.i4.0 IL_02B0: conv.i8 IL_02B1: stfld System.UInt64 ZoneBlock::m_zone1 IL_02B6: ldloc.1 IL_02B7: ldloc.s 14 (System.Int32) IL_02B9: ldelema ZoneBlock IL_02BE: ldc.i4.0 IL_02BF: conv.i8 IL_02C0: stfld System.UInt64 ZoneBlock::m_zone2 IL_02C5: Label21 IL_02C5: ldarg.1 IL_02C6: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_02CB: ldc.i4 115020 IL_02D0: blt.un => Label22 IL_02D5: ldloc.1 IL_02D6: ldloc.s 14 (System.Int32) IL_02D8: ldelema ZoneBlock IL_02DD: ldarg.1 IL_02DE: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::ReadUInt16() IL_02E3: conv.u2 IL_02E4: stfld System.UInt16 ZoneBlock::m_segment IL_02E9: br => Label23 IL_02EE: Label22 IL_02EE: ldloc.1 IL_02EF: ldloc.s 14 (System.Int32) IL_02F1: ldelema ZoneBlock IL_02F6: ldc.i4.0 IL_02F7: stfld System.UInt16 ZoneBlock::m_segment IL_02FC: Label23 IL_02FC: ldloc.0 IL_02FD: ldloc.s 14 (System.Int32) IL_02FF: conv.u2 IL_0300: ldloc.1 IL_0301: ldloc.s 14 (System.Int32) IL_0303: ldelema ZoneBlock IL_0308: callvirt System.Void ZoneManager::InitializeBlock(System.UInt16 block, ZoneBlock& data) IL_030D: br => Label24 IL_0312: Label17 IL_0312: ldloc.1 IL_0313: ldloc.s 14 (System.Int32) IL_0315: ldelema ZoneBlock IL_031A: ldc.i4.0 IL_031B: stfld System.UInt32 ZoneBlock::m_buildIndex IL_0320: ldloc.1 IL_0321: ldloc.s 14 (System.Int32) IL_0323: ldelema ZoneBlock IL_0328: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero() IL_032D: stfld UnityEngine.Vector3 ZoneBlock::m_position IL_0332: ldloc.1 IL_0333: ldloc.s 14 (System.Int32) IL_0335: ldelema ZoneBlock IL_033A: ldc.r4 0 IL_033F: stfld System.Single ZoneBlock::m_angle IL_0344: ldloc.1 IL_0345: ldloc.s 14 (System.Int32) IL_0347: ldelema ZoneBlock IL_034C: ldc.i4.0 IL_034D: conv.i8 IL_034E: stfld System.UInt64 ZoneBlock::m_valid IL_0353: ldloc.1 IL_0354: ldloc.s 14 (System.Int32) IL_0356: ldelema ZoneBlock IL_035B: ldc.i4.0 IL_035C: conv.i8 IL_035D: stfld System.UInt64 ZoneBlock::m_shared IL_0362: ldloc.1 IL_0363: ldloc.s 14 (System.Int32) IL_0365: ldelema ZoneBlock IL_036A: ldc.i4.0 IL_036B: conv.i8 IL_036C: stfld System.UInt64 ZoneBlock::m_occupied1 IL_0371: ldloc.1 IL_0372: ldloc.s 14 (System.Int32) IL_0374: ldelema ZoneBlock IL_0379: ldc.i4.0 IL_037A: conv.i8 IL_037B: stfld System.UInt64 ZoneBlock::m_occupied2 IL_0380: ldloc.1 IL_0381: ldloc.s 14 (System.Int32) IL_0383: ldelema ZoneBlock IL_0388: ldc.i4.0 IL_0389: conv.i8 IL_038A: stfld System.UInt64 ZoneBlock::m_zone1 IL_038F: ldloc.1 IL_0390: ldloc.s 14 (System.Int32) IL_0392: ldelema ZoneBlock IL_0397: ldc.i4.0 IL_0398: conv.i8 IL_0399: stfld System.UInt64 ZoneBlock::m_zone2 IL_039E: ldloc.1 IL_039F: ldloc.s 14 (System.Int32) IL_03A1: ldelema ZoneBlock IL_03A6: ldc.i4.0 IL_03A7: stfld System.UInt16 ZoneBlock::m_segment IL_03AC: ldloc.0 IL_03AD: ldfld Array16`1 ZoneManager::m_blocks IL_03B2: ldloc.s 14 (System.Int32) IL_03B4: conv.u2 IL_03B5: callvirt System.Void Array16`1::ReleaseItem(System.UInt16 item) IL_03BA: Label24 IL_03BA: ldloc.s 14 (System.Int32) IL_03BC: ldc.i4.1 IL_03BD: add IL_03BE: stloc.s 14 (System.Int32) IL_03C0: Label16 IL_03C0: ldloc.s 14 (System.Int32) IL_03C2: ldloc.3 IL_03C3: blt => Label25 IL_03C8: ldarg.1 IL_03C9: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_03CE: ldc.i4.s 74 IL_03D0: blt.un => Label26 IL_03D5: ldloc.0 IL_03D6: ldarg.1 IL_03D7: callvirt System.Int32 ColossalFramework.IO.DataSerializer::ReadInt8() IL_03DC: stfld System.Int32 ZoneManager::m_residentialDemand IL_03E1: ldloc.0 IL_03E2: ldarg.1 IL_03E3: callvirt System.Int32 ColossalFramework.IO.DataSerializer::ReadInt8() IL_03E8: stfld System.Int32 ZoneManager::m_commercialDemand IL_03ED: ldloc.0 IL_03EE: ldarg.1 IL_03EF: callvirt System.Int32 ColossalFramework.IO.DataSerializer::ReadInt8() IL_03F4: stfld System.Int32 ZoneManager::m_workplaceDemand IL_03F9: br => Label27 IL_03FE: Label26 IL_03FE: ldloc.0 IL_03FF: ldc.i4.s 50 IL_0401: stfld System.Int32 ZoneManager::m_residentialDemand IL_0406: ldloc.0 IL_0407: ldc.i4.s 50 IL_0409: stfld System.Int32 ZoneManager::m_commercialDemand IL_040E: ldloc.0 IL_040F: ldc.i4.s 50 IL_0411: stfld System.Int32 ZoneManager::m_workplaceDemand IL_0416: Label27 IL_0416: ldarg.1 IL_0417: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_041C: ldc.i4 168 IL_0421: blt.un => Label28 IL_0426: ldloc.0 IL_0427: ldarg.1 IL_0428: callvirt System.Int32 ColossalFramework.IO.DataSerializer::ReadInt8() IL_042D: stfld System.Int32 ZoneManager::m_actualResidentialDemand IL_0432: ldloc.0 IL_0433: ldarg.1 IL_0434: callvirt System.Int32 ColossalFramework.IO.DataSerializer::ReadInt8() IL_0439: stfld System.Int32 ZoneManager::m_actualCommercialDemand IL_043E: ldloc.0 IL_043F: ldarg.1 IL_0440: callvirt System.Int32 ColossalFramework.IO.DataSerializer::ReadInt8() IL_0445: stfld System.Int32 ZoneManager::m_actualWorkplaceDemand IL_044A: br => Label29 IL_044F: Label28 IL_044F: ldloc.0 IL_0450: ldloc.0 IL_0451: ldfld System.Int32 ZoneManager::m_residentialDemand IL_0456: stfld System.Int32 ZoneManager::m_actualResidentialDemand IL_045B: ldloc.0 IL_045C: ldloc.0 IL_045D: ldfld System.Int32 ZoneManager::m_commercialDemand IL_0462: stfld System.Int32 ZoneManager::m_actualCommercialDemand IL_0467: ldloc.0 IL_0468: ldloc.0 IL_0469: ldfld System.Int32 ZoneManager::m_workplaceDemand IL_046E: stfld System.Int32 ZoneManager::m_actualWorkplaceDemand IL_0473: Label29 IL_0473: ldarg.1 IL_0474: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_0479: ldc.i4 194 IL_047E: blt.un => Label30 IL_0483: ldc.i4.0 IL_0484: stloc.s 15 (System.Int32) IL_0486: br => Label31 IL_048B: Label32 IL_048B: ldloc.0 IL_048C: ldfld System.Int16[] ZoneManager::m_goodAreaFound IL_0491: ldloc.s 15 (System.Int32) IL_0493: ldarg.1 IL_0494: callvirt System.Int32 ColossalFramework.IO.DataSerializer::ReadInt16() IL_0499: conv.i2 IL_049A: stelem.i2 IL_049B: ldloc.s 15 (System.Int32) IL_049D: ldc.i4.1 IL_049E: add IL_049F: stloc.s 15 (System.Int32) IL_04A1: Label31 IL_04A1: ldloc.s 15 (System.Int32) IL_04A3: ldc.i4.8 IL_04A4: blt => Label32 IL_04A9: br => Label33 IL_04AE: Label30 IL_04AE: ldc.i4.0 IL_04AF: stloc.s 16 (System.Int32) IL_04B1: br => Label34 IL_04B6: Label35 IL_04B6: ldloc.0 IL_04B7: ldfld System.Int16[] ZoneManager::m_goodAreaFound IL_04BC: ldloc.s 16 (System.Int32) IL_04BE: ldc.i4.0 IL_04BF: stelem.i2 IL_04C0: ldloc.s 16 (System.Int32) IL_04C2: ldc.i4.1 IL_04C3: add IL_04C4: stloc.s 16 (System.Int32) IL_04C6: Label34 IL_04C6: ldloc.s 16 (System.Int32) IL_04C8: ldc.i4.8 IL_04C9: blt => Label35 IL_04CE: Label33 IL_04CE: ldarg.1 IL_04CF: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_04D4: ldc.i4.s 82 IL_04D6: blt.un => Label36 IL_04DB: ldc.i4.0 IL_04DC: stloc.s 17 (System.Int32) IL_04DE: br => Label37 IL_04E3: Label38 IL_04E3: ldloc.0 IL_04E4: ldfld ZoneTypeGuide[] ZoneManager::m_zoneNotUsed IL_04E9: ldloc.s 17 (System.Int32) IL_04EB: ldarg.1 IL_04EC: callvirt ZoneTypeGuide ColossalFramework.IO.DataSerializer::ReadObject() IL_04F1: stelem.ref IL_04F2: ldloc.s 17 (System.Int32) IL_04F4: ldc.i4.1 IL_04F5: add IL_04F6: stloc.s 17 (System.Int32) IL_04F8: Label37 IL_04F8: ldloc.s 17 (System.Int32) IL_04FA: ldc.i4.8 IL_04FB: blt => Label38 IL_0500: ldloc.0 IL_0501: ldarg.1 IL_0502: callvirt ZoneTypeGuide ColossalFramework.IO.DataSerializer::ReadObject() IL_0507: stfld ZoneTypeGuide ZoneManager::m_zoneDemandResidential IL_050C: ldloc.0 IL_050D: ldarg.1 IL_050E: callvirt ZoneTypeGuide ColossalFramework.IO.DataSerializer::ReadObject() IL_0513: stfld ZoneTypeGuide ZoneManager::m_zoneDemandCommercial IL_0518: ldloc.0 IL_0519: ldarg.1 IL_051A: callvirt ZoneTypeGuide ColossalFramework.IO.DataSerializer::ReadObject() IL_051F: stfld ZoneTypeGuide ZoneManager::m_zoneDemandWorkplace IL_0524: br => Label39 IL_0529: Label36 IL_0529: ldc.i4.0 IL_052A: stloc.s 18 (System.Int32) IL_052C: br => Label40 IL_0531: Label41 IL_0531: ldloc.0 IL_0532: ldfld ZoneTypeGuide[] ZoneManager::m_zoneNotUsed IL_0537: ldloc.s 18 (System.Int32) IL_0539: ldnull IL_053A: stelem.ref IL_053B: ldloc.s 18 (System.Int32) IL_053D: ldc.i4.1 IL_053E: add IL_053F: stloc.s 18 (System.Int32) IL_0541: Label40 IL_0541: ldloc.s 18 (System.Int32) IL_0543: ldc.i4.8 IL_0544: blt => Label41 IL_0549: ldloc.0 IL_054A: ldnull IL_054B: stfld ZoneTypeGuide ZoneManager::m_zoneDemandResidential IL_0550: ldloc.0 IL_0551: ldnull IL_0552: stfld ZoneTypeGuide ZoneManager::m_zoneDemandCommercial IL_0557: ldloc.0 IL_0558: ldnull IL_0559: stfld ZoneTypeGuide ZoneManager::m_zoneDemandWorkplace IL_055E: Label39 IL_055E: ldarg.1 IL_055F: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_0564: ldc.i4 134 IL_0569: blt.un => Label42 IL_056E: ldloc.0 IL_056F: ldarg.1 IL_0570: callvirt GenericGuide ColossalFramework.IO.DataSerializer::ReadObject() IL_0575: stfld GenericGuide ZoneManager::m_optionsNotUsed IL_057A: br => Label43 IL_057F: Label42 IL_057F: ldloc.0 IL_0580: ldnull IL_0581: stfld GenericGuide ZoneManager::m_optionsNotUsed IL_0586: Label43 IL_0586: ldarg.1 IL_0587: callvirt System.UInt32 ColossalFramework.IO.DataSerializer::get_version() IL_058C: ldc.i4 160 IL_0591: blt.un => Label44 IL_0596: ldloc.0 IL_0597: ldarg.1 IL_0598: callvirt GenericGuide ColossalFramework.IO.DataSerializer::ReadObject() IL_059D: stfld GenericGuide ZoneManager::m_zonesNotUsed IL_05A2: br => Label45 IL_05A7: Label44 IL_05A7: ldloc.0 IL_05A8: ldnull IL_05A9: stfld GenericGuide ZoneManager::m_zonesNotUsed IL_05AE: Label45 IL_05AE: call static LoadingManager ColossalFramework.Singleton`1::get_instance() IL_05B3: ldfld LoadingProfiler LoadingManager::m_loadingProfilerSimulation IL_05B8: ldarg.1 IL_05B9: ldstr "ZoneManager" IL_05BE: callvirt System.Void LoadingProfiler::EndDeserialize(ColossalFramework.IO.DataSerializer s, System.String name) IL_05C3: // end original IL_05C3: ret DONE ### Patch: virtual System.Void ZoneManager::Awake() ### Replacement: static System.Void ZoneManager::ZoneManager.Awake_Patch0(ZoneManager this) IL_0000: Local var 0: System.UInt16 IL_0000: // start original IL_0000: ldarg.0 IL_0001: call virtual System.Void SimulationManagerBase`2::Awake() IL_0006: ldarg.0 IL_0007: ldc.i4 49152 IL_000C: newobj System.Void Array16`1::.ctor(System.UInt32 arraySize) IL_0011: stfld Array16`1 ZoneManager::m_blocks IL_0016: ldarg.0 IL_0017: newobj System.Void FastList`1::.ctor() IL_001C: stfld FastList`1 ZoneManager::m_cachedBlocks IL_0021: ldarg.0 IL_0022: ldc.i4 768 IL_0027: newarr System.UInt64 IL_002C: stfld System.UInt64[] ZoneManager::m_updatedBlocks IL_0031: ldarg.0 IL_0032: ldc.i4 72900 IL_0037: newarr System.UInt16 IL_003C: stfld System.UInt16[] ZoneManager::m_zoneGrid IL_0041: ldarg.0 IL_0042: ldc.i4.s 13 IL_0044: newarr System.Int32 IL_0049: stfld System.Int32[] ZoneManager::m_tmpXBuffer IL_004E: ldarg.0 IL_004F: ldc.i4.8 IL_0050: newarr ZoneTypeGuide IL_0055: stfld ZoneTypeGuide[] ZoneManager::m_zoneNotUsed IL_005A: ldarg.0 IL_005B: ldc.i4.8 IL_005C: newarr System.Int16 IL_0061: stfld System.Int16[] ZoneManager::m_goodAreaFound IL_0066: call static LoadingManager ColossalFramework.Singleton`1::get_instance() IL_006B: ldarg.0 IL_006C: ldftn System.Void ZoneManager::CreateRelay() IL_0072: newobj System.Void MetaDataReadyHandler::.ctor(System.Object object, System.IntPtr method) IL_0077: callvirt System.Void LoadingManager::add_m_metaDataReady(MetaDataReadyHandler value) IL_007C: call static LoadingManager ColossalFramework.Singleton`1::get_instance() IL_0081: ldarg.0 IL_0082: ldftn System.Void ZoneManager::ReleaseRelay() IL_0088: newobj System.Void LevelUnloadedHandler::.ctor(System.Object object, System.IntPtr method) IL_008D: callvirt System.Void LoadingManager::add_m_levelUnloaded(LevelUnloadedHandler value) IL_0092: ldarg.0 IL_0093: ldfld Array16`1 ZoneManager::m_blocks IL_0098: ldloca.s 0 (System.UInt16) IL_009A: callvirt System.Boolean Array16`1::CreateItem(System.UInt16& item) IL_009F: pop IL_00A0: // end original IL_00A0: ret DONE ### Patch: System.Boolean ZoneManager::CheckSpace(UnityEngine.Vector3 position, System.Single angle, System.Int32 width, System.Int32 length, System.Int32& offset) ### Replacement: static System.Boolean ZoneManager::ZoneManager.CheckSpace_Patch0(ZoneManager this, UnityEngine.Vector3 position, System.Single angle, System.Int32 width, System.Int32 length, System.Int32& offset) IL_0000: Local var 0: System.Single IL_0000: Local var 1: System.Single IL_0000: Local var 2: System.Single IL_0000: Local var 3: System.Single IL_0000: Local var 4: System.Single IL_0000: Local var 5: System.UInt64 IL_0000: Local var 6: System.UInt64 IL_0000: Local var 7: System.UInt64 IL_0000: Local var 8: System.UInt64 IL_0000: Local var 9: System.Int32 IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Int32 IL_0000: Local var 12: System.Int32 IL_0000: Local var 13: System.Int32 IL_0000: Local var 14: System.Int32 IL_0000: Local var 15: System.UInt16 IL_0000: Local var 16: System.Int32 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Boolean IL_0000: Local var 20: System.Boolean IL_0000: Local var 21: System.Boolean IL_0000: Local var 22: System.Int32 IL_0000: Local var 23: System.Int32 IL_0000: Local var 24: System.Boolean IL_0000: // start original IL_0000: ldc.r4 72 IL_0005: ldarg.3 IL_0006: ldarg.s 4 IL_0008: add IL_0009: conv.r4 IL_000A: ldc.r4 4 IL_000F: mul IL_0010: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0015: ldc.r4 6 IL_001A: add IL_001B: stloc.0 IL_001C: ldarga.s 1 IL_001E: ldfld System.Single UnityEngine.Vector3::x IL_0023: ldloc.0 IL_0024: sub IL_0025: stloc.1 IL_0026: ldarga.s 1 IL_0028: ldfld System.Single UnityEngine.Vector3::z IL_002D: ldloc.0 IL_002E: sub IL_002F: stloc.2 IL_0030: ldarga.s 1 IL_0032: ldfld System.Single UnityEngine.Vector3::x IL_0037: ldloc.0 IL_0038: add IL_0039: stloc.3 IL_003A: ldarga.s 1 IL_003C: ldfld System.Single UnityEngine.Vector3::z IL_0041: ldloc.0 IL_0042: add IL_0043: stloc.s 4 (System.Single) IL_0045: ldc.i4.0 IL_0046: conv.i8 IL_0047: stloc.s 5 (System.UInt64) IL_0049: ldc.i4.0 IL_004A: conv.i8 IL_004B: stloc.s 6 (System.UInt64) IL_004D: ldc.i4.0 IL_004E: conv.i8 IL_004F: stloc.s 7 (System.UInt64) IL_0051: ldc.i4.0 IL_0052: conv.i8 IL_0053: stloc.s 8 (System.UInt64) IL_0055: ldloc.1 IL_0056: ldc.r4 46 IL_005B: sub IL_005C: ldc.r4 64 IL_0061: div IL_0062: ldc.r4 135 IL_0067: add IL_0068: conv.i4 IL_0069: ldc.i4.0 IL_006A: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_006F: stloc.s 9 (System.Int32) IL_0071: ldloc.2 IL_0072: ldc.r4 46 IL_0077: sub IL_0078: ldc.r4 64 IL_007D: div IL_007E: ldc.r4 135 IL_0083: add IL_0084: conv.i4 IL_0085: ldc.i4.0 IL_0086: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_008B: stloc.s 10 (System.Int32) IL_008D: ldloc.3 IL_008E: ldc.r4 46 IL_0093: add IL_0094: ldc.r4 64 IL_0099: div IL_009A: ldc.r4 135 IL_009F: add IL_00A0: conv.i4 IL_00A1: ldc.i4 269 IL_00A6: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_00AB: stloc.s 11 (System.Int32) IL_00AD: ldloc.s 4 (System.Single) IL_00AF: ldc.r4 46 IL_00B4: add IL_00B5: ldc.r4 64 IL_00BA: div IL_00BB: ldc.r4 135 IL_00C0: add IL_00C1: conv.i4 IL_00C2: ldc.i4 269 IL_00C7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_00CC: stloc.s 12 (System.Int32) IL_00CE: ldloc.s 10 (System.Int32) IL_00D0: stloc.s 13 (System.Int32) IL_00D2: br => Label0 IL_00D7: Label8 IL_00D7: ldloc.s 9 (System.Int32) IL_00D9: stloc.s 14 (System.Int32) IL_00DB: br => Label1 IL_00E0: Label7 IL_00E0: ldarg.0 IL_00E1: ldfld System.UInt16[] ZoneManager::m_zoneGrid IL_00E6: ldloc.s 13 (System.Int32) IL_00E8: ldc.i4 270 IL_00ED: mul IL_00EE: ldloc.s 14 (System.Int32) IL_00F0: add IL_00F1: ldelem.u2 IL_00F2: stloc.s 15 (System.UInt16) IL_00F4: ldc.i4.0 IL_00F5: stloc.s 16 (System.Int32) IL_00F7: br => Label2 IL_00FC: Label6 IL_00FC: ldarg.0 IL_00FD: ldfld Array16`1 ZoneManager::m_blocks IL_0102: ldfld ZoneBlock[] Array16`1::m_buffer IL_0107: ldloc.s 15 (System.UInt16) IL_0109: ldelema ZoneBlock IL_010E: ldfld UnityEngine.Vector3 ZoneBlock::m_position IL_0113: stloc.s 17 (UnityEngine.Vector3) IL_0115: ldloc.1 IL_0116: ldc.r4 46 IL_011B: sub IL_011C: ldloca.s 17 (UnityEngine.Vector3) IL_011E: ldfld System.Single UnityEngine.Vector3::x IL_0123: sub IL_0124: ldloc.2 IL_0125: ldc.r4 46 IL_012A: sub IL_012B: ldloca.s 17 (UnityEngine.Vector3) IL_012D: ldfld System.Single UnityEngine.Vector3::z IL_0132: sub IL_0133: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0138: ldloca.s 17 (UnityEngine.Vector3) IL_013A: ldfld System.Single UnityEngine.Vector3::x IL_013F: ldloc.3 IL_0140: sub IL_0141: ldc.r4 46 IL_0146: sub IL_0147: ldloca.s 17 (UnityEngine.Vector3) IL_0149: ldfld System.Single UnityEngine.Vector3::z IL_014E: ldloc.s 4 (System.Single) IL_0150: sub IL_0151: ldc.r4 46 IL_0156: sub IL_0157: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_015C: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0161: stloc.s 18 (System.Single) IL_0163: ldloc.s 18 (System.Single) IL_0165: ldc.r4 0 IL_016A: bge.un => Label3 IL_016F: ldarg.0 IL_0170: ldloc.s 15 (System.UInt16) IL_0172: ldarg.1 IL_0173: ldarg.2 IL_0174: ldarg.3 IL_0175: ldarg.s 4 IL_0177: ldloca.s 5 (System.UInt64) IL_0179: ldloca.s 6 (System.UInt64) IL_017B: ldloca.s 7 (System.UInt64) IL_017D: ldloca.s 8 (System.UInt64) IL_017F: call System.Void ZoneManager::CheckSpace(System.UInt16 block, UnityEngine.Vector3 position, System.Single angle, System.Int32 width, System.Int32 length, System.UInt64& space1, System.UInt64& space2, System.UInt64& space3, System.UInt64& space4) IL_0184: Label3 IL_0184: ldarg.0 IL_0185: ldfld Array16`1 ZoneManager::m_blocks IL_018A: ldfld ZoneBlock[] Array16`1::m_buffer IL_018F: ldloc.s 15 (System.UInt16) IL_0191: ldelema ZoneBlock IL_0196: ldfld System.UInt16 ZoneBlock::m_nextGridBlock IL_019B: stloc.s 15 (System.UInt16) IL_019D: ldloc.s 16 (System.Int32) IL_019F: ldc.i4.1 IL_01A0: add IL_01A1: dup IL_01A2: stloc.s 16 (System.Int32) IL_01A4: ldc.i4 49152 IL_01A9: blt => Label4 IL_01AE: ldc.i4.1 IL_01AF: ldstr "Invalid list detected!\n" IL_01B4: call static System.String System.Environment::get_StackTrace() IL_01B9: call static System.String System.String::Concat(System.String str0, System.String str1) IL_01BE: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_01C3: br => Label5 IL_01C8: Label2 IL_01C8: Label4 IL_01C8: ldloc.s 15 (System.UInt16) IL_01CA: brtrue => Label6 IL_01CF: Label5 IL_01CF: ldloc.s 14 (System.Int32) IL_01D1: ldc.i4.1 IL_01D2: add IL_01D3: stloc.s 14 (System.Int32) IL_01D5: Label1 IL_01D5: ldloc.s 14 (System.Int32) IL_01D7: ldloc.s 11 (System.Int32) IL_01D9: ble => Label7 IL_01DE: ldloc.s 13 (System.Int32) IL_01E0: ldc.i4.1 IL_01E1: add IL_01E2: stloc.s 13 (System.Int32) IL_01E4: Label0 IL_01E4: ldloc.s 13 (System.Int32) IL_01E6: ldloc.s 12 (System.Int32) IL_01E8: ble => Label8 IL_01ED: ldc.i4.1 IL_01EE: stloc.s 19 (System.Boolean) IL_01F0: ldc.i4.0 IL_01F1: stloc.s 20 (System.Boolean) IL_01F3: ldc.i4.0 IL_01F4: stloc.s 21 (System.Boolean) IL_01F6: ldc.i4.0 IL_01F7: stloc.s 22 (System.Int32) IL_01F9: br => Label9 IL_01FE: Label21 IL_01FE: ldc.i4.0 IL_01FF: stloc.s 23 (System.Int32) IL_0201: br => Label10 IL_0206: Label20 IL_0206: ldloc.s 22 (System.Int32) IL_0208: ldc.i4.4 IL_0209: bge => Label11 IL_020E: ldloc.s 5 (System.UInt64) IL_0210: ldc.i4.1 IL_0211: conv.i8 IL_0212: ldloc.s 22 (System.Int32) IL_0214: ldc.i4.4 IL_0215: shl IL_0216: ldloc.s 23 (System.Int32) IL_0218: or IL_0219: ldc.i4.s 63 IL_021B: and IL_021C: shl IL_021D: and IL_021E: ldc.i4.0 IL_021F: conv.i8 IL_0220: ceq IL_0222: ldc.i4.0 IL_0223: ceq IL_0225: stloc.s 24 (System.Boolean) IL_0227: br => Label12 IL_022C: Label11 IL_022C: ldloc.s 22 (System.Int32) IL_022E: ldc.i4.8 IL_022F: bge => Label13 IL_0234: ldloc.s 6 (System.UInt64) IL_0236: ldc.i4.1 IL_0237: conv.i8 IL_0238: ldloc.s 22 (System.Int32) IL_023A: ldc.i4.4 IL_023B: sub IL_023C: ldc.i4.4 IL_023D: shl IL_023E: ldloc.s 23 (System.Int32) IL_0240: or IL_0241: ldc.i4.s 63 IL_0243: and IL_0244: shl IL_0245: and IL_0246: ldc.i4.0 IL_0247: conv.i8 IL_0248: ceq IL_024A: ldc.i4.0 IL_024B: ceq IL_024D: stloc.s 24 (System.Boolean) IL_024F: br => Label14 IL_0254: Label13 IL_0254: ldloc.s 22 (System.Int32) IL_0256: ldc.i4.s 12 IL_0258: bge => Label15 IL_025D: ldloc.s 7 (System.UInt64) IL_025F: ldc.i4.1 IL_0260: conv.i8 IL_0261: ldloc.s 22 (System.Int32) IL_0263: ldc.i4.8 IL_0264: sub IL_0265: ldc.i4.4 IL_0266: shl IL_0267: ldloc.s 23 (System.Int32) IL_0269: or IL_026A: ldc.i4.s 63 IL_026C: and IL_026D: shl IL_026E: and IL_026F: ldc.i4.0 IL_0270: conv.i8 IL_0271: ceq IL_0273: ldc.i4.0 IL_0274: ceq IL_0276: stloc.s 24 (System.Boolean) IL_0278: br => Label16 IL_027D: Label15 IL_027D: ldloc.s 8 (System.UInt64) IL_027F: ldc.i4.1 IL_0280: conv.i8 IL_0281: ldloc.s 22 (System.Int32) IL_0283: ldc.i4.s 12 IL_0285: sub IL_0286: ldc.i4.4 IL_0287: shl IL_0288: ldloc.s 23 (System.Int32) IL_028A: or IL_028B: ldc.i4.s 63 IL_028D: and IL_028E: shl IL_028F: and IL_0290: ldc.i4.0 IL_0291: conv.i8 IL_0292: ceq IL_0294: ldc.i4.0 IL_0295: ceq IL_0297: stloc.s 24 (System.Boolean) IL_0299: Label12 IL_0299: Label14 IL_0299: Label16 IL_0299: ldloc.s 24 (System.Boolean) IL_029B: brtrue => Label17 IL_02A0: ldc.i4.0 IL_02A1: stloc.s 19 (System.Boolean) IL_02A3: ldloc.s 23 (System.Int32) IL_02A5: ldarg.3 IL_02A6: ldc.i4.1 IL_02A7: shr IL_02A8: bge => Label18 IL_02AD: ldc.i4.1 IL_02AE: stloc.s 20 (System.Boolean) IL_02B0: Label18 IL_02B0: ldloc.s 23 (System.Int32) IL_02B2: ldarg.3 IL_02B3: ldc.i4.1 IL_02B4: add IL_02B5: ldc.i4.1 IL_02B6: shr IL_02B7: blt => Label19 IL_02BC: ldc.i4.1 IL_02BD: stloc.s 21 (System.Boolean) IL_02BF: Label17 IL_02BF: Label19 IL_02BF: ldloc.s 23 (System.Int32) IL_02C1: ldc.i4.1 IL_02C2: add IL_02C3: stloc.s 23 (System.Int32) IL_02C5: Label10 IL_02C5: ldloc.s 23 (System.Int32) IL_02C7: ldarg.3 IL_02C8: blt => Label20 IL_02CD: ldloc.s 22 (System.Int32) IL_02CF: ldc.i4.1 IL_02D0: add IL_02D1: stloc.s 22 (System.Int32) IL_02D3: Label9 IL_02D3: ldloc.s 22 (System.Int32) IL_02D5: ldarg.s 4 IL_02D7: blt => Label21 IL_02DC: ldloc.s 20 (System.Boolean) IL_02DE: ldloc.s 21 (System.Boolean) IL_02E0: bne.un => Label22 IL_02E5: ldarg.s 5 IL_02E7: ldc.i4.0 IL_02E8: stind.i4 IL_02E9: br => Label23 IL_02EE: Label22 IL_02EE: ldloc.s 20 (System.Boolean) IL_02F0: brfalse => Label24 IL_02F5: ldarg.s 5 IL_02F7: ldc.i4.1 IL_02F8: stind.i4 IL_02F9: br => Label25 IL_02FE: Label24 IL_02FE: ldloc.s 21 (System.Boolean) IL_0300: brfalse => Label26 IL_0305: ldarg.s 5 IL_0307: ldc.i4.m1 IL_0308: stind.i4 IL_0309: br => Label27 IL_030E: Label26 IL_030E: ldarg.s 5 IL_0310: ldc.i4.0 IL_0311: stind.i4 IL_0312: Label23 IL_0312: Label25 IL_0312: Label27 IL_0312: ldloc.s 19 (System.Boolean) IL_0314: // end original IL_0314: ret DONE ### Patch: System.Void ZoneManager::InitializeBlock(System.UInt16 block, ZoneBlock& data) ### Replacement: static System.Void ZoneManager::ZoneManager.InitializeBlock_Patch0(ZoneManager this, System.UInt16 block, ZoneBlock& data) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: System.Int32 IL_0000: Local var 2: System.Int32 IL_0000: // start original IL_0000: ldarg.2 IL_0001: ldflda UnityEngine.Vector3 ZoneBlock::m_position IL_0006: ldfld System.Single UnityEngine.Vector3::x IL_000B: ldc.r4 64 IL_0010: div IL_0011: ldc.r4 135 IL_0016: add IL_0017: conv.i4 IL_0018: ldc.i4.0 IL_0019: ldc.i4 269 IL_001E: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_0023: stloc.0 IL_0024: ldarg.2 IL_0025: ldflda UnityEngine.Vector3 ZoneBlock::m_position IL_002A: ldfld System.Single UnityEngine.Vector3::z IL_002F: ldc.r4 64 IL_0034: div IL_0035: ldc.r4 135 IL_003A: add IL_003B: conv.i4 IL_003C: ldc.i4.0 IL_003D: ldc.i4 269 IL_0042: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_0047: stloc.1 IL_0048: ldloc.1 IL_0049: ldc.i4 270 IL_004E: mul IL_004F: ldloc.0 IL_0050: add IL_0051: stloc.2 IL_0052: br => Label0 IL_0057: Label0 IL_0057: Label1 IL_0057: ldarg.0 IL_0058: ldfld System.UInt16[] ZoneManager::m_zoneGrid IL_005D: ldsfld System.Int32 SimulationManager::SYNCHRONIZE_TIMEOUT IL_0062: call static System.Boolean System.Threading.Monitor::TryEnter(System.Object obj, System.Int32 millisecondsTimeout) IL_0067: brfalse => Label1 .try { IL_006C: ldarg.0 IL_006D: ldfld Array16`1 ZoneManager::m_blocks IL_0072: ldfld ZoneBlock[] Array16`1::m_buffer IL_0077: ldarg.1 IL_0078: ldelema ZoneBlock IL_007D: ldarg.0 IL_007E: ldfld System.UInt16[] ZoneManager::m_zoneGrid IL_0083: ldloc.2 IL_0084: ldelem.u2 IL_0085: stfld System.UInt16 ZoneBlock::m_nextGridBlock IL_008A: ldarg.0 IL_008B: ldfld System.UInt16[] ZoneManager::m_zoneGrid IL_0090: ldloc.2 IL_0091: ldarg.1 IL_0092: stelem.i2 IL_0093: leave => Label2 IL_0098: leave => (autogenerated) } // end try .finally { IL_009D: ldarg.0 IL_009E: ldfld System.UInt16[] ZoneManager::m_zoneGrid IL_00A3: call static System.Void System.Threading.Monitor::Exit(System.Object obj) IL_00A8: endfinally IL_00A9: leave => (autogenerated) } // end handler IL_00AA: // end original IL_00AA: Label2 IL_00AA: ret DONE ### Patch: System.Void ZoneManager::ReleaseBlockImplementation(System.UInt16 block, ZoneBlock& data) ### Replacement: static System.Void ZoneManager::ZoneManager.ReleaseBlockImplementation_Patch0(ZoneManager this, System.UInt16 block, ZoneBlock& data) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: System.Single IL_0000: Local var 2: UnityEngine.Vector2 IL_0000: Local var 3: UnityEngine.Vector2 IL_0000: Local var 4: UnityEngine.Vector2 IL_0000: Local var 5: ColossalFramework.Math.Quad2 IL_0000: Local var 6: System.Int32 IL_0000: Local var 7: System.Int32 IL_0000: Local var 8: System.Int32 IL_0000: Local var 9: System.UInt16 IL_0000: Local var 10: System.UInt16 IL_0000: Local var 11: System.Int32 IL_0000: // start original IL_0000: ldarg.2 IL_0001: ldfld System.UInt32 ZoneBlock::m_flags IL_0006: brfalse => Label0 IL_000B: call static DistrictManager ColossalFramework.Singleton`1::get_instance() IL_0010: ldarg.2 IL_0011: callvirt System.Void DistrictManager::ZonesUpdated(ZoneBlock& zoneBlock) IL_0016: ldarg.2 IL_0017: dup IL_0018: ldfld System.UInt32 ZoneBlock::m_flags IL_001D: ldc.i4.2 IL_001E: or IL_001F: stfld System.UInt32 ZoneBlock::m_flags IL_0024: ldarg.0 IL_0025: ldfld FastList`1 ZoneManager::m_cachedBlocks IL_002A: ldarg.2 IL_002B: ldobj ZoneBlock IL_0030: callvirt System.Void FastList`1::Add(ZoneBlock item) IL_0035: ldarg.2 IL_0036: call System.Int32 ZoneBlock::get_RowCount() IL_003B: stloc.0 IL_003C: ldarg.2 IL_003D: ldfld System.Single ZoneBlock::m_angle IL_0042: stloc.1 IL_0043: ldloc.1 IL_0044: call static System.Single UnityEngine.Mathf::Cos(System.Single f) IL_0049: ldloc.1 IL_004A: call static System.Single UnityEngine.Mathf::Sin(System.Single f) IL_004F: newobj System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_0054: ldc.r4 8 IL_0059: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(UnityEngine.Vector2 a, System.Single d) IL_005E: stloc.2 IL_005F: ldloca.s 3 (UnityEngine.Vector2) IL_0061: ldloca.s 2 (UnityEngine.Vector2) IL_0063: ldfld System.Single UnityEngine.Vector2::y IL_0068: ldloca.s 2 (UnityEngine.Vector2) IL_006A: ldfld System.Single UnityEngine.Vector2::x IL_006F: neg IL_0070: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_0075: ldarg.2 IL_0076: ldfld UnityEngine.Vector3 ZoneBlock::m_position IL_007B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0080: stloc.s 4 (UnityEngine.Vector2) IL_0082: ldloca.s 5 (ColossalFramework.Math.Quad2) IL_0084: initobj ColossalFramework.Math.Quad2 IL_008A: ldloca.s 5 (ColossalFramework.Math.Quad2) IL_008C: ldloc.s 4 (UnityEngine.Vector2) IL_008E: ldc.r4 4 IL_0093: ldloc.2 IL_0094: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_0099: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Subtraction(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_009E: ldc.r4 4 IL_00A3: ldloc.3 IL_00A4: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_00A9: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Subtraction(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_00AE: stfld UnityEngine.Vector2 ColossalFramework.Math.Quad2::a IL_00B3: ldloca.s 5 (ColossalFramework.Math.Quad2) IL_00B5: ldloc.s 4 (UnityEngine.Vector2) IL_00B7: ldc.r4 0 IL_00BC: ldloc.2 IL_00BD: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_00C2: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Addition(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_00C7: ldc.r4 4 IL_00CC: ldloc.3 IL_00CD: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_00D2: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Subtraction(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_00D7: stfld UnityEngine.Vector2 ColossalFramework.Math.Quad2::b IL_00DC: ldloca.s 5 (ColossalFramework.Math.Quad2) IL_00DE: ldloc.s 4 (UnityEngine.Vector2) IL_00E0: ldc.r4 0 IL_00E5: ldloc.2 IL_00E6: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_00EB: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Addition(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_00F0: ldloc.0 IL_00F1: ldc.i4.4 IL_00F2: sub IL_00F3: conv.r4 IL_00F4: ldloc.3 IL_00F5: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_00FA: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Addition(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_00FF: stfld UnityEngine.Vector2 ColossalFramework.Math.Quad2::c IL_0104: ldloca.s 5 (ColossalFramework.Math.Quad2) IL_0106: ldloc.s 4 (UnityEngine.Vector2) IL_0108: ldc.r4 4 IL_010D: ldloc.2 IL_010E: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_0113: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Subtraction(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_0118: ldloc.0 IL_0119: ldc.i4.4 IL_011A: sub IL_011B: conv.r4 IL_011C: ldloc.3 IL_011D: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_0122: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Addition(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_0127: stfld UnityEngine.Vector2 ColossalFramework.Math.Quad2::d IL_012C: ldarg.0 IL_012D: ldloc.s 5 (ColossalFramework.Math.Quad2) IL_012F: call System.Void ZoneManager::UpdateBlocks(ColossalFramework.Math.Quad2 quad) IL_0134: ldarg.2 IL_0135: ldc.i4.0 IL_0136: stfld System.UInt32 ZoneBlock::m_flags IL_013B: ldarg.2 IL_013C: ldflda UnityEngine.Vector3 ZoneBlock::m_position IL_0141: ldfld System.Single UnityEngine.Vector3::x IL_0146: ldc.r4 64 IL_014B: div IL_014C: ldc.r4 135 IL_0151: add IL_0152: conv.i4 IL_0153: ldc.i4.0 IL_0154: ldc.i4 269 IL_0159: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_015E: stloc.s 6 (System.Int32) IL_0160: ldarg.2 IL_0161: ldflda UnityEngine.Vector3 ZoneBlock::m_position IL_0166: ldfld System.Single UnityEngine.Vector3::z IL_016B: ldc.r4 64 IL_0170: div IL_0171: ldc.r4 135 IL_0176: add IL_0177: conv.i4 IL_0178: ldc.i4.0 IL_0179: ldc.i4 269 IL_017E: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_0183: stloc.s 7 (System.Int32) IL_0185: ldloc.s 7 (System.Int32) IL_0187: ldc.i4 270 IL_018C: mul IL_018D: ldloc.s 6 (System.Int32) IL_018F: add IL_0190: stloc.s 8 (System.Int32) IL_0192: br => Label1 IL_0197: Label1 IL_0197: Label2 IL_0197: ldarg.0 IL_0198: ldfld System.UInt16[] ZoneManager::m_zoneGrid IL_019D: ldsfld System.Int32 SimulationManager::SYNCHRONIZE_TIMEOUT IL_01A2: call static System.Boolean System.Threading.Monitor::TryEnter(System.Object obj, System.Int32 millisecondsTimeout) IL_01A7: brfalse => Label2 .try { IL_01AC: ldc.i4.0 IL_01AD: stloc.s 9 (System.UInt16) IL_01AF: ldarg.0 IL_01B0: ldfld System.UInt16[] ZoneManager::m_zoneGrid IL_01B5: ldloc.s 8 (System.Int32) IL_01B7: ldelem.u2 IL_01B8: stloc.s 10 (System.UInt16) IL_01BA: ldc.i4.0 IL_01BB: stloc.s 11 (System.Int32) IL_01BD: br => Label3 IL_01C2: Label10 IL_01C2: ldloc.s 10 (System.UInt16) IL_01C4: ldarg.1 IL_01C5: bne.un => Label4 IL_01CA: ldloc.s 9 (System.UInt16) IL_01CC: brtrue => Label5 IL_01D1: ldarg.0 IL_01D2: ldfld System.UInt16[] ZoneManager::m_zoneGrid IL_01D7: ldloc.s 8 (System.Int32) IL_01D9: ldarg.2 IL_01DA: ldfld System.UInt16 ZoneBlock::m_nextGridBlock IL_01DF: stelem.i2 IL_01E0: br => Label6 IL_01E5: Label5 IL_01E5: ldarg.0 IL_01E6: ldfld Array16`1 ZoneManager::m_blocks IL_01EB: ldfld ZoneBlock[] Array16`1::m_buffer IL_01F0: ldloc.s 9 (System.UInt16) IL_01F2: ldelema ZoneBlock IL_01F7: ldarg.2 IL_01F8: ldfld System.UInt16 ZoneBlock::m_nextGridBlock IL_01FD: stfld System.UInt16 ZoneBlock::m_nextGridBlock IL_0202: Label6 IL_0202: leave => Label7 IL_0207: Label4 IL_0207: ldloc.s 10 (System.UInt16) IL_0209: stloc.s 9 (System.UInt16) IL_020B: ldarg.0 IL_020C: ldfld Array16`1 ZoneManager::m_blocks IL_0211: ldfld ZoneBlock[] Array16`1::m_buffer IL_0216: ldloc.s 10 (System.UInt16) IL_0218: ldelema ZoneBlock IL_021D: ldfld System.UInt16 ZoneBlock::m_nextGridBlock IL_0222: stloc.s 10 (System.UInt16) IL_0224: ldloc.s 11 (System.Int32) IL_0226: ldc.i4.1 IL_0227: add IL_0228: dup IL_0229: stloc.s 11 (System.Int32) IL_022B: ldc.i4 49152 IL_0230: ble => Label8 IL_0235: ldc.i4.1 IL_0236: ldstr "Invalid list detected!\n" IL_023B: call static System.String System.Environment::get_StackTrace() IL_0240: call static System.String System.String::Concat(System.String str0, System.String str1) IL_0245: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_024A: leave => Label9 IL_024F: Label3 IL_024F: Label8 IL_024F: ldloc.s 10 (System.UInt16) IL_0251: brtrue => Label10 IL_0256: Label7 IL_0256: Label9 IL_0256: ldarg.2 IL_0257: ldc.i4.0 IL_0258: stfld System.UInt16 ZoneBlock::m_nextGridBlock IL_025D: leave => Label11 IL_0262: leave => (autogenerated) } // end try .finally { IL_0267: ldarg.0 IL_0268: ldfld System.UInt16[] ZoneManager::m_zoneGrid IL_026D: call static System.Void System.Threading.Monitor::Exit(System.Object obj) IL_0272: endfinally IL_0273: leave => (autogenerated) } // end handler IL_0274: Label11 IL_0274: ldarg.0 IL_0275: ldfld Array16`1 ZoneManager::m_blocks IL_027A: ldarg.1 IL_027B: callvirt System.Void Array16`1::ReleaseItem(System.UInt16 item) IL_0280: ldarg.0 IL_0281: ldarg.0 IL_0282: ldfld Array16`1 ZoneManager::m_blocks IL_0287: callvirt System.UInt32 Array16`1::ItemCount() IL_028C: ldc.i4.1 IL_028D: sub IL_028E: stfld System.Int32 ZoneManager::m_blockCount IL_0293: // end original IL_0293: Label0 IL_0293: ret DONE ### Patch: virtual System.Void ZoneManager::TerrainUpdated(TerrainArea heightArea, TerrainArea surfaceArea, TerrainArea zoneArea) ### Replacement: static System.Void ZoneManager::ZoneManager.TerrainUpdated_Patch0(ZoneManager this, TerrainArea heightArea, TerrainArea surfaceArea, TerrainArea zoneArea) IL_0000: Local var 0: System.Single IL_0000: Local var 1: System.Single IL_0000: Local var 2: System.Single IL_0000: Local var 3: System.Single IL_0000: Local var 4: System.Int32 IL_0000: Local var 5: System.Int32 IL_0000: Local var 6: System.Int32 IL_0000: Local var 7: System.Int32 IL_0000: Local var 8: System.Int32 IL_0000: Local var 9: System.Int32 IL_0000: Local var 10: System.UInt16 IL_0000: Local var 11: System.Int32 IL_0000: Local var 12: UnityEngine.Vector3 IL_0000: Local var 13: System.Single IL_0000: // start original IL_0000: ldarg.3 IL_0001: ldflda UnityEngine.Vector3 TerrainArea::m_min IL_0006: ldfld System.Single UnityEngine.Vector3::x IL_000B: stloc.0 IL_000C: ldarg.3 IL_000D: ldflda UnityEngine.Vector3 TerrainArea::m_min IL_0012: ldfld System.Single UnityEngine.Vector3::z IL_0017: stloc.1 IL_0018: ldarg.3 IL_0019: ldflda UnityEngine.Vector3 TerrainArea::m_max IL_001E: ldfld System.Single UnityEngine.Vector3::x IL_0023: stloc.2 IL_0024: ldarg.3 IL_0025: ldflda UnityEngine.Vector3 TerrainArea::m_max IL_002A: ldfld System.Single UnityEngine.Vector3::z IL_002F: stloc.3 IL_0030: ldloc.0 IL_0031: ldc.r4 46 IL_0036: sub IL_0037: ldc.r4 64 IL_003C: div IL_003D: ldc.r4 135 IL_0042: add IL_0043: conv.i4 IL_0044: ldc.i4.0 IL_0045: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_004A: stloc.s 4 (System.Int32) IL_004C: ldloc.1 IL_004D: ldc.r4 46 IL_0052: sub IL_0053: ldc.r4 64 IL_0058: div IL_0059: ldc.r4 135 IL_005E: add IL_005F: conv.i4 IL_0060: ldc.i4.0 IL_0061: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0066: stloc.s 5 (System.Int32) IL_0068: ldloc.2 IL_0069: ldc.r4 46 IL_006E: add IL_006F: ldc.r4 64 IL_0074: div IL_0075: ldc.r4 135 IL_007A: add IL_007B: conv.i4 IL_007C: ldc.i4 269 IL_0081: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0086: stloc.s 6 (System.Int32) IL_0088: ldloc.3 IL_0089: ldc.r4 46 IL_008E: add IL_008F: ldc.r4 64 IL_0094: div IL_0095: ldc.r4 135 IL_009A: add IL_009B: conv.i4 IL_009C: ldc.i4 269 IL_00A1: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_00A6: stloc.s 7 (System.Int32) IL_00A8: ldloc.s 5 (System.Int32) IL_00AA: stloc.s 8 (System.Int32) IL_00AC: br => Label0 IL_00B1: Label8 IL_00B1: ldloc.s 4 (System.Int32) IL_00B3: stloc.s 9 (System.Int32) IL_00B5: br => Label1 IL_00BA: Label7 IL_00BA: ldarg.0 IL_00BB: ldfld System.UInt16[] ZoneManager::m_zoneGrid IL_00C0: ldloc.s 8 (System.Int32) IL_00C2: ldc.i4 270 IL_00C7: mul IL_00C8: ldloc.s 9 (System.Int32) IL_00CA: add IL_00CB: ldelem.u2 IL_00CC: stloc.s 10 (System.UInt16) IL_00CE: ldc.i4.0 IL_00CF: stloc.s 11 (System.Int32) IL_00D1: br => Label2 IL_00D6: Label6 IL_00D6: ldarg.0 IL_00D7: ldfld Array16`1 ZoneManager::m_blocks IL_00DC: ldfld ZoneBlock[] Array16`1::m_buffer IL_00E1: ldloc.s 10 (System.UInt16) IL_00E3: ldelema ZoneBlock IL_00E8: ldfld UnityEngine.Vector3 ZoneBlock::m_position IL_00ED: stloc.s 12 (UnityEngine.Vector3) IL_00EF: ldloc.0 IL_00F0: ldc.r4 46 IL_00F5: sub IL_00F6: ldloca.s 12 (UnityEngine.Vector3) IL_00F8: ldfld System.Single UnityEngine.Vector3::x IL_00FD: sub IL_00FE: ldloc.1 IL_00FF: ldc.r4 46 IL_0104: sub IL_0105: ldloca.s 12 (UnityEngine.Vector3) IL_0107: ldfld System.Single UnityEngine.Vector3::z IL_010C: sub IL_010D: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0112: ldloca.s 12 (UnityEngine.Vector3) IL_0114: ldfld System.Single UnityEngine.Vector3::x IL_0119: ldloc.2 IL_011A: sub IL_011B: ldc.r4 46 IL_0120: sub IL_0121: ldloca.s 12 (UnityEngine.Vector3) IL_0123: ldfld System.Single UnityEngine.Vector3::z IL_0128: ldloc.3 IL_0129: sub IL_012A: ldc.r4 46 IL_012F: sub IL_0130: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0135: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_013A: stloc.s 13 (System.Single) IL_013C: ldloc.s 13 (System.Single) IL_013E: ldc.r4 0 IL_0143: bge.un => Label3 IL_0148: ldarg.0 IL_0149: ldfld Array16`1 ZoneManager::m_blocks IL_014E: ldfld ZoneBlock[] Array16`1::m_buffer IL_0153: ldloc.s 10 (System.UInt16) IL_0155: ldelema ZoneBlock IL_015A: ldloc.s 10 (System.UInt16) IL_015C: ldloc.0 IL_015D: ldloc.1 IL_015E: ldloc.2 IL_015F: ldloc.3 IL_0160: call System.Void ZoneBlock::ZonesUpdated(System.UInt16 blockID, System.Single minX, System.Single minZ, System.Single maxX, System.Single maxZ) IL_0165: Label3 IL_0165: ldarg.0 IL_0166: ldfld Array16`1 ZoneManager::m_blocks IL_016B: ldfld ZoneBlock[] Array16`1::m_buffer IL_0170: ldloc.s 10 (System.UInt16) IL_0172: ldelema ZoneBlock IL_0177: ldfld System.UInt16 ZoneBlock::m_nextGridBlock IL_017C: stloc.s 10 (System.UInt16) IL_017E: ldloc.s 11 (System.Int32) IL_0180: ldc.i4.1 IL_0181: add IL_0182: dup IL_0183: stloc.s 11 (System.Int32) IL_0185: ldc.i4 49152 IL_018A: blt => Label4 IL_018F: ldc.i4.1 IL_0190: ldstr "Invalid list detected!\n" IL_0195: call static System.String System.Environment::get_StackTrace() IL_019A: call static System.String System.String::Concat(System.String str0, System.String str1) IL_019F: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_01A4: br => Label5 IL_01A9: Label2 IL_01A9: Label4 IL_01A9: ldloc.s 10 (System.UInt16) IL_01AB: brtrue => Label6 IL_01B0: Label5 IL_01B0: ldloc.s 9 (System.Int32) IL_01B2: ldc.i4.1 IL_01B3: add IL_01B4: stloc.s 9 (System.Int32) IL_01B6: Label1 IL_01B6: ldloc.s 9 (System.Int32) IL_01B8: ldloc.s 6 (System.Int32) IL_01BA: ble => Label7 IL_01BF: ldloc.s 8 (System.Int32) IL_01C1: ldc.i4.1 IL_01C2: add IL_01C3: stloc.s 8 (System.Int32) IL_01C5: Label0 IL_01C5: ldloc.s 8 (System.Int32) IL_01C7: ldloc.s 7 (System.Int32) IL_01C9: ble => Label8 IL_01CE: // end original IL_01CE: ret DONE ### Patch: System.Void ZoneManager::UpdateBlocks(ColossalFramework.Math.Quad2 quad) ### Replacement: static System.Void ZoneManager::ZoneManager.UpdateBlocks_Patch0(ZoneManager this, ColossalFramework.Math.Quad2 quad) IL_0000: Local var 0: UnityEngine.Vector2 IL_0000: Local var 1: UnityEngine.Vector2 IL_0000: Local var 2: System.Int32 IL_0000: Local var 3: System.Int32 IL_0000: Local var 4: System.Int32 IL_0000: Local var 5: System.Int32 IL_0000: Local var 6: System.Int32 IL_0000: Local var 7: System.Int32 IL_0000: Local var 8: System.UInt16 IL_0000: Local var 9: System.Int32 IL_0000: Local var 10: UnityEngine.Vector3 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Int32 IL_0000: Local var 13: System.Single IL_0000: Local var 14: UnityEngine.Vector2 IL_0000: Local var 15: UnityEngine.Vector2 IL_0000: Local var 16: UnityEngine.Vector2 IL_0000: Local var 17: ColossalFramework.Math.Quad2 IL_0000: // start original IL_0000: ldarga.s 1 IL_0002: call UnityEngine.Vector2 ColossalFramework.Math.Quad2::Min() IL_0007: stloc.0 IL_0008: ldarga.s 1 IL_000A: call UnityEngine.Vector2 ColossalFramework.Math.Quad2::Max() IL_000F: stloc.1 IL_0010: ldloca.s 0 (UnityEngine.Vector2) IL_0012: ldfld System.Single UnityEngine.Vector2::x IL_0017: ldc.r4 46 IL_001C: sub IL_001D: ldc.r4 64 IL_0022: div IL_0023: ldc.r4 135 IL_0028: add IL_0029: conv.i4 IL_002A: ldc.i4.0 IL_002B: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0030: stloc.2 IL_0031: ldloca.s 0 (UnityEngine.Vector2) IL_0033: ldfld System.Single UnityEngine.Vector2::y IL_0038: ldc.r4 46 IL_003D: sub IL_003E: ldc.r4 64 IL_0043: div IL_0044: ldc.r4 135 IL_0049: add IL_004A: conv.i4 IL_004B: ldc.i4.0 IL_004C: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0051: stloc.3 IL_0052: ldloca.s 1 (UnityEngine.Vector2) IL_0054: ldfld System.Single UnityEngine.Vector2::x IL_0059: ldc.r4 46 IL_005E: add IL_005F: ldc.r4 64 IL_0064: div IL_0065: ldc.r4 135 IL_006A: add IL_006B: conv.i4 IL_006C: ldc.i4 269 IL_0071: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0076: stloc.s 4 (System.Int32) IL_0078: ldloca.s 1 (UnityEngine.Vector2) IL_007A: ldfld System.Single UnityEngine.Vector2::y IL_007F: ldc.r4 46 IL_0084: add IL_0085: ldc.r4 64 IL_008A: div IL_008B: ldc.r4 135 IL_0090: add IL_0091: conv.i4 IL_0092: ldc.i4 269 IL_0097: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_009C: stloc.s 5 (System.Int32) IL_009E: ldloc.3 IL_009F: stloc.s 6 (System.Int32) IL_00A1: br => Label0 IL_00A6: Label10 IL_00A6: ldloc.2 IL_00A7: stloc.s 7 (System.Int32) IL_00A9: br => Label1 IL_00AE: Label9 IL_00AE: ldarg.0 IL_00AF: ldfld System.UInt16[] ZoneManager::m_zoneGrid IL_00B4: ldloc.s 6 (System.Int32) IL_00B6: ldc.i4 270 IL_00BB: mul IL_00BC: ldloc.s 7 (System.Int32) IL_00BE: add IL_00BF: ldelem.u2 IL_00C0: stloc.s 8 (System.UInt16) IL_00C2: ldc.i4.0 IL_00C3: stloc.s 9 (System.Int32) IL_00C5: br => Label2 IL_00CA: Label8 IL_00CA: ldarg.0 IL_00CB: ldfld Array16`1 ZoneManager::m_blocks IL_00D0: ldfld ZoneBlock[] Array16`1::m_buffer IL_00D5: ldloc.s 8 (System.UInt16) IL_00D7: ldelema ZoneBlock IL_00DC: ldfld UnityEngine.Vector3 ZoneBlock::m_position IL_00E1: stloc.s 10 (UnityEngine.Vector3) IL_00E3: ldloca.s 0 (UnityEngine.Vector2) IL_00E5: ldfld System.Single UnityEngine.Vector2::x IL_00EA: ldc.r4 46 IL_00EF: sub IL_00F0: ldloca.s 10 (UnityEngine.Vector3) IL_00F2: ldfld System.Single UnityEngine.Vector3::x IL_00F7: sub IL_00F8: ldloca.s 0 (UnityEngine.Vector2) IL_00FA: ldfld System.Single UnityEngine.Vector2::y IL_00FF: ldc.r4 46 IL_0104: sub IL_0105: ldloca.s 10 (UnityEngine.Vector3) IL_0107: ldfld System.Single UnityEngine.Vector3::z IL_010C: sub IL_010D: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0112: ldloca.s 10 (UnityEngine.Vector3) IL_0114: ldfld System.Single UnityEngine.Vector3::x IL_0119: ldloca.s 1 (UnityEngine.Vector2) IL_011B: ldfld System.Single UnityEngine.Vector2::x IL_0120: sub IL_0121: ldc.r4 46 IL_0126: sub IL_0127: ldloca.s 10 (UnityEngine.Vector3) IL_0129: ldfld System.Single UnityEngine.Vector3::z IL_012E: ldloca.s 1 (UnityEngine.Vector2) IL_0130: ldfld System.Single UnityEngine.Vector2::y IL_0135: sub IL_0136: ldc.r4 46 IL_013B: sub IL_013C: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0141: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0146: stloc.s 11 (System.Single) IL_0148: ldloc.s 11 (System.Single) IL_014A: ldc.r4 0 IL_014F: bge.un => Label3 IL_0154: ldarg.0 IL_0155: ldfld Array16`1 ZoneManager::m_blocks IL_015A: ldfld ZoneBlock[] Array16`1::m_buffer IL_015F: ldloc.s 8 (System.UInt16) IL_0161: ldelema ZoneBlock IL_0166: ldfld System.UInt32 ZoneBlock::m_flags IL_016B: ldc.i4.3 IL_016C: and IL_016D: ldc.i4.1 IL_016E: bne.un => Label4 IL_0173: ldarg.0 IL_0174: ldfld Array16`1 ZoneManager::m_blocks IL_0179: ldfld ZoneBlock[] Array16`1::m_buffer IL_017E: ldloc.s 8 (System.UInt16) IL_0180: ldelema ZoneBlock IL_0185: call System.Int32 ZoneBlock::get_RowCount() IL_018A: stloc.s 12 (System.Int32) IL_018C: ldarg.0 IL_018D: ldfld Array16`1 ZoneManager::m_blocks IL_0192: ldfld ZoneBlock[] Array16`1::m_buffer IL_0197: ldloc.s 8 (System.UInt16) IL_0199: ldelema ZoneBlock IL_019E: ldfld System.Single ZoneBlock::m_angle IL_01A3: stloc.s 13 (System.Single) IL_01A5: ldloc.s 13 (System.Single) IL_01A7: call static System.Single UnityEngine.Mathf::Cos(System.Single f) IL_01AC: ldloc.s 13 (System.Single) IL_01AE: call static System.Single UnityEngine.Mathf::Sin(System.Single f) IL_01B3: newobj System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_01B8: ldc.r4 8 IL_01BD: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(UnityEngine.Vector2 a, System.Single d) IL_01C2: stloc.s 14 (UnityEngine.Vector2) IL_01C4: ldloca.s 15 (UnityEngine.Vector2) IL_01C6: ldloca.s 14 (UnityEngine.Vector2) IL_01C8: ldfld System.Single UnityEngine.Vector2::y IL_01CD: ldloca.s 14 (UnityEngine.Vector2) IL_01CF: ldfld System.Single UnityEngine.Vector2::x IL_01D4: neg IL_01D5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_01DA: ldloc.s 10 (UnityEngine.Vector3) IL_01DC: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_01E1: stloc.s 16 (UnityEngine.Vector2) IL_01E3: ldloca.s 17 (ColossalFramework.Math.Quad2) IL_01E5: initobj ColossalFramework.Math.Quad2 IL_01EB: ldloca.s 17 (ColossalFramework.Math.Quad2) IL_01ED: ldloc.s 16 (UnityEngine.Vector2) IL_01EF: ldc.r4 4 IL_01F4: ldloc.s 14 (UnityEngine.Vector2) IL_01F6: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_01FB: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Subtraction(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_0200: ldc.r4 4 IL_0205: ldloc.s 15 (UnityEngine.Vector2) IL_0207: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_020C: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Subtraction(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_0211: stfld UnityEngine.Vector2 ColossalFramework.Math.Quad2::a IL_0216: ldloca.s 17 (ColossalFramework.Math.Quad2) IL_0218: ldloc.s 16 (UnityEngine.Vector2) IL_021A: ldc.r4 0 IL_021F: ldloc.s 14 (UnityEngine.Vector2) IL_0221: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_0226: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Addition(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_022B: ldc.r4 4 IL_0230: ldloc.s 15 (UnityEngine.Vector2) IL_0232: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_0237: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Subtraction(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_023C: stfld UnityEngine.Vector2 ColossalFramework.Math.Quad2::b IL_0241: ldloca.s 17 (ColossalFramework.Math.Quad2) IL_0243: ldloc.s 16 (UnityEngine.Vector2) IL_0245: ldc.r4 0 IL_024A: ldloc.s 14 (UnityEngine.Vector2) IL_024C: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_0251: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Addition(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_0256: ldloc.s 12 (System.Int32) IL_0258: ldc.i4.4 IL_0259: sub IL_025A: conv.r4 IL_025B: ldloc.s 15 (UnityEngine.Vector2) IL_025D: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_0262: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Addition(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_0267: stfld UnityEngine.Vector2 ColossalFramework.Math.Quad2::c IL_026C: ldloca.s 17 (ColossalFramework.Math.Quad2) IL_026E: ldloc.s 16 (UnityEngine.Vector2) IL_0270: ldc.r4 4 IL_0275: ldloc.s 14 (UnityEngine.Vector2) IL_0277: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_027C: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Subtraction(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_0281: ldloc.s 12 (System.Int32) IL_0283: ldc.i4.4 IL_0284: sub IL_0285: conv.r4 IL_0286: ldloc.s 15 (UnityEngine.Vector2) IL_0288: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_028D: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Addition(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_0292: stfld UnityEngine.Vector2 ColossalFramework.Math.Quad2::d IL_0297: ldarga.s 1 IL_0299: ldloc.s 17 (ColossalFramework.Math.Quad2) IL_029B: call System.Boolean ColossalFramework.Math.Quad2::Intersect(ColossalFramework.Math.Quad2 quad) IL_02A0: brfalse => Label5 IL_02A5: ldarg.0 IL_02A6: ldfld System.UInt64[] ZoneManager::m_updatedBlocks IL_02AB: ldloc.s 8 (System.UInt16) IL_02AD: ldc.i4.6 IL_02AE: shr IL_02AF: ldelema System.UInt64 IL_02B4: dup IL_02B5: ldind.i8 IL_02B6: ldc.i4.1 IL_02B7: conv.i8 IL_02B8: ldloc.s 8 (System.UInt16) IL_02BA: ldc.i4.s 63 IL_02BC: and IL_02BD: ldc.i4.s 63 IL_02BF: and IL_02C0: shl IL_02C1: or IL_02C2: stind.i8 IL_02C3: ldarg.0 IL_02C4: ldc.i4.1 IL_02C5: stfld System.Boolean ZoneManager::m_blocksUpdated IL_02CA: Label3 IL_02CA: Label4 IL_02CA: Label5 IL_02CA: ldarg.0 IL_02CB: ldfld Array16`1 ZoneManager::m_blocks IL_02D0: ldfld ZoneBlock[] Array16`1::m_buffer IL_02D5: ldloc.s 8 (System.UInt16) IL_02D7: ldelema ZoneBlock IL_02DC: ldfld System.UInt16 ZoneBlock::m_nextGridBlock IL_02E1: stloc.s 8 (System.UInt16) IL_02E3: ldloc.s 9 (System.Int32) IL_02E5: ldc.i4.1 IL_02E6: add IL_02E7: dup IL_02E8: stloc.s 9 (System.Int32) IL_02EA: ldc.i4 49152 IL_02EF: blt => Label6 IL_02F4: ldc.i4.1 IL_02F5: ldstr "Invalid list detected!\n" IL_02FA: call static System.String System.Environment::get_StackTrace() IL_02FF: call static System.String System.String::Concat(System.String str0, System.String str1) IL_0304: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_0309: br => Label7 IL_030E: Label2 IL_030E: Label6 IL_030E: ldloc.s 8 (System.UInt16) IL_0310: brtrue => Label8 IL_0315: Label7 IL_0315: ldloc.s 7 (System.Int32) IL_0317: ldc.i4.1 IL_0318: add IL_0319: stloc.s 7 (System.Int32) IL_031B: Label1 IL_031B: ldloc.s 7 (System.Int32) IL_031D: ldloc.s 4 (System.Int32) IL_031F: ble => Label9 IL_0324: ldloc.s 6 (System.Int32) IL_0326: ldc.i4.1 IL_0327: add IL_0328: stloc.s 6 (System.Int32) IL_032A: Label0 IL_032A: ldloc.s 6 (System.Int32) IL_032C: ldloc.s 5 (System.Int32) IL_032E: ble => Label10 IL_0333: // end original IL_0333: ret DONE ### Patch: System.Void ZoneTool::ApplyBrush() ### Replacement: static System.Void ZoneTool::ZoneTool.ApplyBrush_Patch0(ZoneTool this) IL_0000: Local var 0: System.Single IL_0000: Local var 1: UnityEngine.Vector3 IL_0000: Local var 2: System.Single IL_0000: Local var 3: System.Single IL_0000: Local var 4: System.Single IL_0000: Local var 5: System.Single IL_0000: Local var 6: ZoneManager IL_0000: Local var 7: System.Int32 IL_0000: Local var 8: System.Int32 IL_0000: Local var 9: System.Int32 IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Int32 IL_0000: Local var 12: System.Int32 IL_0000: Local var 13: System.UInt16 IL_0000: Local var 14: System.Int32 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: System.Single IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldfld System.Single ZoneTool::m_brushSize IL_0006: ldc.r4 0.5 IL_000B: mul IL_000C: stloc.0 IL_000D: ldarg.0 IL_000E: ldfld UnityEngine.Vector3 ZoneTool::m_mousePosition IL_0013: stloc.1 IL_0014: ldloca.s 1 (UnityEngine.Vector3) IL_0016: ldfld System.Single UnityEngine.Vector3::x IL_001B: ldloc.0 IL_001C: sub IL_001D: stloc.2 IL_001E: ldloca.s 1 (UnityEngine.Vector3) IL_0020: ldfld System.Single UnityEngine.Vector3::z IL_0025: ldloc.0 IL_0026: sub IL_0027: stloc.3 IL_0028: ldloca.s 1 (UnityEngine.Vector3) IL_002A: ldfld System.Single UnityEngine.Vector3::x IL_002F: ldloc.0 IL_0030: add IL_0031: stloc.s 4 (System.Single) IL_0033: ldloca.s 1 (UnityEngine.Vector3) IL_0035: ldfld System.Single UnityEngine.Vector3::z IL_003A: ldloc.0 IL_003B: add IL_003C: stloc.s 5 (System.Single) IL_003E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0043: stloc.s 6 (ZoneManager) IL_0045: ldloc.2 IL_0046: ldc.r4 46 IL_004B: sub IL_004C: ldc.r4 64 IL_0051: div IL_0052: ldc.r4 135 IL_0057: add IL_0058: conv.i4 IL_0059: ldc.i4.0 IL_005A: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_005F: stloc.s 7 (System.Int32) IL_0061: ldloc.3 IL_0062: ldc.r4 46 IL_0067: sub IL_0068: ldc.r4 64 IL_006D: div IL_006E: ldc.r4 135 IL_0073: add IL_0074: conv.i4 IL_0075: ldc.i4.0 IL_0076: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_007B: stloc.s 8 (System.Int32) IL_007D: ldloc.s 4 (System.Single) IL_007F: ldc.r4 46 IL_0084: add IL_0085: ldc.r4 64 IL_008A: div IL_008B: ldc.r4 135 IL_0090: add IL_0091: conv.i4 IL_0092: ldc.i4 269 IL_0097: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_009C: stloc.s 9 (System.Int32) IL_009E: ldloc.s 5 (System.Single) IL_00A0: ldc.r4 46 IL_00A5: add IL_00A6: ldc.r4 64 IL_00AB: div IL_00AC: ldc.r4 135 IL_00B1: add IL_00B2: conv.i4 IL_00B3: ldc.i4 269 IL_00B8: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_00BD: stloc.s 10 (System.Int32) IL_00BF: ldloc.s 8 (System.Int32) IL_00C1: stloc.s 11 (System.Int32) IL_00C3: br => Label0 IL_00C8: Label8 IL_00C8: ldloc.s 7 (System.Int32) IL_00CA: stloc.s 12 (System.Int32) IL_00CC: br => Label1 IL_00D1: Label7 IL_00D1: ldloc.s 6 (ZoneManager) IL_00D3: ldfld System.UInt16[] ZoneManager::m_zoneGrid IL_00D8: ldloc.s 11 (System.Int32) IL_00DA: ldc.i4 270 IL_00DF: mul IL_00E0: ldloc.s 12 (System.Int32) IL_00E2: add IL_00E3: ldelem.u2 IL_00E4: stloc.s 13 (System.UInt16) IL_00E6: ldc.i4.0 IL_00E7: stloc.s 14 (System.Int32) IL_00E9: br => Label2 IL_00EE: Label6 IL_00EE: ldloc.s 6 (ZoneManager) IL_00F0: ldfld Array16`1 ZoneManager::m_blocks IL_00F5: ldfld ZoneBlock[] Array16`1::m_buffer IL_00FA: ldloc.s 13 (System.UInt16) IL_00FC: ldelema ZoneBlock IL_0101: ldfld UnityEngine.Vector3 ZoneBlock::m_position IL_0106: stloc.s 15 (UnityEngine.Vector3) IL_0108: ldloc.2 IL_0109: ldc.r4 46 IL_010E: sub IL_010F: ldloca.s 15 (UnityEngine.Vector3) IL_0111: ldfld System.Single UnityEngine.Vector3::x IL_0116: sub IL_0117: ldloc.3 IL_0118: ldc.r4 46 IL_011D: sub IL_011E: ldloca.s 15 (UnityEngine.Vector3) IL_0120: ldfld System.Single UnityEngine.Vector3::z IL_0125: sub IL_0126: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_012B: ldloca.s 15 (UnityEngine.Vector3) IL_012D: ldfld System.Single UnityEngine.Vector3::x IL_0132: ldloc.s 4 (System.Single) IL_0134: sub IL_0135: ldc.r4 46 IL_013A: sub IL_013B: ldloca.s 15 (UnityEngine.Vector3) IL_013D: ldfld System.Single UnityEngine.Vector3::z IL_0142: ldloc.s 5 (System.Single) IL_0144: sub IL_0145: ldc.r4 46 IL_014A: sub IL_014B: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0150: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0155: stloc.s 16 (System.Single) IL_0157: ldloc.s 16 (System.Single) IL_0159: ldc.r4 0 IL_015E: bge.un => Label3 IL_0163: ldarg.0 IL_0164: ldloc.s 13 (System.UInt16) IL_0166: ldloc.s 6 (ZoneManager) IL_0168: ldfld Array16`1 ZoneManager::m_blocks IL_016D: ldfld ZoneBlock[] Array16`1::m_buffer IL_0172: ldloc.s 13 (System.UInt16) IL_0174: ldelema ZoneBlock IL_0179: ldloc.1 IL_017A: ldloc.0 IL_017B: call System.Void ZoneTool::ApplyBrush(System.UInt16 blockIndex, ZoneBlock& data, UnityEngine.Vector3 position, System.Single brushRadius) IL_0180: Label3 IL_0180: ldloc.s 6 (ZoneManager) IL_0182: ldfld Array16`1 ZoneManager::m_blocks IL_0187: ldfld ZoneBlock[] Array16`1::m_buffer IL_018C: ldloc.s 13 (System.UInt16) IL_018E: ldelema ZoneBlock IL_0193: ldfld System.UInt16 ZoneBlock::m_nextGridBlock IL_0198: stloc.s 13 (System.UInt16) IL_019A: ldloc.s 14 (System.Int32) IL_019C: ldc.i4.1 IL_019D: add IL_019E: dup IL_019F: stloc.s 14 (System.Int32) IL_01A1: ldc.i4 49152 IL_01A6: blt => Label4 IL_01AB: ldc.i4.1 IL_01AC: ldstr "Invalid list detected!\n" IL_01B1: call static System.String System.Environment::get_StackTrace() IL_01B6: call static System.String System.String::Concat(System.String str0, System.String str1) IL_01BB: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_01C0: br => Label5 IL_01C5: Label2 IL_01C5: Label4 IL_01C5: ldloc.s 13 (System.UInt16) IL_01C7: brtrue => Label6 IL_01CC: Label5 IL_01CC: ldloc.s 12 (System.Int32) IL_01CE: ldc.i4.1 IL_01CF: add IL_01D0: stloc.s 12 (System.Int32) IL_01D2: Label1 IL_01D2: ldloc.s 12 (System.Int32) IL_01D4: ldloc.s 9 (System.Int32) IL_01D6: ble => Label7 IL_01DB: ldloc.s 11 (System.Int32) IL_01DD: ldc.i4.1 IL_01DE: add IL_01DF: stloc.s 11 (System.Int32) IL_01E1: Label0 IL_01E1: ldloc.s 11 (System.Int32) IL_01E3: ldloc.s 10 (System.Int32) IL_01E5: ble => Label8 IL_01EA: // end original IL_01EA: ret DONE ### Patch: System.Void ZoneTool::ApplyFill() ### Replacement: static System.Void ZoneTool::ZoneTool.ApplyFill_Patch0(ZoneTool this) IL_0000: Local var 0: UnityEngine.Vector3 IL_0000: Local var 1: UnityEngine.Vector3 IL_0000: Local var 2: System.Single IL_0000: Local var 3: System.Single IL_0000: Local var 4: System.Single IL_0000: Local var 5: System.Single IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Int32 IL_0000: Local var 8: System.Int32 IL_0000: Local var 9: System.Int32 IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: ZoneManager IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Int32 IL_0000: Local var 14: System.Int32 IL_0000: Local var 15: System.UInt16 IL_0000: Local var 16: System.Int32 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: EffectInfo IL_0000: Local var 20: EffectInfo/SpawnArea IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldfld System.Boolean ZoneTool::m_validPosition IL_0006: brtrue => Label0 IL_000B: br => Label14 IL_0010: Label0 IL_0010: ldarg.0 IL_0011: ldfld UnityEngine.Vector3 ZoneTool::m_mousePosition IL_0016: stloc.0 IL_0017: ldarg.0 IL_0018: ldfld UnityEngine.Vector3 ZoneTool::m_mouseDirection IL_001D: stloc.1 IL_001E: ldloca.s 1 (UnityEngine.Vector3) IL_0020: ldfld System.Single UnityEngine.Vector3::x IL_0025: neg IL_0026: ldloca.s 1 (UnityEngine.Vector3) IL_0028: ldfld System.Single UnityEngine.Vector3::z IL_002D: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0032: stloc.2 IL_0033: ldloca.s 0 (UnityEngine.Vector3) IL_0035: ldfld System.Single UnityEngine.Vector3::x IL_003A: ldc.r4 256 IL_003F: sub IL_0040: stloc.3 IL_0041: ldloca.s 0 (UnityEngine.Vector3) IL_0043: ldfld System.Single UnityEngine.Vector3::z IL_0048: ldc.r4 256 IL_004D: sub IL_004E: stloc.s 4 (System.Single) IL_0050: ldloca.s 0 (UnityEngine.Vector3) IL_0052: ldfld System.Single UnityEngine.Vector3::x IL_0057: ldc.r4 256 IL_005C: add IL_005D: stloc.s 5 (System.Single) IL_005F: ldloca.s 0 (UnityEngine.Vector3) IL_0061: ldfld System.Single UnityEngine.Vector3::z IL_0066: ldc.r4 256 IL_006B: add IL_006C: stloc.s 6 (System.Single) IL_006E: ldloc.3 IL_006F: ldc.r4 46 IL_0074: sub IL_0075: ldc.r4 64 IL_007A: div IL_007B: ldc.r4 135 IL_0080: add IL_0081: conv.i4 IL_0082: ldc.i4.0 IL_0083: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0088: stloc.s 7 (System.Int32) IL_008A: ldloc.s 4 (System.Single) IL_008C: ldc.r4 46 IL_0091: sub IL_0092: ldc.r4 64 IL_0097: div IL_0098: ldc.r4 135 IL_009D: add IL_009E: conv.i4 IL_009F: ldc.i4.0 IL_00A0: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_00A5: stloc.s 8 (System.Int32) IL_00A7: ldloc.s 5 (System.Single) IL_00A9: ldc.r4 46 IL_00AE: add IL_00AF: ldc.r4 64 IL_00B4: div IL_00B5: ldc.r4 135 IL_00BA: add IL_00BB: conv.i4 IL_00BC: ldc.i4 269 IL_00C1: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_00C6: stloc.s 9 (System.Int32) IL_00C8: ldloc.s 6 (System.Single) IL_00CA: ldc.r4 46 IL_00CF: add IL_00D0: ldc.r4 64 IL_00D5: div IL_00D6: ldc.r4 135 IL_00DB: add IL_00DC: conv.i4 IL_00DD: ldc.i4 269 IL_00E2: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_00E7: stloc.s 10 (System.Int32) IL_00E9: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_00EE: stloc.s 11 (ZoneManager) IL_00F0: ldc.i4.0 IL_00F1: stloc.s 12 (System.Boolean) IL_00F3: ldloc.s 8 (System.Int32) IL_00F5: stloc.s 13 (System.Int32) IL_00F7: br => Label1 IL_00FC: Label10 IL_00FC: ldloc.s 7 (System.Int32) IL_00FE: stloc.s 14 (System.Int32) IL_0100: br => Label2 IL_0105: Label9 IL_0105: ldloc.s 11 (ZoneManager) IL_0107: ldfld System.UInt16[] ZoneManager::m_zoneGrid IL_010C: ldloc.s 13 (System.Int32) IL_010E: ldc.i4 270 IL_0113: mul IL_0114: ldloc.s 14 (System.Int32) IL_0116: add IL_0117: ldelem.u2 IL_0118: stloc.s 15 (System.UInt16) IL_011A: ldc.i4.0 IL_011B: stloc.s 16 (System.Int32) IL_011D: br => Label3 IL_0122: Label8 IL_0122: ldloc.s 11 (ZoneManager) IL_0124: ldfld Array16`1 ZoneManager::m_blocks IL_0129: ldfld ZoneBlock[] Array16`1::m_buffer IL_012E: ldloc.s 15 (System.UInt16) IL_0130: ldelema ZoneBlock IL_0135: ldfld UnityEngine.Vector3 ZoneBlock::m_position IL_013A: stloc.s 17 (UnityEngine.Vector3) IL_013C: ldloc.3 IL_013D: ldc.r4 46 IL_0142: sub IL_0143: ldloca.s 17 (UnityEngine.Vector3) IL_0145: ldfld System.Single UnityEngine.Vector3::x IL_014A: sub IL_014B: ldloc.s 4 (System.Single) IL_014D: ldc.r4 46 IL_0152: sub IL_0153: ldloca.s 17 (UnityEngine.Vector3) IL_0155: ldfld System.Single UnityEngine.Vector3::z IL_015A: sub IL_015B: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0160: ldloca.s 17 (UnityEngine.Vector3) IL_0162: ldfld System.Single UnityEngine.Vector3::x IL_0167: ldloc.s 5 (System.Single) IL_0169: sub IL_016A: ldc.r4 46 IL_016F: sub IL_0170: ldloca.s 17 (UnityEngine.Vector3) IL_0172: ldfld System.Single UnityEngine.Vector3::z IL_0177: ldloc.s 6 (System.Single) IL_0179: sub IL_017A: ldc.r4 46 IL_017F: sub IL_0180: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0185: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_018A: stloc.s 18 (System.Single) IL_018C: ldloc.s 18 (System.Single) IL_018E: ldc.r4 0 IL_0193: bge.un => Label4 IL_0198: ldarg.0 IL_0199: ldloc.0 IL_019A: ldloc.1 IL_019B: ldloc.2 IL_019C: ldloc.s 15 (System.UInt16) IL_019E: ldloc.s 11 (ZoneManager) IL_01A0: ldfld Array16`1 ZoneManager::m_blocks IL_01A5: ldfld ZoneBlock[] Array16`1::m_buffer IL_01AA: ldloc.s 15 (System.UInt16) IL_01AC: ldelema ZoneBlock IL_01B1: call System.Boolean ZoneTool::ApplyFillBuffer(UnityEngine.Vector3 position, UnityEngine.Vector3 direction, System.Single angle, System.UInt16 blockIndex, ZoneBlock& block) IL_01B6: brfalse => Label5 IL_01BB: ldc.i4.1 IL_01BC: stloc.s 12 (System.Boolean) IL_01BE: Label4 IL_01BE: Label5 IL_01BE: ldloc.s 11 (ZoneManager) IL_01C0: ldfld Array16`1 ZoneManager::m_blocks IL_01C5: ldfld ZoneBlock[] Array16`1::m_buffer IL_01CA: ldloc.s 15 (System.UInt16) IL_01CC: ldelema ZoneBlock IL_01D1: ldfld System.UInt16 ZoneBlock::m_nextGridBlock IL_01D6: stloc.s 15 (System.UInt16) IL_01D8: ldloc.s 16 (System.Int32) IL_01DA: ldc.i4.1 IL_01DB: add IL_01DC: dup IL_01DD: stloc.s 16 (System.Int32) IL_01DF: ldc.i4 49152 IL_01E4: blt => Label6 IL_01E9: ldc.i4.1 IL_01EA: ldstr "Invalid list detected!\n" IL_01EF: call static System.String System.Environment::get_StackTrace() IL_01F4: call static System.String System.String::Concat(System.String str0, System.String str1) IL_01F9: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_01FE: br => Label7 IL_0203: Label3 IL_0203: Label6 IL_0203: ldloc.s 15 (System.UInt16) IL_0205: brtrue => Label8 IL_020A: Label7 IL_020A: ldloc.s 14 (System.Int32) IL_020C: ldc.i4.1 IL_020D: add IL_020E: stloc.s 14 (System.Int32) IL_0210: Label2 IL_0210: ldloc.s 14 (System.Int32) IL_0212: ldloc.s 9 (System.Int32) IL_0214: ble => Label9 IL_0219: ldloc.s 13 (System.Int32) IL_021B: ldc.i4.1 IL_021C: add IL_021D: stloc.s 13 (System.Int32) IL_021F: Label1 IL_021F: ldloc.s 13 (System.Int32) IL_0221: ldloc.s 10 (System.Int32) IL_0223: ble => Label10 IL_0228: ldloc.s 12 (System.Boolean) IL_022A: brfalse => Label11 IL_022F: ldarg.0 IL_0230: ldfld System.Boolean ZoneTool::m_zoning IL_0235: brfalse => Label12 IL_023A: ldarg.0 IL_023B: ldarg.0 IL_023C: ldfld Zone ZoneTool::m_zone IL_0241: call System.Void ZoneTool::UsedZone(Zone zone) IL_0246: Label12 IL_0246: ldloc.s 11 (ZoneManager) IL_0248: ldfld ZoneProperties SimulationManagerBase`2::m_properties IL_024D: ldfld EffectInfo ZoneProperties::m_fillEffect IL_0252: stloc.s 19 (EffectInfo) IL_0254: ldloc.s 19 (EffectInfo) IL_0256: brfalse => Label13 IL_025B: ldloca.s 20 (EffectInfo+SpawnArea) IL_025D: ldloc.0 IL_025E: call static UnityEngine.Vector3 UnityEngine.Vector3::get_up() IL_0263: ldc.r4 1 IL_0268: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position, UnityEngine.Vector3 direction, System.Single radius) IL_026D: call static EffectManager ColossalFramework.Singleton`1::get_instance() IL_0272: ldloc.s 19 (EffectInfo) IL_0274: ldloc.s 20 (EffectInfo+SpawnArea) IL_0276: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero() IL_027B: ldc.r4 0 IL_0280: ldc.r4 1 IL_0285: call static AudioManager ColossalFramework.Singleton`1::get_instance() IL_028A: callvirt AudioGroup AudioManager::get_DefaultGroup() IL_028F: ldc.i4.0 IL_0290: ldc.i4.1 IL_0291: callvirt System.Void EffectManager::DispatchEffect(EffectInfo effect, SpawnArea spawnArea, UnityEngine.Vector3 velocity, System.Single acceleration, System.Single magnitude, AudioGroup audioGroup, System.UInt32 startFrame, System.Boolean avoidMultipleAudio) IL_0296: // end original IL_0296: Label11 IL_0296: Label13 IL_0296: Label14 IL_0296: ret DONE ### Patch: System.Void ZoneTool::ApplyZoning() ### Replacement: static System.Void ZoneTool::ZoneTool.ApplyZoning_Patch0(ZoneTool this) IL_0000: Local var 0: UnityEngine.Vector2 IL_0000: Local var 1: UnityEngine.Vector2 IL_0000: Local var 2: UnityEngine.Vector2 IL_0000: Local var 3: UnityEngine.Vector2 IL_0000: Local var 4: System.Single IL_0000: Local var 5: System.Single IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Single IL_0000: Local var 8: ColossalFramework.Math.Quad2 IL_0000: Local var 9: UnityEngine.Vector2 IL_0000: Local var 10: UnityEngine.Vector2 IL_0000: Local var 11: UnityEngine.Vector2 IL_0000: Local var 12: ZoneManager IL_0000: Local var 13: System.Int32 IL_0000: Local var 14: System.Int32 IL_0000: Local var 15: System.Int32 IL_0000: Local var 16: System.Int32 IL_0000: Local var 17: System.Boolean IL_0000: Local var 18: System.Int32 IL_0000: Local var 19: System.Int32 IL_0000: Local var 20: System.UInt16 IL_0000: Local var 21: System.Int32 IL_0000: Local var 22: UnityEngine.Vector3 IL_0000: Local var 23: System.Single IL_0000: Local var 24: EffectInfo IL_0000: Local var 25: EffectInfo/SpawnArea IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldfld UnityEngine.Vector3 ZoneTool::m_startPosition IL_0006: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_000B: stloc.0 IL_000C: ldarg.0 IL_000D: ldfld UnityEngine.Vector3 ZoneTool::m_mousePosition IL_0012: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0017: stloc.1 IL_0018: ldarg.0 IL_0019: ldfld UnityEngine.Vector3 ZoneTool::m_startDirection IL_001E: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0023: stloc.2 IL_0024: ldloca.s 3 (UnityEngine.Vector2) IL_0026: ldloca.s 2 (UnityEngine.Vector2) IL_0028: ldfld System.Single UnityEngine.Vector2::y IL_002D: ldloca.s 2 (UnityEngine.Vector2) IL_002F: ldfld System.Single UnityEngine.Vector2::x IL_0034: neg IL_0035: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_003A: ldloca.s 1 (UnityEngine.Vector2) IL_003C: ldfld System.Single UnityEngine.Vector2::x IL_0041: ldloca.s 0 (UnityEngine.Vector2) IL_0043: ldfld System.Single UnityEngine.Vector2::x IL_0048: sub IL_0049: ldloca.s 2 (UnityEngine.Vector2) IL_004B: ldfld System.Single UnityEngine.Vector2::x IL_0050: mul IL_0051: ldloca.s 1 (UnityEngine.Vector2) IL_0053: ldfld System.Single UnityEngine.Vector2::y IL_0058: ldloca.s 0 (UnityEngine.Vector2) IL_005A: ldfld System.Single UnityEngine.Vector2::y IL_005F: sub IL_0060: ldloca.s 2 (UnityEngine.Vector2) IL_0062: ldfld System.Single UnityEngine.Vector2::y IL_0067: mul IL_0068: add IL_0069: ldc.r4 0.125 IL_006E: mul IL_006F: call static System.Single UnityEngine.Mathf::Round(System.Single f) IL_0074: ldc.r4 8 IL_0079: mul IL_007A: stloc.s 4 (System.Single) IL_007C: ldloca.s 1 (UnityEngine.Vector2) IL_007E: ldfld System.Single UnityEngine.Vector2::x IL_0083: ldloca.s 0 (UnityEngine.Vector2) IL_0085: ldfld System.Single UnityEngine.Vector2::x IL_008A: sub IL_008B: ldloca.s 3 (UnityEngine.Vector2) IL_008D: ldfld System.Single UnityEngine.Vector2::x IL_0092: mul IL_0093: ldloca.s 1 (UnityEngine.Vector2) IL_0095: ldfld System.Single UnityEngine.Vector2::y IL_009A: ldloca.s 0 (UnityEngine.Vector2) IL_009C: ldfld System.Single UnityEngine.Vector2::y IL_00A1: sub IL_00A2: ldloca.s 3 (UnityEngine.Vector2) IL_00A4: ldfld System.Single UnityEngine.Vector2::y IL_00A9: mul IL_00AA: add IL_00AB: ldc.r4 0.125 IL_00B0: mul IL_00B1: call static System.Single UnityEngine.Mathf::Round(System.Single f) IL_00B6: ldc.r4 8 IL_00BB: mul IL_00BC: stloc.s 5 (System.Single) IL_00BE: ldloc.s 4 (System.Single) IL_00C0: ldc.r4 0 IL_00C5: blt.un => Label0 IL_00CA: ldc.r4 4 IL_00CF: br => Label1 IL_00D4: Label0 IL_00D4: ldc.r4 -4 IL_00D9: Label1 IL_00D9: stloc.s 6 (System.Single) IL_00DB: ldloc.s 5 (System.Single) IL_00DD: ldc.r4 0 IL_00E2: blt.un => Label2 IL_00E7: ldc.r4 4 IL_00EC: br => Label3 IL_00F1: Label2 IL_00F1: ldc.r4 -4 IL_00F6: Label3 IL_00F6: stloc.s 7 (System.Single) IL_00F8: ldloca.s 8 (ColossalFramework.Math.Quad2) IL_00FA: initobj ColossalFramework.Math.Quad2 IL_0100: ldloca.s 8 (ColossalFramework.Math.Quad2) IL_0102: ldloc.0 IL_0103: ldloc.2 IL_0104: ldloc.s 6 (System.Single) IL_0106: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(UnityEngine.Vector2 a, System.Single d) IL_010B: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Subtraction(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_0110: ldloc.3 IL_0111: ldloc.s 7 (System.Single) IL_0113: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(UnityEngine.Vector2 a, System.Single d) IL_0118: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Subtraction(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_011D: stfld UnityEngine.Vector2 ColossalFramework.Math.Quad2::a IL_0122: ldloca.s 8 (ColossalFramework.Math.Quad2) IL_0124: ldloc.0 IL_0125: ldloc.2 IL_0126: ldloc.s 6 (System.Single) IL_0128: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(UnityEngine.Vector2 a, System.Single d) IL_012D: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Subtraction(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_0132: ldloc.3 IL_0133: ldloc.s 5 (System.Single) IL_0135: ldloc.s 7 (System.Single) IL_0137: add IL_0138: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(UnityEngine.Vector2 a, System.Single d) IL_013D: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Addition(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_0142: stfld UnityEngine.Vector2 ColossalFramework.Math.Quad2::b IL_0147: ldloca.s 8 (ColossalFramework.Math.Quad2) IL_0149: ldloc.0 IL_014A: ldloc.2 IL_014B: ldloc.s 4 (System.Single) IL_014D: ldloc.s 6 (System.Single) IL_014F: add IL_0150: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(UnityEngine.Vector2 a, System.Single d) IL_0155: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Addition(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_015A: ldloc.3 IL_015B: ldloc.s 5 (System.Single) IL_015D: ldloc.s 7 (System.Single) IL_015F: add IL_0160: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(UnityEngine.Vector2 a, System.Single d) IL_0165: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Addition(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_016A: stfld UnityEngine.Vector2 ColossalFramework.Math.Quad2::c IL_016F: ldloca.s 8 (ColossalFramework.Math.Quad2) IL_0171: ldloc.0 IL_0172: ldloc.2 IL_0173: ldloc.s 4 (System.Single) IL_0175: ldloc.s 6 (System.Single) IL_0177: add IL_0178: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(UnityEngine.Vector2 a, System.Single d) IL_017D: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Addition(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_0182: ldloc.3 IL_0183: ldloc.s 7 (System.Single) IL_0185: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(UnityEngine.Vector2 a, System.Single d) IL_018A: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Subtraction(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_018F: stfld UnityEngine.Vector2 ColossalFramework.Math.Quad2::d IL_0194: ldloc.s 6 (System.Single) IL_0196: ldloc.s 7 (System.Single) IL_0198: bne.un => Label4 IL_019D: ldloca.s 8 (ColossalFramework.Math.Quad2) IL_019F: ldfld UnityEngine.Vector2 ColossalFramework.Math.Quad2::b IL_01A4: stloc.s 9 (UnityEngine.Vector2) IL_01A6: ldloca.s 8 (ColossalFramework.Math.Quad2) IL_01A8: ldloca.s 8 (ColossalFramework.Math.Quad2) IL_01AA: ldfld UnityEngine.Vector2 ColossalFramework.Math.Quad2::d IL_01AF: stfld UnityEngine.Vector2 ColossalFramework.Math.Quad2::b IL_01B4: ldloca.s 8 (ColossalFramework.Math.Quad2) IL_01B6: ldloc.s 9 (UnityEngine.Vector2) IL_01B8: stfld UnityEngine.Vector2 ColossalFramework.Math.Quad2::d IL_01BD: Label4 IL_01BD: ldloca.s 8 (ColossalFramework.Math.Quad2) IL_01BF: call UnityEngine.Vector2 ColossalFramework.Math.Quad2::Min() IL_01C4: stloc.s 10 (UnityEngine.Vector2) IL_01C6: ldloca.s 8 (ColossalFramework.Math.Quad2) IL_01C8: call UnityEngine.Vector2 ColossalFramework.Math.Quad2::Max() IL_01CD: stloc.s 11 (UnityEngine.Vector2) IL_01CF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_01D4: stloc.s 12 (ZoneManager) IL_01D6: ldloca.s 10 (UnityEngine.Vector2) IL_01D8: ldfld System.Single UnityEngine.Vector2::x IL_01DD: ldc.r4 46 IL_01E2: sub IL_01E3: ldc.r4 64 IL_01E8: div IL_01E9: ldc.r4 135 IL_01EE: add IL_01EF: conv.i4 IL_01F0: ldc.i4.0 IL_01F1: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_01F6: stloc.s 13 (System.Int32) IL_01F8: ldloca.s 10 (UnityEngine.Vector2) IL_01FA: ldfld System.Single UnityEngine.Vector2::y IL_01FF: ldc.r4 46 IL_0204: sub IL_0205: ldc.r4 64 IL_020A: div IL_020B: ldc.r4 135 IL_0210: add IL_0211: conv.i4 IL_0212: ldc.i4.0 IL_0213: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0218: stloc.s 14 (System.Int32) IL_021A: ldloca.s 11 (UnityEngine.Vector2) IL_021C: ldfld System.Single UnityEngine.Vector2::x IL_0221: ldc.r4 46 IL_0226: add IL_0227: ldc.r4 64 IL_022C: div IL_022D: ldc.r4 135 IL_0232: add IL_0233: conv.i4 IL_0234: ldc.i4 269 IL_0239: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_023E: stloc.s 15 (System.Int32) IL_0240: ldloca.s 11 (UnityEngine.Vector2) IL_0242: ldfld System.Single UnityEngine.Vector2::y IL_0247: ldc.r4 46 IL_024C: add IL_024D: ldc.r4 64 IL_0252: div IL_0253: ldc.r4 135 IL_0258: add IL_0259: conv.i4 IL_025A: ldc.i4 269 IL_025F: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0264: stloc.s 16 (System.Int32) IL_0266: ldc.i4.0 IL_0267: stloc.s 17 (System.Boolean) IL_0269: ldloc.s 14 (System.Int32) IL_026B: stloc.s 18 (System.Int32) IL_026D: br => Label5 IL_0272: Label14 IL_0272: ldloc.s 13 (System.Int32) IL_0274: stloc.s 19 (System.Int32) IL_0276: br => Label6 IL_027B: Label13 IL_027B: ldloc.s 12 (ZoneManager) IL_027D: ldfld System.UInt16[] ZoneManager::m_zoneGrid IL_0282: ldloc.s 18 (System.Int32) IL_0284: ldc.i4 270 IL_0289: mul IL_028A: ldloc.s 19 (System.Int32) IL_028C: add IL_028D: ldelem.u2 IL_028E: stloc.s 20 (System.UInt16) IL_0290: ldc.i4.0 IL_0291: stloc.s 21 (System.Int32) IL_0293: br => Label7 IL_0298: Label12 IL_0298: ldloc.s 12 (ZoneManager) IL_029A: ldfld Array16`1 ZoneManager::m_blocks IL_029F: ldfld ZoneBlock[] Array16`1::m_buffer IL_02A4: ldloc.s 20 (System.UInt16) IL_02A6: ldelema ZoneBlock IL_02AB: ldfld UnityEngine.Vector3 ZoneBlock::m_position IL_02B0: stloc.s 22 (UnityEngine.Vector3) IL_02B2: ldloca.s 10 (UnityEngine.Vector2) IL_02B4: ldfld System.Single UnityEngine.Vector2::x IL_02B9: ldc.r4 46 IL_02BE: sub IL_02BF: ldloca.s 22 (UnityEngine.Vector3) IL_02C1: ldfld System.Single UnityEngine.Vector3::x IL_02C6: sub IL_02C7: ldloca.s 10 (UnityEngine.Vector2) IL_02C9: ldfld System.Single UnityEngine.Vector2::y IL_02CE: ldc.r4 46 IL_02D3: sub IL_02D4: ldloca.s 22 (UnityEngine.Vector3) IL_02D6: ldfld System.Single UnityEngine.Vector3::z IL_02DB: sub IL_02DC: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_02E1: ldloca.s 22 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloca.s 11 (UnityEngine.Vector2) IL_02EA: ldfld System.Single UnityEngine.Vector2::x IL_02EF: sub IL_02F0: ldc.r4 46 IL_02F5: sub IL_02F6: ldloca.s 22 (UnityEngine.Vector3) IL_02F8: ldfld System.Single UnityEngine.Vector3::z IL_02FD: ldloca.s 11 (UnityEngine.Vector2) IL_02FF: ldfld System.Single UnityEngine.Vector2::y IL_0304: sub IL_0305: ldc.r4 46 IL_030A: sub IL_030B: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0310: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0315: stloc.s 23 (System.Single) IL_0317: ldloc.s 23 (System.Single) IL_0319: ldc.r4 0 IL_031E: bge.un => Label8 IL_0323: ldarg.0 IL_0324: ldloc.s 20 (System.UInt16) IL_0326: ldloc.s 12 (ZoneManager) IL_0328: ldfld Array16`1 ZoneManager::m_blocks IL_032D: ldfld ZoneBlock[] Array16`1::m_buffer IL_0332: ldloc.s 20 (System.UInt16) IL_0334: ldelema ZoneBlock IL_0339: ldloc.s 8 (ColossalFramework.Math.Quad2) IL_033B: call System.Boolean ZoneTool::ApplyZoning(System.UInt16 blockIndex, ZoneBlock& data, ColossalFramework.Math.Quad2 quad2) IL_0340: brfalse => Label9 IL_0345: ldc.i4.1 IL_0346: stloc.s 17 (System.Boolean) IL_0348: Label8 IL_0348: Label9 IL_0348: ldloc.s 12 (ZoneManager) IL_034A: ldfld Array16`1 ZoneManager::m_blocks IL_034F: ldfld ZoneBlock[] Array16`1::m_buffer IL_0354: ldloc.s 20 (System.UInt16) IL_0356: ldelema ZoneBlock IL_035B: ldfld System.UInt16 ZoneBlock::m_nextGridBlock IL_0360: stloc.s 20 (System.UInt16) IL_0362: ldloc.s 21 (System.Int32) IL_0364: ldc.i4.1 IL_0365: add IL_0366: dup IL_0367: stloc.s 21 (System.Int32) IL_0369: ldc.i4 49152 IL_036E: blt => Label10 IL_0373: ldc.i4.1 IL_0374: ldstr "Invalid list detected!\n" IL_0379: call static System.String System.Environment::get_StackTrace() IL_037E: call static System.String System.String::Concat(System.String str0, System.String str1) IL_0383: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_0388: br => Label11 IL_038D: Label7 IL_038D: Label10 IL_038D: ldloc.s 20 (System.UInt16) IL_038F: brtrue => Label12 IL_0394: Label11 IL_0394: ldloc.s 19 (System.Int32) IL_0396: ldc.i4.1 IL_0397: add IL_0398: stloc.s 19 (System.Int32) IL_039A: Label6 IL_039A: ldloc.s 19 (System.Int32) IL_039C: ldloc.s 15 (System.Int32) IL_039E: ble => Label13 IL_03A3: ldloc.s 18 (System.Int32) IL_03A5: ldc.i4.1 IL_03A6: add IL_03A7: stloc.s 18 (System.Int32) IL_03A9: Label5 IL_03A9: ldloc.s 18 (System.Int32) IL_03AB: ldloc.s 16 (System.Int32) IL_03AD: ble => Label14 IL_03B2: ldloc.s 17 (System.Boolean) IL_03B4: brfalse => Label15 IL_03B9: ldarg.0 IL_03BA: ldfld System.Boolean ZoneTool::m_zoning IL_03BF: brfalse => Label16 IL_03C4: ldarg.0 IL_03C5: ldarg.0 IL_03C6: ldfld Zone ZoneTool::m_zone IL_03CB: call System.Void ZoneTool::UsedZone(Zone zone) IL_03D0: Label16 IL_03D0: ldloc.s 12 (ZoneManager) IL_03D2: ldfld ZoneProperties SimulationManagerBase`2::m_properties IL_03D7: ldfld EffectInfo ZoneProperties::m_fillEffect IL_03DC: stloc.s 24 (EffectInfo) IL_03DE: ldloc.s 24 (EffectInfo) IL_03E0: brfalse => Label17 IL_03E5: ldloca.s 25 (EffectInfo+SpawnArea) IL_03E7: ldloc.0 IL_03E8: ldloc.1 IL_03E9: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Addition(UnityEngine.Vector2 a, UnityEngine.Vector2 b) IL_03EE: ldc.r4 0.5 IL_03F3: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(UnityEngine.Vector2 a, System.Single d) IL_03F8: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_03FD: call static UnityEngine.Vector3 UnityEngine.Vector3::get_up() IL_0402: ldc.r4 1 IL_0407: call System.Void SpawnArea::.ctor(UnityEngine.Vector3 position, UnityEngine.Vector3 direction, System.Single radius) IL_040C: call static EffectManager ColossalFramework.Singleton`1::get_instance() IL_0411: ldloc.s 24 (EffectInfo) IL_0413: ldloc.s 25 (EffectInfo+SpawnArea) IL_0415: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero() IL_041A: ldc.r4 0 IL_041F: ldc.r4 1 IL_0424: call static AudioManager ColossalFramework.Singleton`1::get_instance() IL_0429: callvirt AudioGroup AudioManager::get_DefaultGroup() IL_042E: ldc.i4.0 IL_042F: ldc.i4.1 IL_0430: callvirt System.Void EffectManager::DispatchEffect(EffectInfo effect, SpawnArea spawnArea, UnityEngine.Vector3 velocity, System.Single acceleration, System.Single magnitude, AudioGroup audioGroup, System.UInt32 startFrame, System.Boolean avoidMultipleAudio) IL_0435: // end original IL_0435: Label15 IL_0435: Label17 IL_0435: ret DONE ### Patch: System.Boolean ZoneTool::CalculateFillBuffer(UnityEngine.Vector3 position, UnityEngine.Vector3 direction, Zone requiredZone, System.Boolean occupied1, System.Boolean occupied2) ### Replacement: static System.Boolean ZoneTool::ZoneTool.CalculateFillBuffer_Patch0(ZoneTool this, UnityEngine.Vector3 position, UnityEngine.Vector3 direction, Zone requiredZone, System.Boolean occupied1, System.Boolean occupied2) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: System.Single IL_0000: Local var 2: System.Single IL_0000: Local var 3: System.Single IL_0000: Local var 4: System.Single IL_0000: Local var 5: System.Single IL_0000: Local var 6: System.Int32 IL_0000: Local var 7: System.Int32 IL_0000: Local var 8: System.Int32 IL_0000: Local var 9: System.Int32 IL_0000: Local var 10: ZoneManager IL_0000: Local var 11: System.Int32 IL_0000: Local var 12: System.Int32 IL_0000: Local var 13: System.UInt16 IL_0000: Local var 14: System.Int32 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: System.Single IL_0000: Local var 17: System.Int32 IL_0000: Local var 18: System.Int32 IL_0000: Local var 19: System.Int32 IL_0000: Local var 20: System.Int32 IL_0000: Local var 21: System.Int32 IL_0000: Local var 22: ZoneTool/FillPos IL_0000: Local var 23: ZoneTool/FillPos IL_0000: Local var 24: ZoneTool/FillPos IL_0000: Local var 25: ZoneTool/FillPos IL_0000: Local var 26: ZoneTool/FillPos IL_0000: Local var 27: System.Int32 IL_0000: Local var 28: System.Int32 IL_0000: Local var 29: ZoneTool/FillPos IL_0000: Local var 30: System.Int32 IL_0000: // start original IL_0000: ldc.i4.0 IL_0001: stloc.0 IL_0002: br => Label0 IL_0007: Label1 IL_0007: ldarg.0 IL_0008: ldfld System.UInt64[] ZoneTool::m_fillBuffer1 IL_000D: ldloc.0 IL_000E: ldc.i4.0 IL_000F: conv.i8 IL_0010: stelem.i8 IL_0011: ldloc.0 IL_0012: ldc.i4.1 IL_0013: add IL_0014: stloc.0 IL_0015: Label0 IL_0015: ldloc.0 IL_0016: ldc.i4.s 64 IL_0018: blt => Label1 IL_001D: ldarg.s 5 IL_001F: brtrue => Label2 IL_0024: ldarga.s 2 IL_0026: ldfld System.Single UnityEngine.Vector3::x IL_002B: neg IL_002C: ldarga.s 2 IL_002E: ldfld System.Single UnityEngine.Vector3::z IL_0033: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0038: stloc.1 IL_0039: ldarga.s 1 IL_003B: ldfld System.Single UnityEngine.Vector3::x IL_0040: ldc.r4 256 IL_0045: sub IL_0046: stloc.2 IL_0047: ldarga.s 1 IL_0049: ldfld System.Single UnityEngine.Vector3::z IL_004E: ldc.r4 256 IL_0053: sub IL_0054: stloc.3 IL_0055: ldarga.s 1 IL_0057: ldfld System.Single UnityEngine.Vector3::x IL_005C: ldc.r4 256 IL_0061: add IL_0062: stloc.s 4 (System.Single) IL_0064: ldarga.s 1 IL_0066: ldfld System.Single UnityEngine.Vector3::z IL_006B: ldc.r4 256 IL_0070: add IL_0071: stloc.s 5 (System.Single) IL_0073: ldloc.2 IL_0074: ldc.r4 46 IL_0079: sub IL_007A: ldc.r4 64 IL_007F: div IL_0080: ldc.r4 135 IL_0085: add IL_0086: conv.i4 IL_0087: ldc.i4.0 IL_0088: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_008D: stloc.s 6 (System.Int32) IL_008F: ldloc.3 IL_0090: ldc.r4 46 IL_0095: sub IL_0096: ldc.r4 64 IL_009B: div IL_009C: ldc.r4 135 IL_00A1: add IL_00A2: conv.i4 IL_00A3: ldc.i4.0 IL_00A4: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_00A9: stloc.s 7 (System.Int32) IL_00AB: ldloc.s 4 (System.Single) IL_00AD: ldc.r4 46 IL_00B2: add IL_00B3: ldc.r4 64 IL_00B8: div IL_00B9: ldc.r4 135 IL_00BE: add IL_00BF: conv.i4 IL_00C0: ldc.i4 269 IL_00C5: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_00CA: stloc.s 8 (System.Int32) IL_00CC: ldloc.s 5 (System.Single) IL_00CE: ldc.r4 46 IL_00D3: add IL_00D4: ldc.r4 64 IL_00D9: div IL_00DA: ldc.r4 135 IL_00DF: add IL_00E0: conv.i4 IL_00E1: ldc.i4 269 IL_00E6: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_00EB: stloc.s 9 (System.Int32) IL_00ED: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_00F2: stloc.s 10 (ZoneManager) IL_00F4: ldloc.s 7 (System.Int32) IL_00F6: stloc.s 11 (System.Int32) IL_00F8: br => Label3 IL_00FD: Label11 IL_00FD: ldloc.s 6 (System.Int32) IL_00FF: stloc.s 12 (System.Int32) IL_0101: br => Label4 IL_0106: Label10 IL_0106: ldloc.s 10 (ZoneManager) IL_0108: ldfld System.UInt16[] ZoneManager::m_zoneGrid IL_010D: ldloc.s 11 (System.Int32) IL_010F: ldc.i4 270 IL_0114: mul IL_0115: ldloc.s 12 (System.Int32) IL_0117: add IL_0118: ldelem.u2 IL_0119: stloc.s 13 (System.UInt16) IL_011B: ldc.i4.0 IL_011C: stloc.s 14 (System.Int32) IL_011E: br => Label5 IL_0123: Label9 IL_0123: ldloc.s 10 (ZoneManager) IL_0125: ldfld Array16`1 ZoneManager::m_blocks IL_012A: ldfld ZoneBlock[] Array16`1::m_buffer IL_012F: ldloc.s 13 (System.UInt16) IL_0131: ldelema ZoneBlock IL_0136: ldfld UnityEngine.Vector3 ZoneBlock::m_position IL_013B: stloc.s 15 (UnityEngine.Vector3) IL_013D: ldloc.2 IL_013E: ldc.r4 46 IL_0143: sub IL_0144: ldloca.s 15 (UnityEngine.Vector3) IL_0146: ldfld System.Single UnityEngine.Vector3::x IL_014B: sub IL_014C: ldloc.3 IL_014D: ldc.r4 46 IL_0152: sub IL_0153: ldloca.s 15 (UnityEngine.Vector3) IL_0155: ldfld System.Single UnityEngine.Vector3::z IL_015A: sub IL_015B: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0160: ldloca.s 15 (UnityEngine.Vector3) IL_0162: ldfld System.Single UnityEngine.Vector3::x IL_0167: ldloc.s 4 (System.Single) IL_0169: sub IL_016A: ldc.r4 46 IL_016F: sub IL_0170: ldloca.s 15 (UnityEngine.Vector3) IL_0172: ldfld System.Single UnityEngine.Vector3::z IL_0177: ldloc.s 5 (System.Single) IL_0179: sub IL_017A: ldc.r4 46 IL_017F: sub IL_0180: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0185: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_018A: stloc.s 16 (System.Single) IL_018C: ldloc.s 16 (System.Single) IL_018E: ldc.r4 0 IL_0193: bge.un => Label6 IL_0198: ldarg.0 IL_0199: ldarg.1 IL_019A: ldarg.2 IL_019B: ldloc.1 IL_019C: ldloc.s 13 (System.UInt16) IL_019E: ldloc.s 10 (ZoneManager) IL_01A0: ldfld Array16`1 ZoneManager::m_blocks IL_01A5: ldfld ZoneBlock[] Array16`1::m_buffer IL_01AA: ldloc.s 13 (System.UInt16) IL_01AC: ldelema ZoneBlock IL_01B1: ldarg.3 IL_01B2: ldarg.s 4 IL_01B4: ldarg.s 5 IL_01B6: call System.Void ZoneTool::CalculateFillBuffer(UnityEngine.Vector3 position, UnityEngine.Vector3 direction, System.Single angle, System.UInt16 blockIndex, ZoneBlock& block, Zone requiredZone, System.Boolean occupied1, System.Boolean occupied2) IL_01BB: Label6 IL_01BB: ldloc.s 10 (ZoneManager) IL_01BD: ldfld Array16`1 ZoneManager::m_blocks IL_01C2: ldfld ZoneBlock[] Array16`1::m_buffer IL_01C7: ldloc.s 13 (System.UInt16) IL_01C9: ldelema ZoneBlock IL_01CE: ldfld System.UInt16 ZoneBlock::m_nextGridBlock IL_01D3: stloc.s 13 (System.UInt16) IL_01D5: ldloc.s 14 (System.Int32) IL_01D7: ldc.i4.1 IL_01D8: add IL_01D9: dup IL_01DA: stloc.s 14 (System.Int32) IL_01DC: ldc.i4 49152 IL_01E1: blt => Label7 IL_01E6: ldc.i4.1 IL_01E7: ldstr "Invalid list detected!\n" IL_01EC: call static System.String System.Environment::get_StackTrace() IL_01F1: call static System.String System.String::Concat(System.String str0, System.String str1) IL_01F6: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_01FB: br => Label8 IL_0200: Label5 IL_0200: Label7 IL_0200: ldloc.s 13 (System.UInt16) IL_0202: brtrue => Label9 IL_0207: Label8 IL_0207: ldloc.s 12 (System.Int32) IL_0209: ldc.i4.1 IL_020A: add IL_020B: stloc.s 12 (System.Int32) IL_020D: Label4 IL_020D: ldloc.s 12 (System.Int32) IL_020F: ldloc.s 8 (System.Int32) IL_0211: ble => Label10 IL_0216: ldloc.s 11 (System.Int32) IL_0218: ldc.i4.1 IL_0219: add IL_021A: stloc.s 11 (System.Int32) IL_021C: Label3 IL_021C: ldloc.s 11 (System.Int32) IL_021E: ldloc.s 9 (System.Int32) IL_0220: ble => Label11 IL_0225: Label2 IL_0225: ldarg.0 IL_0226: ldfld System.UInt64[] ZoneTool::m_fillBuffer1 IL_022B: ldc.i4.s 32 IL_022D: ldelem.i8 IL_022E: ldc.i8 4294967296 IL_0237: and IL_0238: ldc.i4.0 IL_0239: conv.i8 IL_023A: beq => Label12 IL_023F: ldarg.0 IL_0240: ldfld FastList`1 ZoneTool::m_fillPositions IL_0245: callvirt System.Void FastList`1::Clear() IL_024A: ldc.i4.0 IL_024B: stloc.s 17 (System.Int32) IL_024D: ldc.i4.s 32 IL_024F: stloc.s 18 (System.Int32) IL_0251: ldc.i4.s 32 IL_0253: stloc.s 19 (System.Int32) IL_0255: ldc.i4.s 32 IL_0257: stloc.s 20 (System.Int32) IL_0259: ldc.i4.s 32 IL_025B: stloc.s 21 (System.Int32) IL_025D: ldloca.s 22 (ZoneTool+FillPos) IL_025F: ldc.i4.s 32 IL_0261: stfld System.Byte FillPos::m_x IL_0266: ldloca.s 22 (ZoneTool+FillPos) IL_0268: ldc.i4.s 32 IL_026A: stfld System.Byte FillPos::m_z IL_026F: ldarg.0 IL_0270: ldfld FastList`1 ZoneTool::m_fillPositions IL_0275: ldloc.s 22 (ZoneTool+FillPos) IL_0277: callvirt System.Void FastList`1::Add(FillPos item) IL_027C: ldarg.0 IL_027D: ldfld System.UInt64[] ZoneTool::m_fillBuffer1 IL_0282: ldc.i4.s 32 IL_0284: ldelema System.UInt64 IL_0289: dup IL_028A: ldind.i8 IL_028B: ldc.i8 -4294967297 IL_0294: and IL_0295: stind.i8 IL_0296: br => Label13 IL_029B: Label26 IL_029B: ldarg.0 IL_029C: ldfld FastList`1 ZoneTool::m_fillPositions IL_02A1: ldfld FillPos[] FastList`1::m_buffer IL_02A6: ldloc.s 17 (System.Int32) IL_02A8: dup IL_02A9: ldc.i4.1 IL_02AA: add IL_02AB: stloc.s 17 (System.Int32) IL_02AD: ldelema ZoneTool+FillPos IL_02B2: ldobj ZoneTool+FillPos IL_02B7: stloc.s 22 (ZoneTool+FillPos) IL_02B9: ldloca.s 22 (ZoneTool+FillPos) IL_02BB: ldfld System.Byte FillPos::m_z IL_02C0: ldc.i4.0 IL_02C1: ble => Label14 IL_02C6: ldloc.s 22 (ZoneTool+FillPos) IL_02C8: stloc.s 23 (ZoneTool+FillPos) IL_02CA: ldloca.s 23 (ZoneTool+FillPos) IL_02CC: dup IL_02CD: ldfld System.Byte FillPos::m_z IL_02D2: ldc.i4.1 IL_02D3: sub IL_02D4: conv.u1 IL_02D5: stfld System.Byte FillPos::m_z IL_02DA: ldarg.0 IL_02DB: ldfld System.UInt64[] ZoneTool::m_fillBuffer1 IL_02E0: ldloca.s 23 (ZoneTool+FillPos) IL_02E2: ldfld System.Byte FillPos::m_z IL_02E7: ldelem.i8 IL_02E8: ldc.i4.1 IL_02E9: conv.i8 IL_02EA: ldloca.s 23 (ZoneTool+FillPos) IL_02EC: ldfld System.Byte FillPos::m_x IL_02F1: ldc.i4.s 63 IL_02F3: and IL_02F4: shl IL_02F5: and IL_02F6: ldc.i4.0 IL_02F7: conv.i8 IL_02F8: beq => Label15 IL_02FD: ldarg.0 IL_02FE: ldfld FastList`1 ZoneTool::m_fillPositions IL_0303: ldloc.s 23 (ZoneTool+FillPos) IL_0305: callvirt System.Void FastList`1::Add(FillPos item) IL_030A: ldarg.0 IL_030B: ldfld System.UInt64[] ZoneTool::m_fillBuffer1 IL_0310: ldloca.s 23 (ZoneTool+FillPos) IL_0312: ldfld System.Byte FillPos::m_z IL_0317: ldelema System.UInt64 IL_031C: dup IL_031D: ldind.i8 IL_031E: ldc.i4.1 IL_031F: conv.i8 IL_0320: ldloca.s 23 (ZoneTool+FillPos) IL_0322: ldfld System.Byte FillPos::m_x IL_0327: ldc.i4.s 63 IL_0329: and IL_032A: shl IL_032B: not IL_032C: and IL_032D: stind.i8 IL_032E: ldloca.s 23 (ZoneTool+FillPos) IL_0330: ldfld System.Byte FillPos::m_z IL_0335: ldloc.s 19 (System.Int32) IL_0337: bge => Label16 IL_033C: ldloca.s 23 (ZoneTool+FillPos) IL_033E: ldfld System.Byte FillPos::m_z IL_0343: stloc.s 19 (System.Int32) IL_0345: Label14 IL_0345: Label15 IL_0345: Label16 IL_0345: ldloca.s 22 (ZoneTool+FillPos) IL_0347: ldfld System.Byte FillPos::m_x IL_034C: ldc.i4.0 IL_034D: ble => Label17 IL_0352: ldloc.s 22 (ZoneTool+FillPos) IL_0354: stloc.s 24 (ZoneTool+FillPos) IL_0356: ldloca.s 24 (ZoneTool+FillPos) IL_0358: dup IL_0359: ldfld System.Byte FillPos::m_x IL_035E: ldc.i4.1 IL_035F: sub IL_0360: conv.u1 IL_0361: stfld System.Byte FillPos::m_x IL_0366: ldarg.0 IL_0367: ldfld System.UInt64[] ZoneTool::m_fillBuffer1 IL_036C: ldloca.s 24 (ZoneTool+FillPos) IL_036E: ldfld System.Byte FillPos::m_z IL_0373: ldelem.i8 IL_0374: ldc.i4.1 IL_0375: conv.i8 IL_0376: ldloca.s 24 (ZoneTool+FillPos) IL_0378: ldfld System.Byte FillPos::m_x IL_037D: ldc.i4.s 63 IL_037F: and IL_0380: shl IL_0381: and IL_0382: ldc.i4.0 IL_0383: conv.i8 IL_0384: beq => Label18 IL_0389: ldarg.0 IL_038A: ldfld FastList`1 ZoneTool::m_fillPositions IL_038F: ldloc.s 24 (ZoneTool+FillPos) IL_0391: callvirt System.Void FastList`1::Add(FillPos item) IL_0396: ldarg.0 IL_0397: ldfld System.UInt64[] ZoneTool::m_fillBuffer1 IL_039C: ldloca.s 24 (ZoneTool+FillPos) IL_039E: ldfld System.Byte FillPos::m_z IL_03A3: ldelema System.UInt64 IL_03A8: dup IL_03A9: ldind.i8 IL_03AA: ldc.i4.1 IL_03AB: conv.i8 IL_03AC: ldloca.s 24 (ZoneTool+FillPos) IL_03AE: ldfld System.Byte FillPos::m_x IL_03B3: ldc.i4.s 63 IL_03B5: and IL_03B6: shl IL_03B7: not IL_03B8: and IL_03B9: stind.i8 IL_03BA: ldloca.s 24 (ZoneTool+FillPos) IL_03BC: ldfld System.Byte FillPos::m_x IL_03C1: ldloc.s 18 (System.Int32) IL_03C3: bge => Label19 IL_03C8: ldloca.s 24 (ZoneTool+FillPos) IL_03CA: ldfld System.Byte FillPos::m_x IL_03CF: stloc.s 18 (System.Int32) IL_03D1: Label17 IL_03D1: Label18 IL_03D1: Label19 IL_03D1: ldloca.s 22 (ZoneTool+FillPos) IL_03D3: ldfld System.Byte FillPos::m_x IL_03D8: ldc.i4.s 63 IL_03DA: bge => Label20 IL_03DF: ldloc.s 22 (ZoneTool+FillPos) IL_03E1: stloc.s 25 (ZoneTool+FillPos) IL_03E3: ldloca.s 25 (ZoneTool+FillPos) IL_03E5: dup IL_03E6: ldfld System.Byte FillPos::m_x IL_03EB: ldc.i4.1 IL_03EC: add IL_03ED: conv.u1 IL_03EE: stfld System.Byte FillPos::m_x IL_03F3: ldarg.0 IL_03F4: ldfld System.UInt64[] ZoneTool::m_fillBuffer1 IL_03F9: ldloca.s 25 (ZoneTool+FillPos) IL_03FB: ldfld System.Byte FillPos::m_z IL_0400: ldelem.i8 IL_0401: ldc.i4.1 IL_0402: conv.i8 IL_0403: ldloca.s 25 (ZoneTool+FillPos) IL_0405: ldfld System.Byte FillPos::m_x IL_040A: ldc.i4.s 63 IL_040C: and IL_040D: shl IL_040E: and IL_040F: ldc.i4.0 IL_0410: conv.i8 IL_0411: beq => Label21 IL_0416: ldarg.0 IL_0417: ldfld FastList`1 ZoneTool::m_fillPositions IL_041C: ldloc.s 25 (ZoneTool+FillPos) IL_041E: callvirt System.Void FastList`1::Add(FillPos item) IL_0423: ldarg.0 IL_0424: ldfld System.UInt64[] ZoneTool::m_fillBuffer1 IL_0429: ldloca.s 25 (ZoneTool+FillPos) IL_042B: ldfld System.Byte FillPos::m_z IL_0430: ldelema System.UInt64 IL_0435: dup IL_0436: ldind.i8 IL_0437: ldc.i4.1 IL_0438: conv.i8 IL_0439: ldloca.s 25 (ZoneTool+FillPos) IL_043B: ldfld System.Byte FillPos::m_x IL_0440: ldc.i4.s 63 IL_0442: and IL_0443: shl IL_0444: not IL_0445: and IL_0446: stind.i8 IL_0447: ldloca.s 25 (ZoneTool+FillPos) IL_0449: ldfld System.Byte FillPos::m_x IL_044E: ldloc.s 20 (System.Int32) IL_0450: ble => Label22 IL_0455: ldloca.s 25 (ZoneTool+FillPos) IL_0457: ldfld System.Byte FillPos::m_x IL_045C: stloc.s 20 (System.Int32) IL_045E: Label20 IL_045E: Label21 IL_045E: Label22 IL_045E: ldloca.s 22 (ZoneTool+FillPos) IL_0460: ldfld System.Byte FillPos::m_z IL_0465: ldc.i4.s 63 IL_0467: bge => Label23 IL_046C: ldloc.s 22 (ZoneTool+FillPos) IL_046E: stloc.s 26 (ZoneTool+FillPos) IL_0470: ldloca.s 26 (ZoneTool+FillPos) IL_0472: dup IL_0473: ldfld System.Byte FillPos::m_z IL_0478: ldc.i4.1 IL_0479: add IL_047A: conv.u1 IL_047B: stfld System.Byte FillPos::m_z IL_0480: ldarg.0 IL_0481: ldfld System.UInt64[] ZoneTool::m_fillBuffer1 IL_0486: ldloca.s 26 (ZoneTool+FillPos) IL_0488: ldfld System.Byte FillPos::m_z IL_048D: ldelem.i8 IL_048E: ldc.i4.1 IL_048F: conv.i8 IL_0490: ldloca.s 26 (ZoneTool+FillPos) IL_0492: ldfld System.Byte FillPos::m_x IL_0497: ldc.i4.s 63 IL_0499: and IL_049A: shl IL_049B: and IL_049C: ldc.i4.0 IL_049D: conv.i8 IL_049E: beq => Label24 IL_04A3: ldarg.0 IL_04A4: ldfld FastList`1 ZoneTool::m_fillPositions IL_04A9: ldloc.s 26 (ZoneTool+FillPos) IL_04AB: callvirt System.Void FastList`1::Add(FillPos item) IL_04B0: ldarg.0 IL_04B1: ldfld System.UInt64[] ZoneTool::m_fillBuffer1 IL_04B6: ldloca.s 26 (ZoneTool+FillPos) IL_04B8: ldfld System.Byte FillPos::m_z IL_04BD: ldelema System.UInt64 IL_04C2: dup IL_04C3: ldind.i8 IL_04C4: ldc.i4.1 IL_04C5: conv.i8 IL_04C6: ldloca.s 26 (ZoneTool+FillPos) IL_04C8: ldfld System.Byte FillPos::m_x IL_04CD: ldc.i4.s 63 IL_04CF: and IL_04D0: shl IL_04D1: not IL_04D2: and IL_04D3: stind.i8 IL_04D4: ldloca.s 26 (ZoneTool+FillPos) IL_04D6: ldfld System.Byte FillPos::m_z IL_04DB: ldloc.s 21 (System.Int32) IL_04DD: ble => Label25 IL_04E2: ldloca.s 26 (ZoneTool+FillPos) IL_04E4: ldfld System.Byte FillPos::m_z IL_04E9: stloc.s 21 (System.Int32) IL_04EB: Label13 IL_04EB: Label23 IL_04EB: Label24 IL_04EB: Label25 IL_04EB: ldloc.s 17 (System.Int32) IL_04ED: ldarg.0 IL_04EE: ldfld FastList`1 ZoneTool::m_fillPositions IL_04F3: ldfld System.Int32 FastList`1::m_size IL_04F8: blt => Label26 IL_04FD: ldc.i4.0 IL_04FE: stloc.s 27 (System.Int32) IL_0500: br => Label27 IL_0505: Label28 IL_0505: ldarg.0 IL_0506: ldfld System.UInt64[] ZoneTool::m_fillBuffer1 IL_050B: ldloc.s 27 (System.Int32) IL_050D: ldc.i4.0 IL_050E: conv.i8 IL_050F: stelem.i8 IL_0510: ldloc.s 27 (System.Int32) IL_0512: ldc.i4.1 IL_0513: add IL_0514: stloc.s 27 (System.Int32) IL_0516: Label27 IL_0516: ldloc.s 27 (System.Int32) IL_0518: ldc.i4.s 64 IL_051A: blt => Label28 IL_051F: ldc.i4.0 IL_0520: stloc.s 28 (System.Int32) IL_0522: br => Label29 IL_0527: Label30 IL_0527: ldarg.0 IL_0528: ldfld FastList`1 ZoneTool::m_fillPositions IL_052D: ldfld FillPos[] FastList`1::m_buffer IL_0532: ldloc.s 28 (System.Int32) IL_0534: ldelema ZoneTool+FillPos IL_0539: ldobj ZoneTool+FillPos IL_053E: stloc.s 29 (ZoneTool+FillPos) IL_0540: ldarg.0 IL_0541: ldfld System.UInt64[] ZoneTool::m_fillBuffer1 IL_0546: ldloca.s 29 (ZoneTool+FillPos) IL_0548: ldfld System.Byte FillPos::m_z IL_054D: ldelema System.UInt64 IL_0552: dup IL_0553: ldind.i8 IL_0554: ldc.i4.1 IL_0555: conv.i8 IL_0556: ldloca.s 29 (ZoneTool+FillPos) IL_0558: ldfld System.Byte FillPos::m_x IL_055D: ldc.i4.s 63 IL_055F: and IL_0560: shl IL_0561: or IL_0562: stind.i8 IL_0563: ldloc.s 28 (System.Int32) IL_0565: ldc.i4.1 IL_0566: add IL_0567: stloc.s 28 (System.Int32) IL_0569: Label29 IL_0569: ldloc.s 28 (System.Int32) IL_056B: ldarg.0 IL_056C: ldfld FastList`1 ZoneTool::m_fillPositions IL_0571: ldfld System.Int32 FastList`1::m_size IL_0576: blt => Label30 IL_057B: ldc.i4.1 IL_057C: br => Label33 IL_0581: Label12 IL_0581: ldc.i4.0 IL_0582: stloc.s 30 (System.Int32) IL_0584: br => Label31 IL_0589: Label32 IL_0589: ldarg.0 IL_058A: ldfld System.UInt64[] ZoneTool::m_fillBuffer1 IL_058F: ldloc.s 30 (System.Int32) IL_0591: ldc.i4.0 IL_0592: conv.i8 IL_0593: stelem.i8 IL_0594: ldloc.s 30 (System.Int32) IL_0596: ldc.i4.1 IL_0597: add IL_0598: stloc.s 30 (System.Int32) IL_059A: Label31 IL_059A: ldloc.s 30 (System.Int32) IL_059C: ldc.i4.s 64 IL_059E: blt => Label32 IL_05A3: ldc.i4.0 IL_05A4: // end original IL_05A4: Label33 IL_05A4: ret DONE ### Harmony id=com.github.algernon-A.csl.lsmr, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void AlgernonCommons.Patching.PatcherBase::PrefixMethod(System.Reflection.MethodInfo target, System.Reflection.MethodInfo patch), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F59B280 ### At 2022-09-14 06.35.56 ### Patch: static System.String BuildConfig::ResolveCustomAssetName(System.String name) ### Replacement: static System.String BuildConfig::BuildConfig.ResolveCustomAssetName_Patch1(System.String name) IL_0000: Local var 0: ColossalFramework.Packaging.Package/Asset IL_0000: Local var 1: System.Collections.Generic.IEnumerator`1 IL_0000: Local var 2: System.String IL_0000: Local var 3: System.String IL_0000: Local var 4: System.Boolean IL_0000: ldnull IL_0001: stloc 3 (System.String) IL_0005: ldc.i4 0 IL_000A: stloc 4 (System.Boolean) IL_000E: ldc.i4.1 IL_000F: stloc 4 (System.Boolean) IL_0013: ldloc 4 (System.Boolean) IL_0017: brfalse => Label1 IL_001C: ldloca 3 (System.String) IL_0020: ldarg 0 IL_0024: call static System.Boolean LoadingScreenMod.CustomDeserializer::ResolveCustomAssetName(System.String& __result, System.String name) IL_0029: stloc 4 (System.Boolean) IL_002D: Label1 IL_002D: nop IL_002E: ldloc 4 (System.Boolean) IL_0032: brfalse => Label0 IL_0037: // start original IL_0037: ldc.i4.1 IL_0038: newarr ColossalFramework.Packaging.Package+AssetType IL_003D: dup IL_003E: ldc.i4.0 IL_003F: ldsfld ColossalFramework.Packaging.AssetType ColossalFramework.Packaging.AssetType::Object IL_0044: stelem.ref IL_0045: call static System.Collections.Generic.IEnumerable`1 ColossalFramework.Packaging.PackageManager::FilterAssets(AssetType[] assetTypes) IL_004A: callvirt abstract virtual System.Collections.Generic.IEnumerator`1 System.Collections.Generic.IEnumerable`1::GetEnumerator() IL_004F: stloc.1 .try { IL_0050: br => Label2 IL_0055: Label6 IL_0055: ldloc.1 IL_0056: callvirt abstract virtual ColossalFramework.Packaging.Asset System.Collections.Generic.IEnumerator`1::get_Current() IL_005B: stloc.0 IL_005C: ldloc.0 IL_005D: callvirt System.Boolean ColossalFramework.Packaging.Asset::get_isEnabled() IL_0062: brfalse => Label3 IL_0067: ldloc.0 IL_0068: callvirt System.String ColossalFramework.Packaging.Asset::get_name() IL_006D: ldarg.0 IL_006E: call static System.Boolean System.String::op_Equality(System.String a, System.String b) IL_0073: brfalse => Label4 IL_0078: ldloc.0 IL_0079: callvirt ColossalFramework.Packaging.Package ColossalFramework.Packaging.Asset::get_package() IL_007E: callvirt System.String ColossalFramework.Packaging.Package::get_packageName() IL_0083: ldstr "." IL_0088: ldarg.0 IL_0089: call static System.String System.String::Concat(System.String str0, System.String str1, System.String str2) IL_008E: stloc.2 IL_008F: leave => Label5 IL_0094: Label2 IL_0094: Label3 IL_0094: Label4 IL_0094: ldloc.1 IL_0095: callvirt abstract virtual System.Boolean System.Collections.IEnumerator::MoveNext() IL_009A: brtrue => Label6 IL_009F: leave => Label7 IL_00A4: leave => (autogenerated) } // end try .finally { IL_00A9: ldloc.1 IL_00AA: brfalse => Label8 IL_00AF: ldloc.1 IL_00B0: callvirt abstract virtual System.Void System.IDisposable::Dispose() IL_00B5: Label8 IL_00B5: endfinally IL_00B6: leave => (autogenerated) } // end handler IL_00B7: Label7 IL_00B7: ldarg.0 IL_00B8: br => Label13 IL_00BD: Label5 IL_00BD: ldloc.2 IL_00BE: // end original IL_00BE: Label13 IL_00BE: stloc 3 (System.String) IL_00C2: Label0 IL_00C2: ldloc 3 (System.String) IL_00C6: ret DONE ### Harmony id=com.github.algernon-A.csl.lsmr, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void AlgernonCommons.Patching.PatcherBase::PrefixMethod(System.Reflection.MethodInfo target, System.Reflection.MethodInfo patch), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F59B280 ### At 2022-09-14 06.35.56 ### Patch: System.Byte[] ColossalFramework.Packaging.PackageReader::ReadByteArray() ### Replacement: static System.Byte[] ColossalFramework.Packaging.PackageReader::ColossalFramework.Packaging.PackageReader.ReadByteArray_Patch1(ColossalFramework.Packaging.PackageReader this) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: System.Byte[] IL_0000: Local var 2: System.Int32 IL_0000: Local var 3: System.Byte[] IL_0000: Local var 4: System.Boolean IL_0000: ldnull IL_0001: stloc 3 (System.Byte[]) IL_0005: ldc.i4 0 IL_000A: stloc 4 (System.Boolean) IL_000E: ldc.i4.1 IL_000F: stloc 4 (System.Boolean) IL_0013: ldloc 4 (System.Boolean) IL_0017: brfalse => Label1 IL_001C: ldloca 3 (System.Byte[]) IL_0020: ldarg.0 IL_0021: call static System.Boolean LoadingScreenMod.MemReader::DreadByteArray(System.Byte[]& __result, ColossalFramework.Packaging.PackageReader __instance) IL_0026: stloc 4 (System.Boolean) IL_002A: Label1 IL_002A: nop IL_002B: ldloc 4 (System.Boolean) IL_002F: brfalse => Label0 IL_0034: // start original IL_0034: ldarg.0 IL_0035: callvirt virtual System.Int32 System.IO.BinaryReader::ReadInt32() IL_003A: stloc.0 IL_003B: ldloc.0 IL_003C: newarr System.Byte IL_0041: stloc.1 IL_0042: ldc.i4.0 IL_0043: stloc.2 IL_0044: br => Label2 IL_0049: Label3 IL_0049: ldloc.1 IL_004A: ldloc.2 IL_004B: ldarg.0 IL_004C: callvirt virtual System.Byte System.IO.BinaryReader::ReadByte() IL_0051: stelem.i1 IL_0052: ldloc.2 IL_0053: ldc.i4.1 IL_0054: add IL_0055: stloc.2 IL_0056: Label2 IL_0056: ldloc.2 IL_0057: ldloc.0 IL_0058: blt => Label3 IL_005D: ldloc.1 IL_005E: // end original IL_005E: stloc 3 (System.Byte[]) IL_0062: Label0 IL_0062: ldloc 3 (System.Byte[]) IL_0066: ret DONE ### Harmony id=com.github.algernon-A.csl.lsmr, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void AlgernonCommons.Patching.PatcherBase::PrefixMethod(System.Reflection.MethodInfo target, System.Reflection.MethodInfo patch), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F59B280 ### At 2022-09-14 06.35.56 ### Patch: System.Void LoadingAnimation::SetImage(UnityEngine.Mesh mesh, UnityEngine.Material material, System.Single scale, System.Boolean showAnimation) ### Replacement: static System.Void LoadingAnimation::LoadingAnimation.SetImage_Patch1(LoadingAnimation this, UnityEngine.Mesh mesh, UnityEngine.Material material, System.Single scale, System.Boolean showAnimation) IL_0000: Local var 0: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 0 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 0 (System.Boolean) IL_000E: ldloc 0 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: ldarg 3 IL_0023: call static System.Boolean LoadingScreenModRevisited.LoadingScreen::SetImage(UnityEngine.Mesh mesh, UnityEngine.Material material, System.Single scale) IL_0028: stloc 0 (System.Boolean) IL_002C: Label1 IL_002C: nop IL_002D: ldloc 0 (System.Boolean) IL_0031: brfalse => Label0 IL_0036: // start original IL_0036: ldarg.0 IL_0037: ldfld System.Boolean LoadingAnimation::m_imageLoaded IL_003C: brfalse => Label2 IL_0041: ldarg.0 IL_0042: ldfld System.Single LoadingAnimation::m_imageAlpha IL_0047: ldc.r4 0 IL_004C: beq => Label3 IL_0051: ldarg.0 IL_0052: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial2 IL_0057: ldnull IL_0058: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_005D: brfalse => Label4 IL_0062: ldarg.0 IL_0063: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial2 IL_0068: call static System.Void UnityEngine.Object::Destroy(UnityEngine.Object obj) IL_006D: ldarg.0 IL_006E: ldnull IL_006F: stfld UnityEngine.Material LoadingAnimation::m_imageMaterial2 IL_0074: Label4 IL_0074: ldarg.0 IL_0075: ldarg.1 IL_0076: stfld UnityEngine.Mesh LoadingAnimation::m_imageMesh2 IL_007B: ldarg.0 IL_007C: ldarg.2 IL_007D: newobj System.Void UnityEngine.Material::.ctor(UnityEngine.Material source) IL_0082: stfld UnityEngine.Material LoadingAnimation::m_imageMaterial2 IL_0087: ldarg.0 IL_0088: ldc.i4.1 IL_0089: stfld System.Boolean LoadingAnimation::m_imageLoaded2 IL_008E: ldarg.0 IL_008F: ldarg.s 4 IL_0091: stfld System.Boolean LoadingAnimation::m_imageShowAnimation2 IL_0096: ldarg.0 IL_0097: ldarg.3 IL_0098: stfld System.Single LoadingAnimation::m_imageScale2 IL_009D: br => Label5 IL_00A2: Label2 IL_00A2: Label3 IL_00A2: ldarg.0 IL_00A3: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_00A8: ldnull IL_00A9: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_00AE: brfalse => Label6 IL_00B3: ldarg.0 IL_00B4: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_00B9: call static System.Void UnityEngine.Object::Destroy(UnityEngine.Object obj) IL_00BE: ldarg.0 IL_00BF: ldnull IL_00C0: stfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_00C5: Label6 IL_00C5: ldarg.0 IL_00C6: ldarg.1 IL_00C7: stfld UnityEngine.Mesh LoadingAnimation::m_imageMesh IL_00CC: ldarg.0 IL_00CD: ldarg.2 IL_00CE: newobj System.Void UnityEngine.Material::.ctor(UnityEngine.Material source) IL_00D3: stfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_00D8: ldarg.0 IL_00D9: ldc.i4.1 IL_00DA: stfld System.Boolean LoadingAnimation::m_imageLoaded IL_00DF: ldarg.0 IL_00E0: ldarg.s 4 IL_00E2: stfld System.Boolean LoadingAnimation::m_imageShowAnimation IL_00E7: ldarg.0 IL_00E8: ldarg.3 IL_00E9: stfld System.Single LoadingAnimation::m_imageScale IL_00EE: ldarg.0 IL_00EF: ldc.r4 0 IL_00F4: stfld System.Single LoadingAnimation::m_imageAlpha IL_00F9: // end original IL_00F9: Label5 IL_00F9: Label0 IL_00F9: ret DONE ### Harmony id=com.github.algernon-A.csl.lsmr, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void AlgernonCommons.Patching.PatcherBase::PrefixMethod(System.Reflection.MethodInfo target, System.Reflection.MethodInfo patch), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F59B280 ### At 2022-09-14 06.35.56 ### Patch: System.Void LoadingAnimation::OnEnable() ### Replacement: static System.Void LoadingAnimation::LoadingAnimation.OnEnable_Patch1(LoadingAnimation this) IL_0000: Local var 0: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 0 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 0 (System.Boolean) IL_000E: ldloc 0 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: call static System.Boolean LoadingScreenModRevisited.LoadingScreen::OnEnable() IL_001C: stloc 0 (System.Boolean) IL_0020: Label1 IL_0020: nop IL_0021: ldloc 0 (System.Boolean) IL_0025: brfalse => Label0 IL_002A: // start original IL_002A: ldarg.0 IL_002B: ldfld UnityEngine.Camera LoadingAnimation::m_camera IL_0030: ldc.i4.1 IL_0031: callvirt System.Void UnityEngine.Behaviour::set_enabled(System.Boolean value) IL_0036: ldarg.0 IL_0037: ldc.r4 1 IL_003C: stfld System.Single LoadingAnimation::m_totalAlpha IL_0041: ldarg.0 IL_0042: ldc.i4.0 IL_0043: stfld System.Boolean LoadingAnimation::m_fadeAway IL_0048: ldarg.0 IL_0049: ldc.i4.0 IL_004A: stfld System.Boolean LoadingAnimation::m_fadeImage IL_004F: ldarg.0 IL_0050: ldc.i4.0 IL_0051: stfld System.Boolean LoadingAnimation::m_skipped IL_0056: ldarg.0 IL_0057: ldc.r4 -1 IL_005C: stfld System.Single LoadingAnimation::m_progress IL_0061: ldarg.0 IL_0062: ldc.r4 -1 IL_0067: stfld System.Single LoadingAnimation::m_targetProgress IL_006C: ldarg.0 IL_006D: ldfld UnityEngine.Camera LoadingAnimation::m_camera IL_0072: ldc.i4.2 IL_0073: callvirt System.Void UnityEngine.Camera::set_clearFlags(UnityEngine.CameraClearFlags value) IL_0078: ldsfld ColossalFramework.UI.CallbackRequestCharacterInfo ColossalFramework.UI.UIFontManager::callbackRequestCharacterInfo IL_007D: ldarg.0 IL_007E: ldftn System.Void LoadingAnimation::RequestCharacterInfo() IL_0084: newobj System.Void ColossalFramework.UI.CallbackRequestCharacterInfo::.ctor(System.Object object, System.IntPtr method) IL_0089: call static System.Delegate System.Delegate::Combine(System.Delegate a, System.Delegate b) IL_008E: castclass ColossalFramework.UI.UIFontManager+CallbackRequestCharacterInfo IL_0093: stsfld ColossalFramework.UI.CallbackRequestCharacterInfo ColossalFramework.UI.UIFontManager::callbackRequestCharacterInfo IL_0098: ldarg.0 IL_0099: ldftn System.Void LoadingAnimation::FontTextureRebuilt(UnityEngine.Font font) IL_009F: newobj System.Void System.Action`1::.ctor(System.Object object, System.IntPtr method) IL_00A4: call static System.Void UnityEngine.Font::add_textureRebuilt(System.Action`1 value) IL_00A9: // end original IL_00A9: Label0 IL_00A9: ret DONE ### Harmony id=com.github.algernon-A.csl.lsmr, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void AlgernonCommons.Patching.PatcherBase::PrefixMethod(System.Reflection.MethodInfo target, System.Reflection.MethodInfo patch), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F59B280 ### At 2022-09-14 06.35.56 ### Patch: System.Void LoadingAnimation::OnDisable() ### Replacement: static System.Void LoadingAnimation::LoadingAnimation.OnDisable_Patch1(LoadingAnimation this) IL_0000: Local var 0: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 0 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 0 (System.Boolean) IL_000E: ldloc 0 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: call static System.Boolean LoadingScreenModRevisited.LoadingScreen::OnDisable() IL_001C: stloc 0 (System.Boolean) IL_0020: Label1 IL_0020: nop IL_0021: ldloc 0 (System.Boolean) IL_0025: brfalse => Label0 IL_002A: // start original IL_002A: ldsfld ColossalFramework.UI.CallbackRequestCharacterInfo ColossalFramework.UI.UIFontManager::callbackRequestCharacterInfo IL_002F: ldarg.0 IL_0030: ldftn System.Void LoadingAnimation::RequestCharacterInfo() IL_0036: newobj System.Void ColossalFramework.UI.CallbackRequestCharacterInfo::.ctor(System.Object object, System.IntPtr method) IL_003B: call static System.Delegate System.Delegate::Remove(System.Delegate source, System.Delegate value) IL_0040: castclass ColossalFramework.UI.UIFontManager+CallbackRequestCharacterInfo IL_0045: stsfld ColossalFramework.UI.CallbackRequestCharacterInfo ColossalFramework.UI.UIFontManager::callbackRequestCharacterInfo IL_004A: ldarg.0 IL_004B: ldftn System.Void LoadingAnimation::FontTextureRebuilt(UnityEngine.Font font) IL_0051: newobj System.Void System.Action`1::.ctor(System.Object object, System.IntPtr method) IL_0056: call static System.Void UnityEngine.Font::remove_textureRebuilt(System.Action`1 value) IL_005B: ldarg.0 IL_005C: ldfld UnityEngine.Camera LoadingAnimation::m_camera IL_0061: ldc.i4.0 IL_0062: callvirt System.Void UnityEngine.Behaviour::set_enabled(System.Boolean value) IL_0067: ldarg.0 IL_0068: ldnull IL_0069: stfld UnityEngine.Mesh LoadingAnimation::m_imageMesh IL_006E: ldarg.0 IL_006F: ldc.i4.0 IL_0070: stfld System.Boolean LoadingAnimation::m_imageLoaded IL_0075: ldarg.0 IL_0076: ldc.r4 0 IL_007B: stfld System.Single LoadingAnimation::m_imageAlpha IL_0080: ldarg.0 IL_0081: ldnull IL_0082: stfld UnityEngine.Mesh LoadingAnimation::m_imageMesh2 IL_0087: ldarg.0 IL_0088: ldc.i4.0 IL_0089: stfld System.Boolean LoadingAnimation::m_imageLoaded2 IL_008E: ldarg.0 IL_008F: ldnull IL_0090: stfld ColossalFramework.UI.UIFont LoadingAnimation::m_font IL_0095: ldarg.0 IL_0096: ldnull IL_0097: stfld System.String LoadingAnimation::m_title IL_009C: ldarg.0 IL_009D: ldnull IL_009E: stfld System.String LoadingAnimation::m_text IL_00A3: ldarg.0 IL_00A4: ldc.i4.0 IL_00A5: stfld System.Boolean LoadingAnimation::m_textLoaded IL_00AA: ldarg.0 IL_00AB: ldc.r4 0 IL_00B0: stfld System.Single LoadingAnimation::m_textAlpha IL_00B5: ldarg.0 IL_00B6: ldc.r4 -1 IL_00BB: stfld System.Single LoadingAnimation::m_progress IL_00C0: ldarg.0 IL_00C1: ldc.r4 -1 IL_00C6: stfld System.Single LoadingAnimation::m_targetProgress IL_00CB: ldarg.0 IL_00CC: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_00D1: ldnull IL_00D2: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_00D7: brfalse => Label2 IL_00DC: ldarg.0 IL_00DD: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_00E2: call static System.Void UnityEngine.Object::Destroy(UnityEngine.Object obj) IL_00E7: ldarg.0 IL_00E8: ldnull IL_00E9: stfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_00EE: Label2 IL_00EE: ldarg.0 IL_00EF: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial2 IL_00F4: ldnull IL_00F5: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_00FA: brfalse => Label3 IL_00FF: ldarg.0 IL_0100: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial2 IL_0105: call static System.Void UnityEngine.Object::Destroy(UnityEngine.Object obj) IL_010A: ldarg.0 IL_010B: ldnull IL_010C: stfld UnityEngine.Material LoadingAnimation::m_imageMaterial2 IL_0111: Label3 IL_0111: ldarg.0 IL_0112: ldfld UnityEngine.Material LoadingAnimation::m_textMaterial IL_0117: ldnull IL_0118: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_011D: brfalse => Label4 IL_0122: ldarg.0 IL_0123: ldfld UnityEngine.Material LoadingAnimation::m_textMaterial IL_0128: call static System.Void UnityEngine.Object::Destroy(UnityEngine.Object obj) IL_012D: ldarg.0 IL_012E: ldnull IL_012F: stfld UnityEngine.Material LoadingAnimation::m_textMaterial IL_0134: Label4 IL_0134: ldarg.0 IL_0135: ldfld UnityEngine.Mesh LoadingAnimation::m_textMesh IL_013A: ldnull IL_013B: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_0140: brfalse => Label5 IL_0145: ldarg.0 IL_0146: ldfld UnityEngine.Mesh LoadingAnimation::m_textMesh IL_014B: call static System.Void UnityEngine.Object::Destroy(UnityEngine.Object obj) IL_0150: ldarg.0 IL_0151: ldnull IL_0152: stfld UnityEngine.Mesh LoadingAnimation::m_textMesh IL_0157: // end original IL_0157: Label5 IL_0157: Label0 IL_0157: ret DONE ### Harmony id=com.github.algernon-A.csl.lsmr, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void AlgernonCommons.Patching.PatcherBase::PrefixMethod(System.Reflection.MethodInfo target, System.Reflection.MethodInfo patch), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F59B280 ### At 2022-09-14 06.35.56 ### Patch: System.Void LoadingAnimation::Update() ### Replacement: static System.Void LoadingAnimation::LoadingAnimation.Update_Patch1(LoadingAnimation this) IL_0000: Local var 0: System.Single IL_0000: Local var 1: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 1 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 1 (System.Boolean) IL_000E: ldloc 1 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: call static System.Boolean LoadingScreenModRevisited.LoadingScreen::Update() IL_001C: stloc 1 (System.Boolean) IL_0020: Label1 IL_0020: nop IL_0021: ldloc 1 (System.Boolean) IL_0025: brfalse => Label0 IL_002A: // start original IL_002A: call static System.Boolean UnityEngine.Input::get_anyKey() IL_002F: brtrue => Label2 IL_0034: call static System.Boolean SteamController::GetAnyDigitalActionDown() IL_0039: brfalse => Label3 IL_003E: Label2 IL_003E: call static System.Void UnityEngine.Input::ResetInputAxes() IL_0043: ldarg.0 IL_0044: ldc.i4.1 IL_0045: stfld System.Boolean LoadingAnimation::m_skipped IL_004A: Label3 IL_004A: ldc.r4 0.03333334 IL_004F: call static System.Single UnityEngine.Time::get_deltaTime() IL_0054: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0059: stloc.0 IL_005A: ldarg.0 IL_005B: dup IL_005C: ldfld System.Single LoadingAnimation::m_timer IL_0061: ldloc.0 IL_0062: add IL_0063: stfld System.Single LoadingAnimation::m_timer IL_0068: ldarg.0 IL_0069: ldfld System.Boolean LoadingAnimation::m_animationLoaded IL_006E: brfalse => Label4 IL_0073: ldarg.0 IL_0074: ldfld System.Boolean LoadingAnimation::m_imageLoaded IL_0079: brfalse => Label5 IL_007E: ldarg.0 IL_007F: ldfld System.Boolean LoadingAnimation::m_imageShowAnimation IL_0084: brtrue => Label6 IL_0089: ldarg.0 IL_008A: ldfld System.Boolean LoadingAnimation::m_fadeImage IL_008F: brfalse => Label7 IL_0094: Label5 IL_0094: Label6 IL_0094: ldarg.0 IL_0095: ldc.r4 1 IL_009A: ldarg.0 IL_009B: ldfld System.Single LoadingAnimation::m_animationAlpha IL_00A0: ldloc.0 IL_00A1: ldc.r4 2 IL_00A6: mul IL_00A7: add IL_00A8: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_00AD: stfld System.Single LoadingAnimation::m_animationAlpha IL_00B2: br => Label8 IL_00B7: Label7 IL_00B7: ldarg.0 IL_00B8: ldc.r4 0 IL_00BD: ldarg.0 IL_00BE: ldfld System.Single LoadingAnimation::m_animationAlpha IL_00C3: ldloc.0 IL_00C4: ldc.r4 2 IL_00C9: mul IL_00CA: sub IL_00CB: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00D0: stfld System.Single LoadingAnimation::m_animationAlpha IL_00D5: Label4 IL_00D5: Label8 IL_00D5: ldarg.0 IL_00D6: ldfld System.Single LoadingAnimation::m_targetProgress IL_00DB: ldc.r4 0 IL_00E0: blt.un => Label9 IL_00E5: ldarg.0 IL_00E6: ldfld System.Single LoadingAnimation::m_progress IL_00EB: ldc.r4 0 IL_00F0: bge.un => Label10 IL_00F5: ldarg.0 IL_00F6: ldc.r4 0 IL_00FB: stfld System.Single LoadingAnimation::m_progress IL_0100: Label10 IL_0100: ldarg.0 IL_0101: dup IL_0102: ldfld System.Single LoadingAnimation::m_progress IL_0107: ldarg.0 IL_0108: ldfld System.Single LoadingAnimation::m_targetProgress IL_010D: ldc.r4 0.05 IL_0112: add IL_0113: call static System.Single UnityEngine.Mathf::Clamp01(System.Single value) IL_0118: ldarg.0 IL_0119: ldfld System.Single LoadingAnimation::m_progress IL_011E: sub IL_011F: ldloc.0 IL_0120: mul IL_0121: add IL_0122: stfld System.Single LoadingAnimation::m_progress IL_0127: Label9 IL_0127: ldarg.0 IL_0128: ldfld System.Boolean LoadingAnimation::m_imageLoaded IL_012D: brfalse => Label11 IL_0132: ldarg.0 IL_0133: ldfld System.Boolean LoadingAnimation::m_imageLoaded2 IL_0138: brtrue => Label12 IL_013D: ldarg.0 IL_013E: ldfld System.Boolean LoadingAnimation::m_fadeImage IL_0143: brfalse => Label13 IL_0148: Label12 IL_0148: ldarg.0 IL_0149: ldc.r4 0 IL_014E: ldarg.0 IL_014F: ldfld System.Single LoadingAnimation::m_imageAlpha IL_0154: ldloc.0 IL_0155: ldc.r4 2 IL_015A: mul IL_015B: sub IL_015C: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0161: stfld System.Single LoadingAnimation::m_imageAlpha IL_0166: ldarg.0 IL_0167: ldfld System.Single LoadingAnimation::m_imageAlpha IL_016C: ldc.r4 0 IL_0171: bne.un => Label14 IL_0176: ldarg.0 IL_0177: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_017C: ldnull IL_017D: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_0182: brfalse => Label15 IL_0187: ldarg.0 IL_0188: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_018D: call static System.Void UnityEngine.Object::Destroy(UnityEngine.Object obj) IL_0192: ldarg.0 IL_0193: ldnull IL_0194: stfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_0199: Label15 IL_0199: ldarg.0 IL_019A: ldarg.0 IL_019B: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial2 IL_01A0: stfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_01A5: ldarg.0 IL_01A6: ldnull IL_01A7: stfld UnityEngine.Material LoadingAnimation::m_imageMaterial2 IL_01AC: ldarg.0 IL_01AD: ldarg.0 IL_01AE: ldfld UnityEngine.Mesh LoadingAnimation::m_imageMesh2 IL_01B3: stfld UnityEngine.Mesh LoadingAnimation::m_imageMesh IL_01B8: ldarg.0 IL_01B9: ldnull IL_01BA: stfld UnityEngine.Mesh LoadingAnimation::m_imageMesh2 IL_01BF: ldarg.0 IL_01C0: ldarg.0 IL_01C1: ldfld System.Boolean LoadingAnimation::m_imageLoaded2 IL_01C6: stfld System.Boolean LoadingAnimation::m_imageLoaded IL_01CB: ldarg.0 IL_01CC: ldc.i4.0 IL_01CD: stfld System.Boolean LoadingAnimation::m_imageLoaded2 IL_01D2: ldarg.0 IL_01D3: ldarg.0 IL_01D4: ldfld System.Boolean LoadingAnimation::m_imageShowAnimation2 IL_01D9: stfld System.Boolean LoadingAnimation::m_imageShowAnimation IL_01DE: ldarg.0 IL_01DF: ldarg.0 IL_01E0: ldfld System.Single LoadingAnimation::m_imageScale2 IL_01E5: stfld System.Single LoadingAnimation::m_imageScale IL_01EA: Label14 IL_01EA: br => Label16 IL_01EF: Label13 IL_01EF: ldarg.0 IL_01F0: ldc.r4 1 IL_01F5: ldarg.0 IL_01F6: ldfld System.Single LoadingAnimation::m_imageAlpha IL_01FB: ldloc.0 IL_01FC: ldc.r4 2 IL_0201: mul IL_0202: add IL_0203: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0208: stfld System.Single LoadingAnimation::m_imageAlpha IL_020D: Label11 IL_020D: Label16 IL_020D: ldarg.0 IL_020E: ldfld System.Boolean LoadingAnimation::m_textLoaded IL_0213: brfalse => Label17 IL_0218: ldarg.0 IL_0219: ldc.r4 1 IL_021E: ldarg.0 IL_021F: ldfld System.Single LoadingAnimation::m_textAlpha IL_0224: ldloc.0 IL_0225: ldc.r4 2 IL_022A: mul IL_022B: add IL_022C: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0231: stfld System.Single LoadingAnimation::m_textAlpha IL_0236: Label17 IL_0236: ldarg.0 IL_0237: ldfld System.Boolean LoadingAnimation::m_fadeAway IL_023C: brfalse => Label18 IL_0241: ldarg.0 IL_0242: ldfld UnityEngine.Camera LoadingAnimation::m_camera IL_0247: ldc.i4.4 IL_0248: callvirt System.Void UnityEngine.Camera::set_clearFlags(UnityEngine.CameraClearFlags value) IL_024D: ldarg.0 IL_024E: ldc.r4 0 IL_0253: ldarg.0 IL_0254: ldfld System.Single LoadingAnimation::m_totalAlpha IL_0259: ldloc.0 IL_025A: ldc.r4 4 IL_025F: mul IL_0260: sub IL_0261: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0266: stfld System.Single LoadingAnimation::m_totalAlpha IL_026B: ldarg.0 IL_026C: ldfld System.Single LoadingAnimation::m_totalAlpha IL_0271: ldc.r4 0.001 IL_0276: bge.un => Label19 IL_027B: ldarg.0 IL_027C: ldc.i4.0 IL_027D: call System.Void UnityEngine.Behaviour::set_enabled(System.Boolean value) IL_0282: Label19 IL_0282: br => Label20 IL_0287: Label18 IL_0287: ldarg.0 IL_0288: ldfld UnityEngine.Camera LoadingAnimation::m_camera IL_028D: ldc.i4.2 IL_028E: callvirt System.Void UnityEngine.Camera::set_clearFlags(UnityEngine.CameraClearFlags value) IL_0293: // end original IL_0293: Label20 IL_0293: Label0 IL_0293: ret DONE ### Harmony id=com.github.algernon-A.csl.lsmr, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void AlgernonCommons.Patching.PatcherBase::PrefixMethod(System.Reflection.MethodInfo target, System.Reflection.MethodInfo patch), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F59B280 ### At 2022-09-14 06.35.56 ### Patch: System.Void LoadingAnimation::OnPostRender() ### Replacement: static System.Void LoadingAnimation::LoadingAnimation.OnPostRender_Patch1(LoadingAnimation this) IL_0000: Local var 0: UnityEngine.Matrix4x4 IL_0000: Local var 1: System.Single IL_0000: Local var 2: System.Single IL_0000: Local var 3: UnityEngine.Texture2D IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Quaternion IL_0000: Local var 6: UnityEngine.Vector3 IL_0000: Local var 7: UnityEngine.Matrix4x4 IL_0000: Local var 8: System.Single IL_0000: Local var 9: UnityEngine.Vector3 IL_0000: Local var 10: UnityEngine.Quaternion IL_0000: Local var 11: UnityEngine.Vector3 IL_0000: Local var 12: UnityEngine.Matrix4x4 IL_0000: Local var 13: System.Single IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Quaternion IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Matrix4x4 IL_0000: Local var 18: System.Single IL_0000: Local var 19: UnityEngine.Vector3 IL_0000: Local var 20: UnityEngine.Quaternion IL_0000: Local var 21: UnityEngine.Vector3 IL_0000: Local var 22: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 22 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 22 (System.Boolean) IL_000E: ldloc 22 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: call static System.Boolean LoadingScreenModRevisited.LoadingScreen::OnPostRender() IL_001C: stloc 22 (System.Boolean) IL_0020: Label1 IL_0020: nop IL_0021: ldloc 22 (System.Boolean) IL_0025: brfalse => Label0 IL_002A: // start original IL_002A: ldarg.0 IL_002B: ldfld System.Boolean LoadingAnimation::m_imageLoaded IL_0030: brfalse => Label2 IL_0035: ldloca.s 0 (UnityEngine.Matrix4x4) IL_0037: initobj UnityEngine.Matrix4x4 IL_003D: ldc.r4 1 IL_0042: stloc.1 IL_0043: ldc.r4 2 IL_0048: ldarg.0 IL_0049: ldfld System.Single LoadingAnimation::m_imageScale IL_004E: mul IL_004F: stloc.2 IL_0050: ldarg.0 IL_0051: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_0056: callvirt UnityEngine.Texture UnityEngine.Material::get_mainTexture() IL_005B: isinst UnityEngine.Texture2D IL_0060: stloc.3 IL_0061: ldloc.3 IL_0062: ldnull IL_0063: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_0068: brfalse => Label3 IL_006D: ldloc.3 IL_006E: callvirt virtual System.Int32 UnityEngine.Texture::get_width() IL_0073: conv.r4 IL_0074: ldloc.3 IL_0075: callvirt virtual System.Int32 UnityEngine.Texture::get_height() IL_007A: conv.r4 IL_007B: div IL_007C: stloc.1 IL_007D: Label3 IL_007D: ldloca.s 4 (UnityEngine.Vector3) IL_007F: ldc.r4 0 IL_0084: ldc.r4 0 IL_0089: ldc.r4 10 IL_008E: call System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0093: call static UnityEngine.Quaternion UnityEngine.Quaternion::get_identity() IL_0098: stloc.s 5 (UnityEngine.Quaternion) IL_009A: ldloca.s 6 (UnityEngine.Vector3) IL_009C: ldloc.2 IL_009D: ldloc.1 IL_009E: mul IL_009F: ldloc.2 IL_00A0: ldloc.2 IL_00A1: call System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_00A6: ldloca.s 0 (UnityEngine.Matrix4x4) IL_00A8: ldloc.s 4 (UnityEngine.Vector3) IL_00AA: ldloc.s 5 (UnityEngine.Quaternion) IL_00AC: ldloc.s 6 (UnityEngine.Vector3) IL_00AE: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3 pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s) IL_00B3: ldarg.0 IL_00B4: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_00B9: ldc.r4 1 IL_00BE: ldc.r4 1 IL_00C3: ldc.r4 1 IL_00C8: ldarg.0 IL_00C9: ldfld System.Single LoadingAnimation::m_imageAlpha IL_00CE: ldarg.0 IL_00CF: ldfld System.Single LoadingAnimation::m_totalAlpha IL_00D4: mul IL_00D5: newobj System.Void UnityEngine.Color::.ctor(System.Single r, System.Single g, System.Single b, System.Single a) IL_00DA: callvirt System.Void UnityEngine.Material::set_color(UnityEngine.Color value) IL_00DF: ldarg.0 IL_00E0: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_00E5: ldc.i4.0 IL_00E6: callvirt System.Boolean UnityEngine.Material::SetPass(System.Int32 pass) IL_00EB: brfalse => Label4 IL_00F0: ldarg.0 IL_00F1: ldfld UnityEngine.Mesh LoadingAnimation::m_imageMesh IL_00F6: ldloc.0 IL_00F7: call static System.Void UnityEngine.Graphics::DrawMeshNow(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix) IL_00FC: Label2 IL_00FC: Label4 IL_00FC: ldarg.0 IL_00FD: ldfld System.Boolean LoadingAnimation::m_animationLoaded IL_0102: brfalse => Label5 IL_0107: ldloca.s 7 (UnityEngine.Matrix4x4) IL_0109: initobj UnityEngine.Matrix4x4 IL_010F: ldarg.0 IL_0110: ldfld System.Single LoadingAnimation::m_animationScale IL_0115: stloc.s 8 (System.Single) IL_0117: ldloca.s 9 (UnityEngine.Vector3) IL_0119: ldc.r4 0 IL_011E: ldc.r4 0 IL_0123: ldc.r4 10 IL_0128: call System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_012D: ldarg.0 IL_012E: ldfld System.Single LoadingAnimation::m_timer IL_0133: ldarg.0 IL_0134: ldfld System.Single LoadingAnimation::m_rotationSpeed IL_0139: mul IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::get_back() IL_013F: call static UnityEngine.Quaternion UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis) IL_0144: stloc.s 10 (UnityEngine.Quaternion) IL_0146: ldloca.s 11 (UnityEngine.Vector3) IL_0148: ldloc.s 8 (System.Single) IL_014A: ldloc.s 8 (System.Single) IL_014C: ldloc.s 8 (System.Single) IL_014E: call System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0153: ldloca.s 7 (UnityEngine.Matrix4x4) IL_0155: ldloc.s 9 (UnityEngine.Vector3) IL_0157: ldloc.s 10 (UnityEngine.Quaternion) IL_0159: ldloc.s 11 (UnityEngine.Vector3) IL_015B: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3 pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s) IL_0160: ldarg.0 IL_0161: ldfld UnityEngine.Material LoadingAnimation::m_animationMaterial IL_0166: ldc.r4 1 IL_016B: ldc.r4 1 IL_0170: ldc.r4 1 IL_0175: ldarg.0 IL_0176: ldfld System.Single LoadingAnimation::m_animationAlpha IL_017B: ldarg.0 IL_017C: ldfld System.Single LoadingAnimation::m_totalAlpha IL_0181: mul IL_0182: newobj System.Void UnityEngine.Color::.ctor(System.Single r, System.Single g, System.Single b, System.Single a) IL_0187: callvirt System.Void UnityEngine.Material::set_color(UnityEngine.Color value) IL_018C: ldarg.0 IL_018D: ldfld UnityEngine.Material LoadingAnimation::m_animationMaterial IL_0192: ldc.i4.0 IL_0193: callvirt System.Boolean UnityEngine.Material::SetPass(System.Int32 pass) IL_0198: brfalse => Label6 IL_019D: ldarg.0 IL_019E: ldfld UnityEngine.Mesh LoadingAnimation::m_animationMesh IL_01A3: ldloc.s 7 (UnityEngine.Matrix4x4) IL_01A5: call static System.Void UnityEngine.Graphics::DrawMeshNow(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix) IL_01AA: Label5 IL_01AA: Label6 IL_01AA: ldarg.0 IL_01AB: ldfld System.Boolean LoadingAnimation::m_animationLoaded IL_01B0: brfalse => Label7 IL_01B5: ldarg.0 IL_01B6: ldfld System.Single LoadingAnimation::m_progress IL_01BB: ldc.r4 0 IL_01C0: blt.un => Label8 IL_01C5: ldloca.s 12 (UnityEngine.Matrix4x4) IL_01C7: initobj UnityEngine.Matrix4x4 IL_01CD: ldarg.0 IL_01CE: ldfld System.Single LoadingAnimation::m_animationScale IL_01D3: stloc.s 13 (System.Single) IL_01D5: ldloca.s 14 (UnityEngine.Vector3) IL_01D7: ldc.r4 0 IL_01DC: ldarg.0 IL_01DD: ldfld System.Single LoadingAnimation::m_animationScale IL_01E2: ldc.r4 -0.8 IL_01E7: mul IL_01E8: ldc.r4 10 IL_01ED: call System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_01F2: call static UnityEngine.Quaternion UnityEngine.Quaternion::get_identity() IL_01F7: stloc.s 15 (UnityEngine.Quaternion) IL_01F9: ldloca.s 16 (UnityEngine.Vector3) IL_01FB: ldloc.s 13 (System.Single) IL_01FD: ldc.r4 2 IL_0202: mul IL_0203: ldloc.s 13 (System.Single) IL_0205: ldc.r4 8 IL_020A: div IL_020B: ldloc.s 13 (System.Single) IL_020D: call System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0212: ldloca.s 12 (UnityEngine.Matrix4x4) IL_0214: ldloc.s 14 (UnityEngine.Vector3) IL_0216: ldloc.s 15 (UnityEngine.Quaternion) IL_0218: ldloc.s 16 (UnityEngine.Vector3) IL_021A: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3 pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s) IL_021F: ldarg.0 IL_0220: ldfld UnityEngine.Material LoadingAnimation::m_barBGMaterial IL_0225: ldc.r4 1 IL_022A: ldc.r4 1 IL_022F: ldc.r4 1 IL_0234: ldarg.0 IL_0235: ldfld System.Single LoadingAnimation::m_animationAlpha IL_023A: ldarg.0 IL_023B: ldfld System.Single LoadingAnimation::m_totalAlpha IL_0240: mul IL_0241: newobj System.Void UnityEngine.Color::.ctor(System.Single r, System.Single g, System.Single b, System.Single a) IL_0246: callvirt System.Void UnityEngine.Material::set_color(UnityEngine.Color value) IL_024B: ldarg.0 IL_024C: ldfld UnityEngine.Material LoadingAnimation::m_barBGMaterial IL_0251: ldc.i4.0 IL_0252: callvirt System.Boolean UnityEngine.Material::SetPass(System.Int32 pass) IL_0257: brfalse => Label9 IL_025C: ldarg.0 IL_025D: ldfld UnityEngine.Mesh LoadingAnimation::m_animationMesh IL_0262: ldloc.s 12 (UnityEngine.Matrix4x4) IL_0264: call static System.Void UnityEngine.Graphics::DrawMeshNow(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix) IL_0269: Label9 IL_0269: ldloca.s 16 (UnityEngine.Vector3) IL_026B: dup IL_026C: ldfld System.Single UnityEngine.Vector3::y IL_0271: ldc.r4 0.8 IL_0276: mul IL_0277: stfld System.Single UnityEngine.Vector3::y IL_027C: ldloca.s 16 (UnityEngine.Vector3) IL_027E: dup IL_027F: ldfld System.Single UnityEngine.Vector3::x IL_0284: ldc.r4 0.9875 IL_0289: mul IL_028A: stfld System.Single UnityEngine.Vector3::x IL_028F: ldloca.s 14 (UnityEngine.Vector3) IL_0291: dup IL_0292: ldfld System.Single UnityEngine.Vector3::x IL_0297: ldloca.s 16 (UnityEngine.Vector3) IL_0299: ldfld System.Single UnityEngine.Vector3::x IL_029E: ldc.r4 1 IL_02A3: ldarg.0 IL_02A4: ldfld System.Single LoadingAnimation::m_progress IL_02A9: sub IL_02AA: mul IL_02AB: ldc.r4 0.5 IL_02B0: mul IL_02B1: sub IL_02B2: stfld System.Single UnityEngine.Vector3::x IL_02B7: ldloca.s 16 (UnityEngine.Vector3) IL_02B9: dup IL_02BA: ldfld System.Single UnityEngine.Vector3::x IL_02BF: ldarg.0 IL_02C0: ldfld System.Single LoadingAnimation::m_progress IL_02C5: mul IL_02C6: stfld System.Single UnityEngine.Vector3::x IL_02CB: ldloca.s 12 (UnityEngine.Matrix4x4) IL_02CD: ldloc.s 14 (UnityEngine.Vector3) IL_02CF: ldloc.s 15 (UnityEngine.Quaternion) IL_02D1: ldloc.s 16 (UnityEngine.Vector3) IL_02D3: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3 pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s) IL_02D8: ldarg.0 IL_02D9: ldfld UnityEngine.Material LoadingAnimation::m_barFGMaterial IL_02DE: ldc.r4 1 IL_02E3: ldc.r4 1 IL_02E8: ldc.r4 1 IL_02ED: ldarg.0 IL_02EE: ldfld System.Single LoadingAnimation::m_animationAlpha IL_02F3: ldarg.0 IL_02F4: ldfld System.Single LoadingAnimation::m_totalAlpha IL_02F9: mul IL_02FA: newobj System.Void UnityEngine.Color::.ctor(System.Single r, System.Single g, System.Single b, System.Single a) IL_02FF: callvirt System.Void UnityEngine.Material::set_color(UnityEngine.Color value) IL_0304: ldarg.0 IL_0305: ldfld UnityEngine.Material LoadingAnimation::m_barFGMaterial IL_030A: ldc.i4.0 IL_030B: callvirt System.Boolean UnityEngine.Material::SetPass(System.Int32 pass) IL_0310: brfalse => Label10 IL_0315: ldarg.0 IL_0316: ldfld UnityEngine.Mesh LoadingAnimation::m_animationMesh IL_031B: ldloc.s 12 (UnityEngine.Matrix4x4) IL_031D: call static System.Void UnityEngine.Graphics::DrawMeshNow(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix) IL_0322: Label7 IL_0322: Label8 IL_0322: Label10 IL_0322: ldarg.0 IL_0323: ldfld System.Boolean LoadingAnimation::m_textLoaded IL_0328: brfalse => Label11 IL_032D: ldloca.s 17 (UnityEngine.Matrix4x4) IL_032F: initobj UnityEngine.Matrix4x4 IL_0335: ldc.r4 0.001851852 IL_033A: stloc.s 18 (System.Single) IL_033C: ldloca.s 19 (UnityEngine.Vector3) IL_033E: ldc.r4 0 IL_0343: ldarg.0 IL_0344: ldfld System.Single LoadingAnimation::m_animationScale IL_0349: ldc.r4 -1.2 IL_034E: mul IL_034F: ldc.r4 10 IL_0354: call System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0359: call static UnityEngine.Quaternion UnityEngine.Quaternion::get_identity() IL_035E: stloc.s 20 (UnityEngine.Quaternion) IL_0360: ldloca.s 21 (UnityEngine.Vector3) IL_0362: ldloc.s 18 (System.Single) IL_0364: ldloc.s 18 (System.Single) IL_0366: ldloc.s 18 (System.Single) IL_0368: call System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_036D: ldloca.s 17 (UnityEngine.Matrix4x4) IL_036F: ldloc.s 19 (UnityEngine.Vector3) IL_0371: ldloc.s 20 (UnityEngine.Quaternion) IL_0373: ldloc.s 21 (UnityEngine.Vector3) IL_0375: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3 pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s) IL_037A: ldarg.0 IL_037B: ldfld UnityEngine.Material LoadingAnimation::m_textMaterial IL_0380: ldc.r4 1 IL_0385: ldc.r4 1 IL_038A: ldc.r4 1 IL_038F: ldarg.0 IL_0390: ldfld System.Single LoadingAnimation::m_textAlpha IL_0395: ldarg.0 IL_0396: ldfld System.Single LoadingAnimation::m_totalAlpha IL_039B: mul IL_039C: newobj System.Void UnityEngine.Color::.ctor(System.Single r, System.Single g, System.Single b, System.Single a) IL_03A1: callvirt System.Void UnityEngine.Material::set_color(UnityEngine.Color value) IL_03A6: ldarg.0 IL_03A7: ldfld UnityEngine.Material LoadingAnimation::m_textMaterial IL_03AC: ldc.i4.0 IL_03AD: callvirt System.Boolean UnityEngine.Material::SetPass(System.Int32 pass) IL_03B2: brfalse => Label12 IL_03B7: ldarg.0 IL_03B8: ldfld UnityEngine.Mesh LoadingAnimation::m_textMesh IL_03BD: ldloc.s 17 (UnityEngine.Matrix4x4) IL_03BF: call static System.Void UnityEngine.Graphics::DrawMeshNow(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix) IL_03C4: // end original IL_03C4: Label11 IL_03C4: Label12 IL_03C4: Label0 IL_03C4: ret DONE ### Harmony id=com.github.algernon-A.csl.lsmr, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void AlgernonCommons.Patching.PatcherBase::PostfixMethod(System.Reflection.MethodInfo target, System.Reflection.MethodInfo patch), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F59B280 ### At 2022-09-14 06.35.56 ### Patch: System.Void LoadingAnimation::OnGUI() ### Replacement: static System.Void LoadingAnimation::LoadingAnimation.OnGUI_Patch1(LoadingAnimation this) IL_0000: Local var 0: UnityEngine.EventType IL_0000: // start original IL_0000: call static UnityEngine.Event UnityEngine.Event::get_current() IL_0005: callvirt UnityEngine.EventType UnityEngine.Event::get_type() IL_000A: stloc.0 IL_000B: ldloc.0 IL_000C: ldc.i4.7 IL_000D: beq => Label0 IL_0012: ldloc.0 IL_0013: ldc.i4.8 IL_0014: beq => Label1 IL_0019: ldloc.0 IL_001A: brfalse => Label2 IL_001F: br => Label3 IL_0024: Label0 IL_0024: Label1 IL_0024: br => Label4 IL_0029: Label2 IL_0029: call static UnityEngine.Event UnityEngine.Event::get_current() IL_002E: callvirt System.Void UnityEngine.Event::Use() IL_0033: ldarg.0 IL_0034: ldc.i4.1 IL_0035: stfld System.Boolean LoadingAnimation::m_skipped IL_003A: br => Label5 IL_003F: Label3 IL_003F: call static UnityEngine.Event UnityEngine.Event::get_current() IL_0044: callvirt System.Void UnityEngine.Event::Use() IL_0049: br => Label6 IL_004E: // end original IL_004E: Label4 IL_004E: Label5 IL_004E: Label6 IL_004E: call static System.Void LoadingScreenModRevisited.LoadingScreen::OnGUI() IL_0053: ret DONE ### Harmony id=me.tmpe.pathfinding, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static System.Boolean TrafficManager.Lifecycle.Patcher::PatchAll(System.String harmonyId, System.Type required, System.Type forbidden), location C:\Program Files (x86)\Steam\steamapps\common\data-00000000400B1040 ### At 2022-09-14 06.35.56 ### Patch: System.Void PathManager::ReleasePath(System.UInt32 unit) ### Replacement: static System.Void PathManager::PathManager.ReleasePath_Patch1(PathManager this, System.UInt32 unit) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: System.UInt32 IL_0000: Local var 2: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 2 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 2 (System.Boolean) IL_000E: ldloc 2 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: call static System.Boolean TrafficManager.Patch._PathManager.ReleasePathPatch::Prefix(System.UInt32 unit) IL_0020: stloc 2 (System.Boolean) IL_0024: Label1 IL_0024: nop IL_0025: ldloc 2 (System.Boolean) IL_0029: brfalse => Label0 IL_002E: // start original IL_002E: ldarg.0 IL_002F: ldfld Array32`1 PathManager::m_pathUnits IL_0034: ldfld PathUnit[] Array32`1::m_buffer IL_0039: ldarg.1 IL_003A: conv.u IL_003B: ldelema PathUnit IL_0040: ldfld System.Byte PathUnit::m_simulationFlags IL_0045: brtrue => Label2 IL_004A: br => Label13 IL_004F: Label2 IL_004F: br => Label3 IL_0054: Label3 IL_0054: Label4 IL_0054: ldarg.0 IL_0055: ldfld System.Object PathManager::m_bufferLock IL_005A: ldsfld System.Int32 SimulationManager::SYNCHRONIZE_TIMEOUT IL_005F: call static System.Boolean System.Threading.Monitor::TryEnter(System.Object obj, System.Int32 millisecondsTimeout) IL_0064: brfalse => Label4 .try { IL_0069: ldc.i4.0 IL_006A: stloc.0 IL_006B: br => Label5 IL_0070: Label11 IL_0070: ldarg.0 IL_0071: ldfld Array32`1 PathManager::m_pathUnits IL_0076: ldfld PathUnit[] Array32`1::m_buffer IL_007B: ldarg.1 IL_007C: conv.u IL_007D: ldelema PathUnit IL_0082: ldfld System.Byte PathUnit::m_referenceCount IL_0087: ldc.i4.1 IL_0088: bgt => Label6 IL_008D: ldarg.0 IL_008E: ldfld Array32`1 PathManager::m_pathUnits IL_0093: ldfld PathUnit[] Array32`1::m_buffer IL_0098: ldarg.1 IL_0099: conv.u IL_009A: ldelema PathUnit IL_009F: ldfld System.UInt32 PathUnit::m_nextPathUnit IL_00A4: stloc.1 IL_00A5: ldarg.0 IL_00A6: ldfld Array32`1 PathManager::m_pathUnits IL_00AB: ldfld PathUnit[] Array32`1::m_buffer IL_00B0: ldarg.1 IL_00B1: conv.u IL_00B2: ldelema PathUnit IL_00B7: ldc.i4.0 IL_00B8: stfld System.Byte PathUnit::m_simulationFlags IL_00BD: ldarg.0 IL_00BE: ldfld Array32`1 PathManager::m_pathUnits IL_00C3: ldfld PathUnit[] Array32`1::m_buffer IL_00C8: ldarg.1 IL_00C9: conv.u IL_00CA: ldelema PathUnit IL_00CF: ldc.i4.0 IL_00D0: stfld System.Byte PathUnit::m_pathFindFlags IL_00D5: ldarg.0 IL_00D6: ldfld Array32`1 PathManager::m_pathUnits IL_00DB: ldfld PathUnit[] Array32`1::m_buffer IL_00E0: ldarg.1 IL_00E1: conv.u IL_00E2: ldelema PathUnit IL_00E7: ldc.i4.0 IL_00E8: stfld System.UInt32 PathUnit::m_nextPathUnit IL_00ED: ldarg.0 IL_00EE: ldfld Array32`1 PathManager::m_pathUnits IL_00F3: ldfld PathUnit[] Array32`1::m_buffer IL_00F8: ldarg.1 IL_00F9: conv.u IL_00FA: ldelema PathUnit IL_00FF: ldc.i4.0 IL_0100: stfld System.Byte PathUnit::m_referenceCount IL_0105: ldarg.0 IL_0106: ldfld Array32`1 PathManager::m_pathUnits IL_010B: ldarg.1 IL_010C: callvirt System.Void Array32`1::ReleaseItem(System.UInt32 item) IL_0111: ldloc.1 IL_0112: starg.s 1 IL_0114: br => Label7 IL_0119: Label6 IL_0119: ldarg.0 IL_011A: ldfld Array32`1 PathManager::m_pathUnits IL_011F: ldfld PathUnit[] Array32`1::m_buffer IL_0124: ldarg.1 IL_0125: conv.u IL_0126: ldelema PathUnit IL_012B: dup IL_012C: ldfld System.Byte PathUnit::m_referenceCount IL_0131: ldc.i4.1 IL_0132: sub IL_0133: conv.u1 IL_0134: stfld System.Byte PathUnit::m_referenceCount IL_0139: leave => Label8 IL_013E: Label7 IL_013E: ldloc.0 IL_013F: ldc.i4.1 IL_0140: add IL_0141: dup IL_0142: stloc.0 IL_0143: ldc.i4 262144 IL_0148: blt => Label9 IL_014D: ldc.i4.1 IL_014E: ldstr "Invalid list detected!\n" IL_0153: call static System.String System.Environment::get_StackTrace() IL_0158: call static System.String System.String::Concat(System.String str0, System.String str1) IL_015D: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_0162: leave => Label10 IL_0167: Label5 IL_0167: Label9 IL_0167: ldarg.1 IL_0168: brtrue => Label11 IL_016D: Label8 IL_016D: Label10 IL_016D: ldarg.0 IL_016E: ldarg.0 IL_016F: ldfld Array32`1 PathManager::m_pathUnits IL_0174: callvirt System.UInt32 Array32`1::ItemCount() IL_0179: ldc.i4.1 IL_017A: sub IL_017B: stfld System.Int32 PathManager::m_pathUnitCount IL_0180: leave => Label12 IL_0185: leave => (autogenerated) } // end try .finally { IL_018A: ldarg.0 IL_018B: ldfld System.Object PathManager::m_bufferLock IL_0190: call static System.Void System.Threading.Monitor::Exit(System.Object obj) IL_0195: endfinally IL_0196: leave => (autogenerated) } // end handler IL_0197: // end original IL_0197: Label12 IL_0197: Label13 IL_0197: Label0 IL_0197: ret DONE ### Patch: System.Void PathManager::WaitForAllPaths() ### Replacement: static System.Void PathManager::PathManager.WaitForAllPaths_Patch1(PathManager this) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 1 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 1 (System.Boolean) IL_000E: ldloc 1 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: call static System.Boolean TrafficManager.Patch._PathManager.WaitForAllPathsPatch::Prefix() IL_001C: stloc 1 (System.Boolean) IL_0020: Label1 IL_0020: nop IL_0021: ldloc 1 (System.Boolean) IL_0025: brfalse => Label0 IL_002A: // start original IL_002A: ldc.i4.0 IL_002B: stloc.0 IL_002C: br => Label2 IL_0031: Label3 IL_0031: ldarg.0 IL_0032: ldfld PathFind[] PathManager::m_pathfinds IL_0037: ldloc.0 IL_0038: ldelem.ref IL_0039: callvirt System.Void PathFind::WaitForAllPaths() IL_003E: ldloc.0 IL_003F: ldc.i4.1 IL_0040: add IL_0041: stloc.0 IL_0042: Label2 IL_0042: ldloc.0 IL_0043: ldarg.0 IL_0044: ldfld PathFind[] PathManager::m_pathfinds IL_0049: ldlen IL_004A: conv.i4 IL_004B: blt => Label3 IL_0050: // end original IL_0050: Label0 IL_0050: ret DONE ### Patch: System.Boolean PathManager::CreatePath(System.UInt32& unit, ColossalFramework.Math.Randomizer& randomizer, System.UInt32 buildIndex, Position startPosA, Position startPosB, Position endPosA, Position endPosB, Position vehiclePosition, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, System.Single maxLength, System.Boolean isHeavyVehicle, System.Boolean ignoreBlocked, System.Boolean stablePath, System.Boolean skipQueue, System.Boolean randomParking, System.Boolean ignoreFlooded, System.Boolean combustionEngine, System.Boolean ignoreCost) ### Replacement: static System.Boolean PathManager::PathManager.CreatePath_Patch1(PathManager this, System.UInt32& unit, ColossalFramework.Math.Randomizer& randomizer, System.UInt32 buildIndex, Position startPosA, Position startPosB, Position endPosA, Position endPosB, Position vehiclePosition, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, System.Single maxLength, System.Boolean isHeavyVehicle, System.Boolean ignoreBlocked, System.Boolean stablePath, System.Boolean skipQueue, System.Boolean randomParking, System.Boolean ignoreFlooded, System.Boolean combustionEngine, System.Boolean ignoreCost) IL_0000: Local var 0: System.UInt32 IL_0000: Local var 1: System.Boolean IL_0000: Local var 2: System.Int32 IL_0000: Local var 3: PathFind IL_0000: Local var 4: System.Int32 IL_0000: Local var 5: PathFind IL_0000: Local var 6: System.Boolean IL_0000: Local var 7: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 6 (System.Boolean) IL_0009: ldc.i4 0 IL_000E: stloc 7 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 7 (System.Boolean) IL_0017: ldloc 7 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldloca 6 (System.Boolean) IL_0024: ldarg 1 IL_0028: ldarg 2 IL_002C: ldarg 3 IL_0030: ldarg 4 IL_0034: ldarg 5 IL_0038: ldarg 6 IL_003C: ldarg 7 IL_0040: ldarg 8 IL_0044: ldarg 9 IL_0048: ldarg 10 IL_004C: ldarg 11 IL_0050: ldarg 12 IL_0054: ldarg 13 IL_0058: ldarg 14 IL_005C: ldarg 15 IL_0060: ldarg 16 IL_0064: ldarg 17 IL_0068: ldarg 18 IL_006C: ldarg 19 IL_0070: ldarg 20 IL_0074: call static System.Boolean TrafficManager.Patch._PathManager.CreatePathPatch::Prefix(System.Boolean& __result, System.UInt32& unit, ColossalFramework.Math.Randomizer& randomizer, System.UInt32 buildIndex, Position startPosA, Position startPosB, Position endPosA, Position endPosB, Position vehiclePosition, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, System.Single maxLength, System.Boolean isHeavyVehicle, System.Boolean ignoreBlocked, System.Boolean stablePath, System.Boolean skipQueue, System.Boolean randomParking, System.Boolean ignoreFlooded, System.Boolean combustionEngine, System.Boolean ignoreCost) IL_0079: stloc 7 (System.Boolean) IL_007D: Label1 IL_007D: nop IL_007E: ldloc 7 (System.Boolean) IL_0082: brfalse => Label0 IL_0087: // start original IL_0087: br => Label2 IL_008C: Label2 IL_008C: Label3 IL_008C: ldarg.0 IL_008D: ldfld System.Object PathManager::m_bufferLock IL_0092: ldsfld System.Int32 SimulationManager::SYNCHRONIZE_TIMEOUT IL_0097: call static System.Boolean System.Threading.Monitor::TryEnter(System.Object obj, System.Int32 millisecondsTimeout) IL_009C: brfalse => Label3 .try { IL_00A1: ldarg.0 IL_00A2: ldfld Array32`1 PathManager::m_pathUnits IL_00A7: ldloca.s 0 (System.UInt32) IL_00A9: ldarg.2 IL_00AA: callvirt System.Boolean Array32`1::CreateItem(System.UInt32& item, ColossalFramework.Math.Randomizer& r) IL_00AF: brtrue => Label4 IL_00B4: ldarg.1 IL_00B5: ldc.i4.0 IL_00B6: stind.i4 IL_00B7: ldc.i4.0 IL_00B8: stloc.1 IL_00B9: leave => Label5 IL_00BE: Label4 IL_00BE: ldarg.0 IL_00BF: ldarg.0 IL_00C0: ldfld Array32`1 PathManager::m_pathUnits IL_00C5: callvirt System.UInt32 Array32`1::ItemCount() IL_00CA: ldc.i4.1 IL_00CB: sub IL_00CC: stfld System.Int32 PathManager::m_pathUnitCount IL_00D1: leave => Label6 IL_00D6: leave => (autogenerated) } // end try .finally { IL_00DB: ldarg.0 IL_00DC: ldfld System.Object PathManager::m_bufferLock IL_00E1: call static System.Void System.Threading.Monitor::Exit(System.Object obj) IL_00E6: endfinally IL_00E7: leave => (autogenerated) } // end handler IL_00E8: Label6 IL_00E8: ldarg.1 IL_00E9: ldloc.0 IL_00EA: stind.i4 IL_00EB: ldarg.0 IL_00EC: ldfld Array32`1 PathManager::m_pathUnits IL_00F1: ldfld PathUnit[] Array32`1::m_buffer IL_00F6: ldarg.1 IL_00F7: ldind.u4 IL_00F8: conv.u IL_00F9: ldelema PathUnit IL_00FE: ldc.i4.1 IL_00FF: stfld System.Byte PathUnit::m_simulationFlags IL_0104: ldarg.s 13 IL_0106: brfalse => Label7 IL_010B: ldarg.0 IL_010C: ldfld Array32`1 PathManager::m_pathUnits IL_0111: ldfld PathUnit[] Array32`1::m_buffer IL_0116: ldarg.1 IL_0117: ldind.u4 IL_0118: conv.u IL_0119: ldelema PathUnit IL_011E: dup IL_011F: ldfld System.Byte PathUnit::m_simulationFlags IL_0124: ldc.i4.s 16 IL_0126: or IL_0127: conv.u1 IL_0128: stfld System.Byte PathUnit::m_simulationFlags IL_012D: Label7 IL_012D: ldarg.s 14 IL_012F: brfalse => Label8 IL_0134: ldarg.0 IL_0135: ldfld Array32`1 PathManager::m_pathUnits IL_013A: ldfld PathUnit[] Array32`1::m_buffer IL_013F: ldarg.1 IL_0140: ldind.u4 IL_0141: conv.u IL_0142: ldelema PathUnit IL_0147: dup IL_0148: ldfld System.Byte PathUnit::m_simulationFlags IL_014D: ldc.i4.s 32 IL_014F: or IL_0150: conv.u1 IL_0151: stfld System.Byte PathUnit::m_simulationFlags IL_0156: Label8 IL_0156: ldarg.s 15 IL_0158: brfalse => Label9 IL_015D: ldarg.0 IL_015E: ldfld Array32`1 PathManager::m_pathUnits IL_0163: ldfld PathUnit[] Array32`1::m_buffer IL_0168: ldarg.1 IL_0169: ldind.u4 IL_016A: conv.u IL_016B: ldelema PathUnit IL_0170: dup IL_0171: ldfld System.Byte PathUnit::m_simulationFlags IL_0176: ldc.i4.s 64 IL_0178: or IL_0179: conv.u1 IL_017A: stfld System.Byte PathUnit::m_simulationFlags IL_017F: Label9 IL_017F: ldarg.s 17 IL_0181: brfalse => Label10 IL_0186: ldarg.0 IL_0187: ldfld Array32`1 PathManager::m_pathUnits IL_018C: ldfld PathUnit[] Array32`1::m_buffer IL_0191: ldarg.1 IL_0192: ldind.u4 IL_0193: conv.u IL_0194: ldelema PathUnit IL_0199: dup IL_019A: ldfld System.Byte PathUnit::m_simulationFlags IL_019F: ldc.i4 128 IL_01A4: or IL_01A5: conv.u1 IL_01A6: stfld System.Byte PathUnit::m_simulationFlags IL_01AB: Label10 IL_01AB: ldarg.s 18 IL_01AD: brfalse => Label11 IL_01B2: ldarg.0 IL_01B3: ldfld Array32`1 PathManager::m_pathUnits IL_01B8: ldfld PathUnit[] Array32`1::m_buffer IL_01BD: ldarg.1 IL_01BE: ldind.u4 IL_01BF: conv.u IL_01C0: ldelema PathUnit IL_01C5: dup IL_01C6: ldfld System.Byte PathUnit::m_simulationFlags IL_01CB: ldc.i4.2 IL_01CC: or IL_01CD: conv.u1 IL_01CE: stfld System.Byte PathUnit::m_simulationFlags IL_01D3: Label11 IL_01D3: ldarg.s 19 IL_01D5: brfalse => Label12 IL_01DA: ldarg.0 IL_01DB: ldfld Array32`1 PathManager::m_pathUnits IL_01E0: ldfld PathUnit[] Array32`1::m_buffer IL_01E5: ldarg.1 IL_01E6: ldind.u4 IL_01E7: conv.u IL_01E8: ldelema PathUnit IL_01ED: dup IL_01EE: ldfld System.Byte PathUnit::m_simulationFlags IL_01F3: ldc.i4.4 IL_01F4: or IL_01F5: conv.u1 IL_01F6: stfld System.Byte PathUnit::m_simulationFlags IL_01FB: Label12 IL_01FB: ldarg.s 20 IL_01FD: brfalse => Label13 IL_0202: ldarg.0 IL_0203: ldfld Array32`1 PathManager::m_pathUnits IL_0208: ldfld PathUnit[] Array32`1::m_buffer IL_020D: ldarg.1 IL_020E: ldind.u4 IL_020F: conv.u IL_0210: ldelema PathUnit IL_0215: dup IL_0216: ldfld System.Byte PathUnit::m_simulationFlags IL_021B: ldc.i4.8 IL_021C: or IL_021D: conv.u1 IL_021E: stfld System.Byte PathUnit::m_simulationFlags IL_0223: Label13 IL_0223: ldarg.0 IL_0224: ldfld Array32`1 PathManager::m_pathUnits IL_0229: ldfld PathUnit[] Array32`1::m_buffer IL_022E: ldarg.1 IL_022F: ldind.u4 IL_0230: conv.u IL_0231: ldelema PathUnit IL_0236: ldc.i4.0 IL_0237: stfld System.Byte PathUnit::m_pathFindFlags IL_023C: ldarg.0 IL_023D: ldfld Array32`1 PathManager::m_pathUnits IL_0242: ldfld PathUnit[] Array32`1::m_buffer IL_0247: ldarg.1 IL_0248: ldind.u4 IL_0249: conv.u IL_024A: ldelema PathUnit IL_024F: ldarg.3 IL_0250: stfld System.UInt32 PathUnit::m_buildIndex IL_0255: ldarg.0 IL_0256: ldfld Array32`1 PathManager::m_pathUnits IL_025B: ldfld PathUnit[] Array32`1::m_buffer IL_0260: ldarg.1 IL_0261: ldind.u4 IL_0262: conv.u IL_0263: ldelema PathUnit IL_0268: ldarg.s 4 IL_026A: stfld Position PathUnit::m_position00 IL_026F: ldarg.0 IL_0270: ldfld Array32`1 PathManager::m_pathUnits IL_0275: ldfld PathUnit[] Array32`1::m_buffer IL_027A: ldarg.1 IL_027B: ldind.u4 IL_027C: conv.u IL_027D: ldelema PathUnit IL_0282: ldarg.s 6 IL_0284: stfld Position PathUnit::m_position01 IL_0289: ldarg.0 IL_028A: ldfld Array32`1 PathManager::m_pathUnits IL_028F: ldfld PathUnit[] Array32`1::m_buffer IL_0294: ldarg.1 IL_0295: ldind.u4 IL_0296: conv.u IL_0297: ldelema PathUnit IL_029C: ldarg.s 5 IL_029E: stfld Position PathUnit::m_position02 IL_02A3: ldarg.0 IL_02A4: ldfld Array32`1 PathManager::m_pathUnits IL_02A9: ldfld PathUnit[] Array32`1::m_buffer IL_02AE: ldarg.1 IL_02AF: ldind.u4 IL_02B0: conv.u IL_02B1: ldelema PathUnit IL_02B6: ldarg.s 7 IL_02B8: stfld Position PathUnit::m_position03 IL_02BD: ldarg.0 IL_02BE: ldfld Array32`1 PathManager::m_pathUnits IL_02C3: ldfld PathUnit[] Array32`1::m_buffer IL_02C8: ldarg.1 IL_02C9: ldind.u4 IL_02CA: conv.u IL_02CB: ldelema PathUnit IL_02D0: ldarg.s 8 IL_02D2: stfld Position PathUnit::m_position11 IL_02D7: ldarg.0 IL_02D8: ldfld Array32`1 PathManager::m_pathUnits IL_02DD: ldfld PathUnit[] Array32`1::m_buffer IL_02E2: ldarg.1 IL_02E3: ldind.u4 IL_02E4: conv.u IL_02E5: ldelema PathUnit IL_02EA: ldc.i4.0 IL_02EB: stfld System.UInt32 PathUnit::m_nextPathUnit IL_02F0: ldarg.0 IL_02F1: ldfld Array32`1 PathManager::m_pathUnits IL_02F6: ldfld PathUnit[] Array32`1::m_buffer IL_02FB: ldarg.1 IL_02FC: ldind.u4 IL_02FD: conv.u IL_02FE: ldelema PathUnit IL_0303: ldarg.s 9 IL_0305: stfld System.Byte PathUnit::m_laneTypes IL_030A: ldarg.0 IL_030B: ldfld Array32`1 PathManager::m_pathUnits IL_0310: ldfld PathUnit[] Array32`1::m_buffer IL_0315: ldarg.1 IL_0316: ldind.u4 IL_0317: conv.u IL_0318: ldelema PathUnit IL_031D: ldarg.s 10 IL_031F: stfld System.UInt32 PathUnit::m_vehicleTypes IL_0324: ldarg.0 IL_0325: ldfld Array32`1 PathManager::m_pathUnits IL_032A: ldfld PathUnit[] Array32`1::m_buffer IL_032F: ldarg.1 IL_0330: ldind.u4 IL_0331: conv.u IL_0332: ldelema PathUnit IL_0337: ldarg.s 11 IL_0339: stfld System.Int64 PathUnit::m_vehicleCategories IL_033E: ldarg.0 IL_033F: ldfld Array32`1 PathManager::m_pathUnits IL_0344: ldfld PathUnit[] Array32`1::m_buffer IL_0349: ldarg.1 IL_034A: ldind.u4 IL_034B: conv.u IL_034C: ldelema PathUnit IL_0351: ldarg.s 12 IL_0353: stfld System.Single PathUnit::m_length IL_0358: ldarg.0 IL_0359: ldfld Array32`1 PathManager::m_pathUnits IL_035E: ldfld PathUnit[] Array32`1::m_buffer IL_0363: ldarg.1 IL_0364: ldind.u4 IL_0365: conv.u IL_0366: ldelema PathUnit IL_036B: ldc.i4.s 20 IL_036D: stfld System.Byte PathUnit::m_positionCount IL_0372: ldarg.0 IL_0373: ldfld Array32`1 PathManager::m_pathUnits IL_0378: ldfld PathUnit[] Array32`1::m_buffer IL_037D: ldarg.1 IL_037E: ldind.u4 IL_037F: conv.u IL_0380: ldelema PathUnit IL_0385: ldc.i4.1 IL_0386: stfld System.Byte PathUnit::m_referenceCount IL_038B: ldc.i4 10000000 IL_0390: stloc.2 IL_0391: ldnull IL_0392: stloc.3 IL_0393: ldc.i4.0 IL_0394: stloc.s 4 (System.Int32) IL_0396: br => Label14 IL_039B: Label17 IL_039B: ldarg.0 IL_039C: ldfld PathFind[] PathManager::m_pathfinds IL_03A1: ldloc.s 4 (System.Int32) IL_03A3: ldelem.ref IL_03A4: stloc.s 5 (PathFind) IL_03A6: ldloc.s 5 (PathFind) IL_03A8: callvirt System.Boolean PathFind::get_IsAvailable() IL_03AD: brfalse => Label15 IL_03B2: ldloc.s 5 (PathFind) IL_03B4: volatile. IL_03B6: ldfld System.Int32 PathFind::m_queuedPathFindCount IL_03BB: ldloc.2 IL_03BC: bge => Label16 IL_03C1: ldloc.s 5 (PathFind) IL_03C3: volatile. IL_03C5: ldfld System.Int32 PathFind::m_queuedPathFindCount IL_03CA: stloc.2 IL_03CB: ldloc.s 5 (PathFind) IL_03CD: stloc.3 IL_03CE: Label15 IL_03CE: Label16 IL_03CE: ldloc.s 4 (System.Int32) IL_03D0: ldc.i4.1 IL_03D1: add IL_03D2: stloc.s 4 (System.Int32) IL_03D4: Label14 IL_03D4: ldloc.s 4 (System.Int32) IL_03D6: ldarg.0 IL_03D7: ldfld PathFind[] PathManager::m_pathfinds IL_03DC: ldlen IL_03DD: conv.i4 IL_03DE: blt => Label17 IL_03E3: ldloc.3 IL_03E4: brfalse => Label18 IL_03E9: ldloc.3 IL_03EA: ldarg.1 IL_03EB: ldind.u4 IL_03EC: ldarg.s 16 IL_03EE: callvirt System.Boolean PathFind::CalculatePath(System.UInt32 unit, System.Boolean skipQueue) IL_03F3: brfalse => Label19 IL_03F8: ldc.i4.1 IL_03F9: br => Label24 IL_03FE: Label18 IL_03FE: Label19 IL_03FE: ldarg.0 IL_03FF: ldarg.1 IL_0400: ldind.u4 IL_0401: call System.Void PathManager::ReleasePath(System.UInt32 unit) IL_0406: ldc.i4.0 IL_0407: br => Label25 IL_040C: Label5 IL_040C: ldloc.1 IL_040D: // end original IL_040D: Label24 IL_040D: Label25 IL_040D: stloc 6 (System.Boolean) IL_0411: Label0 IL_0411: ldloc 6 (System.Boolean) IL_0415: ret DONE ### Patch: System.Boolean PathFind::CalculatePath(System.UInt32 unit, System.Boolean skipQueue) ### Replacement: static System.Boolean PathFind::PathFind.CalculatePath_Patch1(PathFind this, System.UInt32 unit, System.Boolean skipQueue) IL_0000: Local var 0: System.Boolean IL_0000: Local var 1: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 0 (System.Boolean) IL_0009: ldc.i4 0 IL_000E: stloc 1 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 1 (System.Boolean) IL_0017: ldloc 1 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldarg.0 IL_0021: ldloca 0 (System.Boolean) IL_0025: ldarg 1 IL_0029: ldarg 2 IL_002D: call static System.Boolean TrafficManager.Patch._PathFind.CalculatePathPatch::Prefix(PathFind __instance, System.Boolean& __result, System.UInt32 unit, System.Boolean skipQueue) IL_0032: stloc 1 (System.Boolean) IL_0036: Label1 IL_0036: nop IL_0037: ldloc 1 (System.Boolean) IL_003B: brfalse => Label0 IL_0040: // start original IL_0040: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_0045: ldarg.1 IL_0046: callvirt System.Boolean PathManager::AddPathReference(System.UInt32 unit) IL_004B: brfalse => Label2 IL_0050: br => Label3 IL_0055: Label3 IL_0055: Label4 IL_0055: ldarg.0 IL_0056: ldfld System.Object PathFind::m_queueLock IL_005B: ldsfld System.Int32 SimulationManager::SYNCHRONIZE_TIMEOUT IL_0060: call static System.Boolean System.Threading.Monitor::TryEnter(System.Object obj, System.Int32 millisecondsTimeout) IL_0065: brfalse => Label4 .try { IL_006A: ldarg.2 IL_006B: brfalse => Label5 IL_0070: ldarg.0 IL_0071: ldfld System.UInt32 PathFind::m_queueLast IL_0076: brtrue => Label6 IL_007B: ldarg.0 IL_007C: ldarg.1 IL_007D: stfld System.UInt32 PathFind::m_queueLast IL_0082: br => Label7 IL_0087: Label6 IL_0087: ldarg.0 IL_0088: ldfld Array32`1 PathFind::m_pathUnits IL_008D: ldfld PathUnit[] Array32`1::m_buffer IL_0092: ldarg.1 IL_0093: conv.u IL_0094: ldelema PathUnit IL_0099: ldarg.0 IL_009A: ldfld System.UInt32 PathFind::m_queueFirst IL_009F: stfld System.UInt32 PathUnit::m_nextPathUnit IL_00A4: Label7 IL_00A4: ldarg.0 IL_00A5: ldarg.1 IL_00A6: stfld System.UInt32 PathFind::m_queueFirst IL_00AB: br => Label8 IL_00B0: Label5 IL_00B0: ldarg.0 IL_00B1: ldfld System.UInt32 PathFind::m_queueLast IL_00B6: brtrue => Label9 IL_00BB: ldarg.0 IL_00BC: ldarg.1 IL_00BD: stfld System.UInt32 PathFind::m_queueFirst IL_00C2: br => Label10 IL_00C7: Label9 IL_00C7: ldarg.0 IL_00C8: ldfld Array32`1 PathFind::m_pathUnits IL_00CD: ldfld PathUnit[] Array32`1::m_buffer IL_00D2: ldarg.0 IL_00D3: ldfld System.UInt32 PathFind::m_queueLast IL_00D8: conv.u IL_00D9: ldelema PathUnit IL_00DE: ldarg.1 IL_00DF: stfld System.UInt32 PathUnit::m_nextPathUnit IL_00E4: Label10 IL_00E4: ldarg.0 IL_00E5: ldarg.1 IL_00E6: stfld System.UInt32 PathFind::m_queueLast IL_00EB: Label8 IL_00EB: ldarg.0 IL_00EC: ldfld Array32`1 PathFind::m_pathUnits IL_00F1: ldfld PathUnit[] Array32`1::m_buffer IL_00F6: ldarg.1 IL_00F7: conv.u IL_00F8: ldelema PathUnit IL_00FD: dup IL_00FE: ldfld System.Byte PathUnit::m_pathFindFlags IL_0103: ldc.i4.1 IL_0104: or IL_0105: conv.u1 IL_0106: stfld System.Byte PathUnit::m_pathFindFlags IL_010B: ldarg.0 IL_010C: dup IL_010D: volatile. IL_010F: ldfld System.Int32 PathFind::m_queuedPathFindCount IL_0114: ldc.i4.1 IL_0115: add IL_0116: volatile. IL_0118: stfld System.Int32 PathFind::m_queuedPathFindCount IL_011D: ldarg.0 IL_011E: ldfld System.Object PathFind::m_queueLock IL_0123: call static System.Void System.Threading.Monitor::Pulse(System.Object obj) IL_0128: leave => Label11 IL_012D: leave => (autogenerated) } // end try .finally { IL_0132: ldarg.0 IL_0133: ldfld System.Object PathFind::m_queueLock IL_0138: call static System.Void System.Threading.Monitor::Exit(System.Object obj) IL_013D: endfinally IL_013E: leave => (autogenerated) } // end handler IL_013F: Label11 IL_013F: ldc.i4.1 IL_0140: br => Label16 IL_0145: Label2 IL_0145: ldc.i4.0 IL_0146: // end original IL_0146: Label16 IL_0146: stloc 0 (System.Boolean) IL_014A: Label0 IL_014A: ldloc 0 (System.Boolean) IL_014E: ret DONE ### Harmony id=me.tmpe, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static System.Boolean TrafficManager.Lifecycle.Patcher::PatchAll(System.String harmonyId, System.Type required, System.Type forbidden), location C:\Program Files (x86)\Steam\steamapps\common\data-00000000400B1040 ### At 2022-09-14 06.36.20 ### Patch: static System.Void BuildingDecoration::LoadPaths(BuildingInfo info, System.UInt16 buildingID, Building& data, System.Single elevation) ### Replacement: static System.Void BuildingDecoration::BuildingDecoration.LoadPaths_Patch0(BuildingInfo info, System.UInt16 buildingID, Building& data, System.Single elevation) IL_0000: Local var 0: NetManager IL_0000: Local var 1: System.Int32 IL_0000: Local var 2: BuildingInfo/PathInfo IL_0000: Local var 3: NetTool/ControlPoint IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: System.Boolean IL_0000: Local var 6: UnityEngine.Ray IL_0000: Local var 7: UnityEngine.Vector3 IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.UInt16 IL_0000: Local var 10: System.UInt16 IL_0000: Local var 11: System.Int32 IL_0000: Local var 12: System.Int32 IL_0000: Local var 13: System.Int32 IL_0000: Local var 14: NetTool/ControlPoint IL_0000: Local var 15: System.Boolean IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: System.Single IL_0000: Local var 18: NetTool/ControlPoint IL_0000: Local var 19: System.UInt16 IL_0000: Local var 20: System.UInt16 IL_0000: Local var 21: System.UInt16 IL_0000: Local var 22: System.Int32 IL_0000: Local var 23: System.Int32 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.UInt16 IL_0000: Local var 26: System.Int32 IL_0000: Local var 27: System.UInt16 IL_0000: Local var 28: NetInfo IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldfld PathInfo[] BuildingInfo::m_paths IL_0006: brfalse => Label0 IL_000B: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0010: stloc.0 IL_0011: ldloc.0 IL_0012: ldfld FastList`1 NetManager::m_tempNodeBuffer IL_0017: callvirt System.Void FastList`1::Clear() IL_001C: ldloc.0 IL_001D: ldfld FastList`1 NetManager::m_tempSegmentBuffer IL_0022: callvirt System.Void FastList`1::Clear() IL_0027: ldc.i4.0 IL_0028: stloc.1 IL_0029: br => Label1 IL_002E: Label46 IL_002E: ldarg.0 IL_002F: ldfld PathInfo[] BuildingInfo::m_paths IL_0034: ldloc.1 IL_0035: ldelem.ref IL_0036: stloc.2 IL_0037: ldloc.2 IL_0038: ldfld NetInfo PathInfo::m_finalNetInfo IL_003D: brfalse => Label2 IL_0042: ldloc.2 IL_0043: ldfld UnityEngine.Vector3[] PathInfo::m_nodes IL_0048: brfalse => Label3 IL_004D: ldloc.2 IL_004E: ldfld UnityEngine.Vector3[] PathInfo::m_nodes IL_0053: ldlen IL_0054: conv.i4 IL_0055: brfalse => Label4 IL_005A: ldarg.2 IL_005B: ldloc.2 IL_005C: ldfld UnityEngine.Vector3[] PathInfo::m_nodes IL_0061: ldc.i4.0 IL_0062: ldelema UnityEngine.Vector3 IL_0067: ldobj UnityEngine.Vector3 IL_006C: call UnityEngine.Vector3 Building::CalculatePosition(UnityEngine.Vector3 offset) IL_0071: stloc.s 4 (UnityEngine.Vector3) IL_0073: ldarg.0 IL_0074: ldloc.2 IL_0075: ldfld NetInfo PathInfo::m_finalNetInfo IL_007A: ldloc.2 IL_007B: ldfld UnityEngine.Vector3[] PathInfo::m_nodes IL_0080: ldc.i4.0 IL_0081: ldelema UnityEngine.Vector3 IL_0086: ldobj UnityEngine.Vector3 IL_008B: call static System.Boolean BuildingDecoration::RequireFixedHeight(BuildingInfo buildingInfo, NetInfo info2, UnityEngine.Vector3 pos) IL_0090: stloc.s 5 (System.Boolean) IL_0092: ldloc.s 5 (System.Boolean) IL_0094: brtrue => Label5 IL_0099: ldloca.s 4 (UnityEngine.Vector3) IL_009B: ldloc.2 IL_009C: ldfld NetInfo PathInfo::m_finalNetInfo IL_00A1: ldloc.s 4 (UnityEngine.Vector3) IL_00A3: ldc.i4.0 IL_00A4: ldloc.2 IL_00A5: ldfld UnityEngine.Vector3[] PathInfo::m_nodes IL_00AA: ldc.i4.0 IL_00AB: ldelema UnityEngine.Vector3 IL_00B0: ldfld System.Single UnityEngine.Vector3::y IL_00B5: ldarg.3 IL_00B6: add IL_00B7: call static System.Single NetSegment::SampleTerrainHeight(NetInfo info, UnityEngine.Vector3 worldPos, System.Boolean timeLerp, System.Single elevation) IL_00BC: stfld System.Single UnityEngine.Vector3::y IL_00C1: Label5 IL_00C1: ldloca.s 6 (UnityEngine.Ray) IL_00C3: ldloc.s 4 (UnityEngine.Vector3) IL_00C5: ldc.r4 0 IL_00CA: ldc.r4 8 IL_00CF: ldc.r4 0 IL_00D4: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_00D9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00DE: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down() IL_00E3: call System.Void UnityEngine.Ray::.ctor(UnityEngine.Vector3 origin, UnityEngine.Vector3 direction) IL_00E8: ldloc.0 IL_00E9: ldfld FastList`1 NetManager::m_tempNodeBuffer IL_00EE: ldloc.s 4 (UnityEngine.Vector3) IL_00F0: ldloc.2 IL_00F1: ldfld NetInfo PathInfo::m_finalNetInfo IL_00F6: ldloca.s 3 (NetTool+ControlPoint) IL_00F8: call static System.Boolean BuildingDecoration::FindConnectNode(FastList`1 buffer, UnityEngine.Vector3 pos, NetInfo info2, ControlPoint& point) IL_00FD: brfalse => Label6 IL_0102: br => Label7 IL_0107: Label6 IL_0107: ldloc.s 6 (UnityEngine.Ray) IL_0109: ldc.r4 16 IL_010E: ldloc.2 IL_010F: ldfld NetInfo PathInfo::m_finalNetInfo IL_0114: ldc.i4.1 IL_0115: ldc.i4 512 IL_011A: ldc.i4.s 32 IL_011C: ldc.i4.m1 IL_011D: ldloc.2 IL_011E: ldfld UnityEngine.Vector3[] PathInfo::m_nodes IL_0123: ldc.i4.0 IL_0124: ldelema UnityEngine.Vector3 IL_0129: ldfld System.Single UnityEngine.Vector3::y IL_012E: ldarg.3 IL_012F: add IL_0130: ldloc.2 IL_0131: ldfld NetInfo PathInfo::m_finalNetInfo IL_0136: ldfld System.Single NetInfo::m_buildHeight IL_013B: sub IL_013C: ldc.i4.1 IL_013D: ldloca.s 3 (NetTool+ControlPoint) IL_013F: call static System.Boolean NetTool::MakeControlPoint(UnityEngine.Ray ray, System.Single rayLength, NetInfo info, System.Boolean ignoreTerrain, Flags ignoreNodeFlags, Flags ignoreSegmentFlags, Flags ignoreBuildingFlags, System.Single elevation, System.Boolean tunnels, ControlPoint& p) IL_0144: brfalse => Label8 IL_0149: ldloca.s 3 (NetTool+ControlPoint) IL_014B: ldfld UnityEngine.Vector3 ControlPoint::m_position IL_0150: ldloc.s 4 (UnityEngine.Vector3) IL_0152: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0157: stloc.s 7 (UnityEngine.Vector3) IL_0159: ldloc.s 5 (System.Boolean) IL_015B: brtrue => Label9 IL_0160: ldloca.s 7 (UnityEngine.Vector3) IL_0162: ldc.r4 0 IL_0167: stfld System.Single UnityEngine.Vector3::y IL_016C: Label9 IL_016C: ldloca.s 7 (UnityEngine.Vector3) IL_016E: call System.Single UnityEngine.Vector3::get_sqrMagnitude() IL_0173: stloc.s 8 (System.Single) IL_0175: ldloc.s 8 (System.Single) IL_0177: ldloc.2 IL_0178: ldfld System.Single PathInfo::m_maxSnapDistance IL_017D: ldloc.2 IL_017E: ldfld System.Single PathInfo::m_maxSnapDistance IL_0183: mul IL_0184: ble.un => Label10 IL_0189: ldloca.s 3 (NetTool+ControlPoint) IL_018B: ldloc.s 4 (UnityEngine.Vector3) IL_018D: stfld UnityEngine.Vector3 ControlPoint::m_position IL_0192: ldloca.s 3 (NetTool+ControlPoint) IL_0194: ldc.r4 0 IL_0199: stfld System.Single ControlPoint::m_elevation IL_019E: ldloca.s 3 (NetTool+ControlPoint) IL_01A0: ldc.i4.0 IL_01A1: stfld System.UInt16 ControlPoint::m_node IL_01A6: ldloca.s 3 (NetTool+ControlPoint) IL_01A8: ldc.i4.0 IL_01A9: stfld System.UInt16 ControlPoint::m_segment IL_01AE: br => Label11 IL_01B3: Label10 IL_01B3: ldloca.s 3 (NetTool+ControlPoint) IL_01B5: ldflda UnityEngine.Vector3 ControlPoint::m_position IL_01BA: ldloca.s 4 (UnityEngine.Vector3) IL_01BC: ldfld System.Single UnityEngine.Vector3::y IL_01C1: stfld System.Single UnityEngine.Vector3::y IL_01C6: Label11 IL_01C6: br => Label12 IL_01CB: Label8 IL_01CB: ldloca.s 3 (NetTool+ControlPoint) IL_01CD: ldloc.s 4 (UnityEngine.Vector3) IL_01CF: stfld UnityEngine.Vector3 ControlPoint::m_position IL_01D4: Label7 IL_01D4: Label12 IL_01D4: ldloca.s 3 (NetTool+ControlPoint) IL_01D6: ldfld System.UInt16 ControlPoint::m_node IL_01DB: brfalse => Label13 IL_01E0: ldloc.0 IL_01E1: ldfld FastList`1 NetManager::m_tempNodeBuffer IL_01E6: ldloca.s 3 (NetTool+ControlPoint) IL_01E8: ldfld System.UInt16 ControlPoint::m_node IL_01ED: callvirt System.Void FastList`1::Add(System.UInt16 item) IL_01F2: br => Label14 IL_01F7: Label13 IL_01F7: ldloc.2 IL_01F8: ldfld NetInfo PathInfo::m_finalNetInfo IL_01FD: ldloc.3 IL_01FE: ldloc.3 IL_01FF: ldloc.3 IL_0200: ldsfld FastList`1 NetTool::m_nodePositionsSimulation IL_0205: ldc.i4.0 IL_0206: ldc.i4.0 IL_0207: ldc.i4.0 IL_0208: ldc.i4.0 IL_0209: ldc.i4.0 IL_020A: ldloc.2 IL_020B: ldfld System.Boolean PathInfo::m_invertSegments IL_0210: ldc.i4.0 IL_0211: ldc.i4.0 IL_0212: ldloca.s 9 (System.UInt16) IL_0214: ldloca.s 10 (System.UInt16) IL_0216: ldloca.s 11 (System.Int32) IL_0218: ldloca.s 12 (System.Int32) IL_021A: call static ToolErrors NetTool::CreateNode(NetInfo info, ControlPoint startPoint, ControlPoint middlePoint, ControlPoint endPoint, FastList`1 nodeBuffer, System.Int32 maxSegments, System.Boolean test, System.Boolean visualize, System.Boolean autoFix, System.Boolean needMoney, System.Boolean invert, System.Boolean switchDir, System.UInt16 relocateBuildingID, System.UInt16& node, System.UInt16& segment, System.Int32& cost, System.Int32& productionRate) IL_021F: ldc.i4.0 IL_0220: conv.i8 IL_0221: bne.un => Label15 IL_0226: ldloc.0 IL_0227: ldfld FastList`1 NetManager::m_tempNodeBuffer IL_022C: ldloc.s 9 (System.UInt16) IL_022E: callvirt System.Void FastList`1::Add(System.UInt16 item) IL_0233: ldloca.s 3 (NetTool+ControlPoint) IL_0235: ldloc.s 9 (System.UInt16) IL_0237: stfld System.UInt16 ControlPoint::m_node IL_023C: ldloc.2 IL_023D: ldfld System.Boolean[] PathInfo::m_forbidLaneConnection IL_0242: brfalse => Label16 IL_0247: ldloc.2 IL_0248: ldfld System.Boolean[] PathInfo::m_forbidLaneConnection IL_024D: ldlen IL_024E: conv.i4 IL_024F: ldc.i4.0 IL_0250: ble => Label17 IL_0255: ldloc.2 IL_0256: ldfld System.Boolean[] PathInfo::m_forbidLaneConnection IL_025B: ldc.i4.0 IL_025C: ldelem.u1 IL_025D: brfalse => Label18 IL_0262: ldloc.0 IL_0263: ldfld Array16`1 NetManager::m_nodes IL_0268: ldfld NetNode[] Array16`1::m_buffer IL_026D: ldloc.s 9 (System.UInt16) IL_026F: ldelema NetNode IL_0274: dup IL_0275: ldfld Flags NetNode::m_flags IL_027A: ldc.i4 262144 IL_027F: or IL_0280: stfld Flags NetNode::m_flags IL_0285: Label16 IL_0285: Label17 IL_0285: Label18 IL_0285: ldloc.2 IL_0286: ldfld TrafficLights[] PathInfo::m_trafficLights IL_028B: brfalse => Label19 IL_0290: ldloc.2 IL_0291: ldfld TrafficLights[] PathInfo::m_trafficLights IL_0296: ldlen IL_0297: conv.i4 IL_0298: ldc.i4.0 IL_0299: ble => Label20 IL_029E: ldloc.2 IL_029F: ldfld TrafficLights[] PathInfo::m_trafficLights IL_02A4: ldc.i4.0 IL_02A5: ldelem.i4 IL_02A6: ldloc.0 IL_02A7: ldfld Array16`1 NetManager::m_nodes IL_02AC: ldfld NetNode[] Array16`1::m_buffer IL_02B1: ldloc.s 9 (System.UInt16) IL_02B3: ldelema NetNode IL_02B8: ldflda Flags NetNode::m_flags IL_02BD: call static System.Void BuildingDecoration::TrafficLightsToFlags(TrafficLights trafficLights, Flags& flags) IL_02C2: Label14 IL_02C2: Label15 IL_02C2: Label19 IL_02C2: Label20 IL_02C2: ldc.i4.1 IL_02C3: stloc.s 13 (System.Int32) IL_02C5: br => Label21 IL_02CA: Label45 IL_02CA: ldarg.2 IL_02CB: ldloc.2 IL_02CC: ldfld UnityEngine.Vector3[] PathInfo::m_nodes IL_02D1: ldloc.s 13 (System.Int32) IL_02D3: ldelema UnityEngine.Vector3 IL_02D8: ldobj UnityEngine.Vector3 IL_02DD: call UnityEngine.Vector3 Building::CalculatePosition(UnityEngine.Vector3 offset) IL_02E2: stloc.s 4 (UnityEngine.Vector3) IL_02E4: ldarg.0 IL_02E5: ldloc.2 IL_02E6: ldfld NetInfo PathInfo::m_finalNetInfo IL_02EB: ldloc.2 IL_02EC: ldfld UnityEngine.Vector3[] PathInfo::m_nodes IL_02F1: ldloc.s 13 (System.Int32) IL_02F3: ldelema UnityEngine.Vector3 IL_02F8: ldobj UnityEngine.Vector3 IL_02FD: call static System.Boolean BuildingDecoration::RequireFixedHeight(BuildingInfo buildingInfo, NetInfo info2, UnityEngine.Vector3 pos) IL_0302: stloc.s 15 (System.Boolean) IL_0304: ldloc.s 15 (System.Boolean) IL_0306: brtrue => Label22 IL_030B: ldloca.s 4 (UnityEngine.Vector3) IL_030D: ldloc.2 IL_030E: ldfld NetInfo PathInfo::m_finalNetInfo IL_0313: ldloc.s 4 (UnityEngine.Vector3) IL_0315: ldc.i4.0 IL_0316: ldloc.2 IL_0317: ldfld UnityEngine.Vector3[] PathInfo::m_nodes IL_031C: ldloc.s 13 (System.Int32) IL_031E: ldelema UnityEngine.Vector3 IL_0323: ldfld System.Single UnityEngine.Vector3::y IL_0328: ldarg.3 IL_0329: add IL_032A: call static System.Single NetSegment::SampleTerrainHeight(NetInfo info, UnityEngine.Vector3 worldPos, System.Boolean timeLerp, System.Single elevation) IL_032F: stfld System.Single UnityEngine.Vector3::y IL_0334: Label22 IL_0334: ldloca.s 6 (UnityEngine.Ray) IL_0336: ldloc.s 4 (UnityEngine.Vector3) IL_0338: ldc.r4 0 IL_033D: ldc.r4 8 IL_0342: ldc.r4 0 IL_0347: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_034C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0351: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down() IL_0356: call System.Void UnityEngine.Ray::.ctor(UnityEngine.Vector3 origin, UnityEngine.Vector3 direction) IL_035B: ldloc.0 IL_035C: ldfld FastList`1 NetManager::m_tempNodeBuffer IL_0361: ldloc.s 4 (UnityEngine.Vector3) IL_0363: ldloc.2 IL_0364: ldfld NetInfo PathInfo::m_finalNetInfo IL_0369: ldloca.s 14 (NetTool+ControlPoint) IL_036B: call static System.Boolean BuildingDecoration::FindConnectNode(FastList`1 buffer, UnityEngine.Vector3 pos, NetInfo info2, ControlPoint& point) IL_0370: brfalse => Label23 IL_0375: br => Label24 IL_037A: Label23 IL_037A: ldloc.s 6 (UnityEngine.Ray) IL_037C: ldc.r4 16 IL_0381: ldloc.2 IL_0382: ldfld NetInfo PathInfo::m_finalNetInfo IL_0387: ldc.i4.1 IL_0388: ldc.i4 512 IL_038D: ldc.i4.s 32 IL_038F: ldc.i4.m1 IL_0390: ldloc.2 IL_0391: ldfld UnityEngine.Vector3[] PathInfo::m_nodes IL_0396: ldloc.s 13 (System.Int32) IL_0398: ldelema UnityEngine.Vector3 IL_039D: ldfld System.Single UnityEngine.Vector3::y IL_03A2: ldarg.3 IL_03A3: add IL_03A4: ldloc.2 IL_03A5: ldfld NetInfo PathInfo::m_finalNetInfo IL_03AA: ldfld System.Single NetInfo::m_buildHeight IL_03AF: sub IL_03B0: ldc.i4.1 IL_03B1: ldloca.s 14 (NetTool+ControlPoint) IL_03B3: call static System.Boolean NetTool::MakeControlPoint(UnityEngine.Ray ray, System.Single rayLength, NetInfo info, System.Boolean ignoreTerrain, Flags ignoreNodeFlags, Flags ignoreSegmentFlags, Flags ignoreBuildingFlags, System.Single elevation, System.Boolean tunnels, ControlPoint& p) IL_03B8: brfalse => Label25 IL_03BD: ldloca.s 14 (NetTool+ControlPoint) IL_03BF: ldfld UnityEngine.Vector3 ControlPoint::m_position IL_03C4: ldloc.s 4 (UnityEngine.Vector3) IL_03C6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_03CB: stloc.s 16 (UnityEngine.Vector3) IL_03CD: ldloc.s 15 (System.Boolean) IL_03CF: brtrue => Label26 IL_03D4: ldloca.s 16 (UnityEngine.Vector3) IL_03D6: ldc.r4 0 IL_03DB: stfld System.Single UnityEngine.Vector3::y IL_03E0: Label26 IL_03E0: ldloca.s 16 (UnityEngine.Vector3) IL_03E2: call System.Single UnityEngine.Vector3::get_sqrMagnitude() IL_03E7: stloc.s 17 (System.Single) IL_03E9: ldloc.s 17 (System.Single) IL_03EB: ldloc.2 IL_03EC: ldfld System.Single PathInfo::m_maxSnapDistance IL_03F1: ldloc.2 IL_03F2: ldfld System.Single PathInfo::m_maxSnapDistance IL_03F7: mul IL_03F8: ble.un => Label27 IL_03FD: ldloca.s 14 (NetTool+ControlPoint) IL_03FF: ldloc.s 4 (UnityEngine.Vector3) IL_0401: stfld UnityEngine.Vector3 ControlPoint::m_position IL_0406: ldloca.s 14 (NetTool+ControlPoint) IL_0408: ldc.r4 0 IL_040D: stfld System.Single ControlPoint::m_elevation IL_0412: ldloca.s 14 (NetTool+ControlPoint) IL_0414: ldc.i4.0 IL_0415: stfld System.UInt16 ControlPoint::m_node IL_041A: ldloca.s 14 (NetTool+ControlPoint) IL_041C: ldc.i4.0 IL_041D: stfld System.UInt16 ControlPoint::m_segment IL_0422: br => Label28 IL_0427: Label27 IL_0427: ldloca.s 14 (NetTool+ControlPoint) IL_0429: ldflda UnityEngine.Vector3 ControlPoint::m_position IL_042E: ldloca.s 4 (UnityEngine.Vector3) IL_0430: ldfld System.Single UnityEngine.Vector3::y IL_0435: stfld System.Single UnityEngine.Vector3::y IL_043A: Label28 IL_043A: br => Label29 IL_043F: Label25 IL_043F: ldloca.s 14 (NetTool+ControlPoint) IL_0441: ldloc.s 4 (UnityEngine.Vector3) IL_0443: stfld UnityEngine.Vector3 ControlPoint::m_position IL_0448: Label24 IL_0448: Label29 IL_0448: ldloc.s 14 (NetTool+ControlPoint) IL_044A: stloc.s 18 (NetTool+ControlPoint) IL_044C: ldloc.2 IL_044D: ldfld UnityEngine.Vector3[] PathInfo::m_curveTargets IL_0452: brfalse => Label30 IL_0457: ldloc.2 IL_0458: ldfld UnityEngine.Vector3[] PathInfo::m_curveTargets IL_045D: ldlen IL_045E: conv.i4 IL_045F: ldloc.s 13 (System.Int32) IL_0461: blt => Label31 IL_0466: ldloca.s 18 (NetTool+ControlPoint) IL_0468: ldarg.2 IL_0469: ldloc.2 IL_046A: ldfld UnityEngine.Vector3[] PathInfo::m_curveTargets IL_046F: ldloc.s 13 (System.Int32) IL_0471: ldc.i4.1 IL_0472: sub IL_0473: ldelema UnityEngine.Vector3 IL_0478: ldobj UnityEngine.Vector3 IL_047D: call UnityEngine.Vector3 Building::CalculatePosition(UnityEngine.Vector3 offset) IL_0482: stfld UnityEngine.Vector3 ControlPoint::m_position IL_0487: ldloc.s 5 (System.Boolean) IL_0489: brfalse => Label32 IL_048E: ldloc.s 15 (System.Boolean) IL_0490: brtrue => Label33 IL_0495: Label32 IL_0495: ldloca.s 18 (NetTool+ControlPoint) IL_0497: ldflda UnityEngine.Vector3 ControlPoint::m_position IL_049C: ldloc.2 IL_049D: ldfld NetInfo PathInfo::m_finalNetInfo IL_04A2: ldloca.s 18 (NetTool+ControlPoint) IL_04A4: ldfld UnityEngine.Vector3 ControlPoint::m_position IL_04A9: ldc.i4.0 IL_04AA: ldloc.2 IL_04AB: ldfld UnityEngine.Vector3[] PathInfo::m_curveTargets IL_04B0: ldloc.s 13 (System.Int32) IL_04B2: ldc.i4.1 IL_04B3: sub IL_04B4: ldelema UnityEngine.Vector3 IL_04B9: ldfld System.Single UnityEngine.Vector3::y IL_04BE: ldarg.3 IL_04BF: add IL_04C0: call static System.Single NetSegment::SampleTerrainHeight(NetInfo info, UnityEngine.Vector3 worldPos, System.Boolean timeLerp, System.Single elevation) IL_04C5: stfld System.Single UnityEngine.Vector3::y IL_04CA: Label33 IL_04CA: br => Label34 IL_04CF: Label30 IL_04CF: Label31 IL_04CF: ldloca.s 18 (NetTool+ControlPoint) IL_04D1: ldloca.s 3 (NetTool+ControlPoint) IL_04D3: ldfld UnityEngine.Vector3 ControlPoint::m_position IL_04D8: ldloca.s 14 (NetTool+ControlPoint) IL_04DA: ldfld UnityEngine.Vector3 ControlPoint::m_position IL_04DF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04E4: ldc.r4 0.5 IL_04E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04EE: stfld UnityEngine.Vector3 ControlPoint::m_position IL_04F3: Label34 IL_04F3: ldloca.s 18 (NetTool+ControlPoint) IL_04F5: ldloca.s 18 (NetTool+ControlPoint) IL_04F7: ldfld UnityEngine.Vector3 ControlPoint::m_position IL_04FC: ldloca.s 3 (NetTool+ControlPoint) IL_04FE: ldfld UnityEngine.Vector3 ControlPoint::m_position IL_0503: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0508: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v) IL_050D: stfld UnityEngine.Vector3 ControlPoint::m_direction IL_0512: ldloca.s 14 (NetTool+ControlPoint) IL_0514: ldloca.s 14 (NetTool+ControlPoint) IL_0516: ldfld UnityEngine.Vector3 ControlPoint::m_position IL_051B: ldloca.s 18 (NetTool+ControlPoint) IL_051D: ldfld UnityEngine.Vector3 ControlPoint::m_position IL_0522: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0527: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v) IL_052C: stfld UnityEngine.Vector3 ControlPoint::m_direction IL_0531: ldloc.2 IL_0532: ldfld NetInfo PathInfo::m_finalNetInfo IL_0537: ldloc.3 IL_0538: ldloc.s 18 (NetTool+ControlPoint) IL_053A: ldloc.s 14 (NetTool+ControlPoint) IL_053C: ldsfld FastList`1 NetTool::m_nodePositionsSimulation IL_0541: ldc.i4.1 IL_0542: ldc.i4.0 IL_0543: ldc.i4.0 IL_0544: ldc.i4.0 IL_0545: ldc.i4.0 IL_0546: ldc.i4.0 IL_0547: ldloc.2 IL_0548: ldfld System.Boolean PathInfo::m_invertSegments IL_054D: ldc.i4.0 IL_054E: ldc.i4.0 IL_054F: ldloca.s 19 (System.UInt16) IL_0551: ldloca.s 20 (System.UInt16) IL_0553: ldloca.s 21 (System.UInt16) IL_0555: ldloca.s 22 (System.Int32) IL_0557: ldloca.s 23 (System.Int32) IL_0559: call static ToolErrors NetTool::CreateNode(NetInfo info, ControlPoint startPoint, ControlPoint middlePoint, ControlPoint endPoint, FastList`1 nodeBuffer, System.Int32 maxSegments, System.Boolean test, System.Boolean testEnds, System.Boolean visualize, System.Boolean autoFix, System.Boolean needMoney, System.Boolean invert, System.Boolean switchDir, System.UInt16 relocateBuildingID, System.UInt16& firstNode, System.UInt16& lastNode, System.UInt16& segment, System.Int32& cost, System.Int32& productionRate) IL_055E: ldc.i4.0 IL_055F: conv.i8 IL_0560: bne.un => Label35 IL_0565: ldloc.0 IL_0566: ldfld FastList`1 NetManager::m_tempNodeBuffer IL_056B: ldloc.s 20 (System.UInt16) IL_056D: callvirt System.Void FastList`1::Add(System.UInt16 item) IL_0572: ldloc.0 IL_0573: ldfld FastList`1 NetManager::m_tempSegmentBuffer IL_0578: ldloc.s 21 (System.UInt16) IL_057A: callvirt System.Void FastList`1::Add(System.UInt16 item) IL_057F: ldloca.s 14 (NetTool+ControlPoint) IL_0581: ldloc.s 20 (System.UInt16) IL_0583: stfld System.UInt16 ControlPoint::m_node IL_0588: ldloc.2 IL_0589: ldfld System.Boolean[] PathInfo::m_forbidLaneConnection IL_058E: brfalse => Label36 IL_0593: ldloc.2 IL_0594: ldfld System.Boolean[] PathInfo::m_forbidLaneConnection IL_0599: ldlen IL_059A: conv.i4 IL_059B: ldloc.s 13 (System.Int32) IL_059D: ble => Label37 IL_05A2: ldloc.2 IL_05A3: ldfld System.Boolean[] PathInfo::m_forbidLaneConnection IL_05A8: ldloc.s 13 (System.Int32) IL_05AA: ldelem.u1 IL_05AB: brfalse => Label38 IL_05B0: ldloc.0 IL_05B1: ldfld Array16`1 NetManager::m_nodes IL_05B6: ldfld NetNode[] Array16`1::m_buffer IL_05BB: ldloc.s 20 (System.UInt16) IL_05BD: ldelema NetNode IL_05C2: dup IL_05C3: ldfld Flags NetNode::m_flags IL_05C8: ldc.i4 262144 IL_05CD: or IL_05CE: stfld Flags NetNode::m_flags IL_05D3: Label36 IL_05D3: Label37 IL_05D3: Label38 IL_05D3: ldloc.2 IL_05D4: ldfld TrafficLights[] PathInfo::m_trafficLights IL_05D9: brfalse => Label39 IL_05DE: ldloc.2 IL_05DF: ldfld TrafficLights[] PathInfo::m_trafficLights IL_05E4: ldlen IL_05E5: conv.i4 IL_05E6: ldloc.s 13 (System.Int32) IL_05E8: ble => Label40 IL_05ED: ldloc.2 IL_05EE: ldfld TrafficLights[] PathInfo::m_trafficLights IL_05F3: ldloc.s 13 (System.Int32) IL_05F5: ldelem.i4 IL_05F6: ldloc.0 IL_05F7: ldfld Array16`1 NetManager::m_nodes IL_05FC: ldfld NetNode[] Array16`1::m_buffer IL_0601: ldloc.s 20 (System.UInt16) IL_0603: ldelema NetNode IL_0608: ldflda Flags NetNode::m_flags IL_060D: call static System.Void BuildingDecoration::TrafficLightsToFlags(TrafficLights trafficLights, Flags& flags) IL_0612: Label39 IL_0612: Label40 IL_0612: ldloc.2 IL_0613: ldfld System.Boolean[] PathInfo::m_yieldSigns IL_0618: brfalse => Label41 IL_061D: ldloc.2 IL_061E: ldfld System.Boolean[] PathInfo::m_yieldSigns IL_0623: ldlen IL_0624: conv.i4 IL_0625: ldloc.s 13 (System.Int32) IL_0627: ldc.i4.2 IL_0628: mul IL_0629: blt => Label42 IL_062E: ldloc.2 IL_062F: ldfld System.Boolean[] PathInfo::m_yieldSigns IL_0634: ldloc.s 13 (System.Int32) IL_0636: ldc.i4.2 IL_0637: mul IL_0638: ldc.i4.2 IL_0639: sub IL_063A: ldelem.u1 IL_063B: brfalse => Label43 IL_0640: ldloc.0 IL_0641: ldfld Array16`1 NetManager::m_segments IL_0646: ldfld NetSegment[] Array16`1::m_buffer IL_064B: ldloc.s 21 (System.UInt16) IL_064D: ldelema NetSegment IL_0652: dup IL_0653: ldfld Flags NetSegment::m_flags IL_0658: ldc.i4 1073741824 IL_065D: or IL_065E: stfld Flags NetSegment::m_flags IL_0663: Label43 IL_0663: ldloc.2 IL_0664: ldfld System.Boolean[] PathInfo::m_yieldSigns IL_0669: ldloc.s 13 (System.Int32) IL_066B: ldc.i4.2 IL_066C: mul IL_066D: ldc.i4.1 IL_066E: sub IL_066F: ldelem.u1 IL_0670: brfalse => Label44 IL_0675: ldloc.0 IL_0676: ldfld Array16`1 NetManager::m_segments IL_067B: ldfld NetSegment[] Array16`1::m_buffer IL_0680: ldloc.s 21 (System.UInt16) IL_0682: ldelema NetSegment IL_0687: dup IL_0688: ldfld Flags NetSegment::m_flags IL_068D: ldc.i4 -2147483648 IL_0692: or IL_0693: stfld Flags NetSegment::m_flags IL_0698: Label35 IL_0698: Label41 IL_0698: Label42 IL_0698: Label44 IL_0698: ldloc.s 14 (NetTool+ControlPoint) IL_069A: stloc.3 IL_069B: ldloc.s 15 (System.Boolean) IL_069D: stloc.s 5 (System.Boolean) IL_069F: ldloc.s 13 (System.Int32) IL_06A1: ldc.i4.1 IL_06A2: add IL_06A3: stloc.s 13 (System.Int32) IL_06A5: Label21 IL_06A5: ldloc.s 13 (System.Int32) IL_06A7: ldloc.2 IL_06A8: ldfld UnityEngine.Vector3[] PathInfo::m_nodes IL_06AD: ldlen IL_06AE: conv.i4 IL_06AF: blt => Label45 IL_06B4: Label2 IL_06B4: Label3 IL_06B4: Label4 IL_06B4: ldloc.1 IL_06B5: ldc.i4.1 IL_06B6: add IL_06B7: stloc.1 IL_06B8: Label1 IL_06B8: ldloc.1 IL_06B9: ldarg.0 IL_06BA: ldfld PathInfo[] BuildingInfo::m_paths IL_06BF: ldlen IL_06C0: conv.i4 IL_06C1: blt => Label46 IL_06C6: ldc.i4.0 IL_06C7: stloc.s 24 (System.Int32) IL_06C9: br => Label47 IL_06CE: Label53 IL_06CE: ldloc.0 IL_06CF: ldfld FastList`1 NetManager::m_tempNodeBuffer IL_06D4: ldfld System.UInt16[] FastList`1::m_buffer IL_06D9: ldloc.s 24 (System.Int32) IL_06DB: ldelem.u2 IL_06DC: stloc.s 25 (System.UInt16) IL_06DE: ldloc.0 IL_06DF: ldfld Array16`1 NetManager::m_nodes IL_06E4: ldfld NetNode[] Array16`1::m_buffer IL_06E9: ldloc.s 25 (System.UInt16) IL_06EB: ldelema NetNode IL_06F0: ldfld Flags NetNode::m_flags IL_06F5: ldc.i4 512 IL_06FA: and IL_06FB: brtrue => Label48 IL_0700: ldarg.1 IL_0701: brfalse => Label49 IL_0706: ldarg.2 IL_0707: ldfld Flags Building::m_flags IL_070C: ldc.i4 131072 IL_0711: and IL_0712: brtrue => Label50 IL_0717: ldloc.0 IL_0718: ldfld Array16`1 NetManager::m_nodes IL_071D: ldfld NetNode[] Array16`1::m_buffer IL_0722: ldloc.s 25 (System.UInt16) IL_0724: ldelema NetNode IL_0729: call NetInfo NetNode::get_Info() IL_072E: ldfld System.Boolean NetInfo::m_canDisable IL_0733: brfalse => Label51 IL_0738: ldloc.0 IL_0739: ldfld Array16`1 NetManager::m_nodes IL_073E: ldfld NetNode[] Array16`1::m_buffer IL_0743: ldloc.s 25 (System.UInt16) IL_0745: ldelema NetNode IL_074A: dup IL_074B: ldfld Flags NetNode::m_flags IL_0750: ldc.i4.8 IL_0751: or IL_0752: stfld Flags NetNode::m_flags IL_0757: Label50 IL_0757: Label51 IL_0757: ldloc.0 IL_0758: ldfld Array16`1 NetManager::m_nodes IL_075D: ldfld NetNode[] Array16`1::m_buffer IL_0762: ldloc.s 25 (System.UInt16) IL_0764: ldelema NetNode IL_0769: dup IL_076A: ldfld Flags NetNode::m_flags IL_076F: ldc.i4 512 IL_0774: or IL_0775: stfld Flags NetNode::m_flags IL_077A: ldloc.0 IL_077B: ldloc.s 25 (System.UInt16) IL_077D: callvirt System.Void NetManager::UpdateNode(System.UInt16 node) IL_0782: ldloc.0 IL_0783: ldfld Array16`1 NetManager::m_nodes IL_0788: ldfld NetNode[] Array16`1::m_buffer IL_078D: ldloc.s 25 (System.UInt16) IL_078F: ldelema NetNode IL_0794: ldarg.2 IL_0795: ldfld System.UInt16 Building::m_netNode IL_079A: stfld System.UInt16 NetNode::m_nextBuildingNode IL_079F: ldarg.2 IL_07A0: ldloc.s 25 (System.UInt16) IL_07A2: stfld System.UInt16 Building::m_netNode IL_07A7: br => Label52 IL_07AC: Label49 IL_07AC: ldloc.0 IL_07AD: ldloc.s 25 (System.UInt16) IL_07AF: callvirt System.Void NetManager::UpdateNode(System.UInt16 node) IL_07B4: Label48 IL_07B4: Label52 IL_07B4: ldloc.s 24 (System.Int32) IL_07B6: ldc.i4.1 IL_07B7: add IL_07B8: stloc.s 24 (System.Int32) IL_07BA: Label47 IL_07BA: ldloc.s 24 (System.Int32) IL_07BC: ldloc.0 IL_07BD: ldfld FastList`1 NetManager::m_tempNodeBuffer IL_07C2: ldfld System.Int32 FastList`1::m_size IL_07C7: blt => Label53 IL_07CC: ldc.i4.0 IL_07CD: stloc.s 26 (System.Int32) IL_07CF: br => Label54 IL_07D4: Label60 IL_07D4: ldloc.0 IL_07D5: ldfld FastList`1 NetManager::m_tempSegmentBuffer IL_07DA: ldfld System.UInt16[] FastList`1::m_buffer IL_07DF: ldloc.s 26 (System.Int32) IL_07E1: ldelem.u2 IL_07E2: stloc.s 27 (System.UInt16) IL_07E4: ldloc.0 IL_07E5: ldfld Array16`1 NetManager::m_segments IL_07EA: ldfld NetSegment[] Array16`1::m_buffer IL_07EF: ldloc.s 27 (System.UInt16) IL_07F1: ldelema NetSegment IL_07F6: ldfld Flags NetSegment::m_flags IL_07FB: ldc.i4.s 32 IL_07FD: and IL_07FE: brtrue => Label55 IL_0803: ldarg.1 IL_0804: brfalse => Label56 IL_0809: ldloc.0 IL_080A: ldfld Array16`1 NetManager::m_segments IL_080F: ldfld NetSegment[] Array16`1::m_buffer IL_0814: ldloc.s 27 (System.UInt16) IL_0816: ldelema NetSegment IL_081B: dup IL_081C: ldfld Flags NetSegment::m_flags IL_0821: ldc.i4.s 32 IL_0823: or IL_0824: stfld Flags NetSegment::m_flags IL_0829: ldloc.0 IL_082A: ldloc.s 27 (System.UInt16) IL_082C: callvirt System.Void NetManager::UpdateSegment(System.UInt16 segment) IL_0831: br => Label57 IL_0836: Label56 IL_0836: call static ToolManager ColossalFramework.Singleton`1::get_instance() IL_083B: ldfld ToolController SimulationManagerBase`2::m_properties IL_0840: ldfld Availability ToolController::m_mode IL_0845: ldc.i4.4 IL_0846: and IL_0847: brfalse => Label58 IL_084C: ldloc.0 IL_084D: ldfld Array16`1 NetManager::m_segments IL_0852: ldfld NetSegment[] Array16`1::m_buffer IL_0857: ldloc.s 27 (System.UInt16) IL_0859: ldelema NetSegment IL_085E: call NetInfo NetSegment::get_Info() IL_0863: stloc.s 28 (NetInfo) IL_0865: ldloc.s 28 (NetInfo) IL_0867: ldfld Availability NetInfo::m_availableIn IL_086C: ldc.i4.4 IL_086D: and IL_086E: brtrue => Label59 IL_0873: ldloc.0 IL_0874: ldfld Array16`1 NetManager::m_segments IL_0879: ldfld NetSegment[] Array16`1::m_buffer IL_087E: ldloc.s 27 (System.UInt16) IL_0880: ldelema NetSegment IL_0885: dup IL_0886: ldfld Flags NetSegment::m_flags IL_088B: ldc.i4.s 32 IL_088D: or IL_088E: stfld Flags NetSegment::m_flags IL_0893: Label58 IL_0893: Label59 IL_0893: ldloc.0 IL_0894: ldloc.s 27 (System.UInt16) IL_0896: callvirt System.Void NetManager::UpdateSegment(System.UInt16 segment) IL_089B: Label55 IL_089B: Label57 IL_089B: ldloc.s 26 (System.Int32) IL_089D: ldc.i4.1 IL_089E: add IL_089F: stloc.s 26 (System.Int32) IL_08A1: Label54 IL_08A1: ldloc.s 26 (System.Int32) IL_08A3: ldloc.0 IL_08A4: ldfld FastList`1 NetManager::m_tempSegmentBuffer IL_08A9: ldfld System.Int32 FastList`1::m_size IL_08AE: blt => Label60 IL_08B3: ldarg.0 IL_08B4: call static System.Void TrafficManager.Patches._BuildingDecoration.LoadPathsPatch::AfterIntersectionBuilt(BuildingInfo info) IL_08B9: ldloc.0 IL_08BA: ldfld FastList`1 NetManager::m_tempNodeBuffer IL_08BF: callvirt System.Void FastList`1::Clear() IL_08C4: ldloc.0 IL_08C5: ldfld FastList`1 NetManager::m_tempSegmentBuffer IL_08CA: callvirt System.Void FastList`1::Clear() IL_08CF: // end original IL_08CF: Label0 IL_08CF: ret DONE ### Patch: System.Void NetManager::ReleaseLaneImplementation(System.UInt32 lane, NetLane& data) ### Replacement: static System.Void NetManager::NetManager.ReleaseLaneImplementation_Patch1(NetManager this, System.UInt32 lane, NetLane& data) IL_0000: Local var 0: System.UInt16 IL_0000: Local var 1: System.Int32 IL_0000: Local var 2: System.UInt16 IL_0000: // start original IL_0000: ldarg.2 IL_0001: ldfld System.UInt16 NetLane::m_nodes IL_0006: brfalse => Label0 IL_000B: ldarg.2 IL_000C: ldfld System.UInt16 NetLane::m_nodes IL_0011: stloc.0 IL_0012: ldarg.2 IL_0013: ldc.i4.0 IL_0014: stfld System.UInt16 NetLane::m_nodes IL_0019: ldc.i4.0 IL_001A: stloc.1 IL_001B: br => Label1 IL_0020: Label4 IL_0020: ldarg.0 IL_0021: ldfld Array16`1 NetManager::m_nodes IL_0026: ldfld NetNode[] Array16`1::m_buffer IL_002B: ldloc.0 IL_002C: ldelema NetNode IL_0031: ldfld System.UInt16 NetNode::m_nextLaneNode IL_0036: stloc.2 IL_0037: ldarg.0 IL_0038: ldfld Array16`1 NetManager::m_nodes IL_003D: ldfld NetNode[] Array16`1::m_buffer IL_0042: ldloc.0 IL_0043: ldelema NetNode IL_0048: ldc.i4.0 IL_0049: stfld System.UInt16 NetNode::m_nextLaneNode IL_004E: ldarg.0 IL_004F: ldfld Array16`1 NetManager::m_nodes IL_0054: ldfld NetNode[] Array16`1::m_buffer IL_0059: ldloc.0 IL_005A: ldelema NetNode IL_005F: ldc.i4.0 IL_0060: stfld System.UInt32 NetNode::m_lane IL_0065: ldarg.0 IL_0066: ldfld Array16`1 NetManager::m_nodes IL_006B: ldfld NetNode[] Array16`1::m_buffer IL_0070: ldloc.0 IL_0071: ldelema NetNode IL_0076: ldc.i4.0 IL_0077: stfld System.Byte NetNode::m_laneOffset IL_007C: ldarg.0 IL_007D: ldloc.0 IL_007E: ldc.i4.0 IL_007F: ldc.i4.s 10 IL_0081: call System.Void NetManager::UpdateNode(System.UInt16 node, System.UInt16 fromSegment, System.Int32 level) IL_0086: ldloc.2 IL_0087: stloc.0 IL_0088: ldloc.1 IL_0089: ldc.i4.1 IL_008A: add IL_008B: dup IL_008C: stloc.1 IL_008D: ldc.i4 32768 IL_0092: ble => Label2 IL_0097: ldc.i4.1 IL_0098: ldstr "Invalid list detected!\n" IL_009D: call static System.String System.Environment::get_StackTrace() IL_00A2: call static System.String System.String::Concat(System.String str0, System.String str1) IL_00A7: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_00AC: br => Label3 IL_00B1: Label1 IL_00B1: Label2 IL_00B1: ldloc.0 IL_00B2: brtrue => Label4 IL_00B7: Label0 IL_00B7: Label3 IL_00B7: ldarg.2 IL_00B8: initobj NetLane IL_00BE: ldarg.0 IL_00BF: ldfld Array32`1 NetManager::m_lanes IL_00C4: ldarg.1 IL_00C5: callvirt System.Void Array32`1::ReleaseItem(System.UInt32 item) IL_00CA: // end original IL_00CA: ldarg 1 IL_00CE: call static System.Void TrafficManager.Patch.NetManagerEvents::ReleaseLaneImplementationPostfix(System.UInt32 lane) IL_00D3: ret DONE ### Patch: System.Void NetManager::ReleaseSegmentImplementation(System.UInt16 segment, NetSegment& data, System.Boolean keepNodes) ### Replacement: static System.Void NetManager::NetManager.ReleaseSegmentImplementation_Patch1(NetManager this, System.UInt16 segment, NetSegment& data, System.Boolean keepNodes) IL_0000: Local var 0: NetInfo IL_0000: Local var 1: InstanceID IL_0000: // start original IL_0000: ldarg.2 IL_0001: ldfld Flags NetSegment::m_flags IL_0006: brfalse => Label0 IL_000B: ldarg.2 IL_000C: call NetInfo NetSegment::get_Info() IL_0011: stloc.0 IL_0012: ldloc.0 IL_0013: brfalse => Label1 IL_0018: ldloc.0 IL_0019: ldfld NetAI NetInfo::m_netAI IL_001E: ldarg.1 IL_001F: ldarg.2 IL_0020: callvirt virtual System.Void NetAI::ReleaseSegment(System.UInt16 segmentID, NetSegment& data) IL_0025: Label1 IL_0025: ldarg.0 IL_0026: ldfld NetAdjust NetManager::m_netAdjust IL_002B: brfalse => Label2 IL_0030: ldarg.0 IL_0031: ldfld NetAdjust NetManager::m_netAdjust IL_0036: ldarg.1 IL_0037: callvirt System.Void NetAdjust::SegmentRemoved(System.UInt16 segment) IL_003C: Label2 IL_003C: ldloca.s 1 (InstanceID) IL_003E: initobj InstanceID IL_0044: ldloca.s 1 (InstanceID) IL_0046: ldarg.1 IL_0047: call System.Void InstanceID::set_NetSegment(System.UInt16 value) IL_004C: call static InstanceManager ColossalFramework.Singleton`1::get_instance() IL_0051: ldloc.1 IL_0052: callvirt System.Void InstanceManager::ReleaseInstance(InstanceID id) IL_0057: ldarg.2 IL_0058: ldc.i4.0 IL_0059: stfld Flags NetSegment::m_flags IL_005E: ldarg.2 IL_005F: ldc.i4.0 IL_0060: stfld Flags2 NetSegment::m_flags2 IL_0065: ldarg.0 IL_0066: ldfld System.UInt64[] NetManager::m_adjustedSegments IL_006B: ldarg.1 IL_006C: ldc.i4.6 IL_006D: shr IL_006E: ldelema System.UInt64 IL_0073: dup IL_0074: ldind.i8 IL_0075: ldc.i4.1 IL_0076: conv.i8 IL_0077: ldarg.1 IL_0078: ldc.i4.s 63 IL_007A: and IL_007B: ldc.i4.s 63 IL_007D: and IL_007E: shl IL_007F: not IL_0080: and IL_0081: stind.i8 IL_0082: ldarg.0 IL_0083: ldarg.1 IL_0084: ldarg.2 IL_0085: ldflda System.UInt16 NetSegment::m_startNode IL_008A: ldarg.3 IL_008B: call System.Void NetManager::ReleaseSegmentNode(System.UInt16 segment, System.UInt16& segmentNode, System.Boolean keepNodes) IL_0090: ldarg.0 IL_0091: ldarg.1 IL_0092: ldarg.2 IL_0093: ldflda System.UInt16 NetSegment::m_endNode IL_0098: ldarg.3 IL_0099: call System.Void NetManager::ReleaseSegmentNode(System.UInt16 segment, System.UInt16& segmentNode, System.Boolean keepNodes) IL_009E: ldarg.0 IL_009F: ldarg.1 IL_00A0: ldarg.2 IL_00A1: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_00A6: call System.Void NetManager::ReleaseSegmentBlock(System.UInt16 segment, System.UInt16& segmentBlock) IL_00AB: ldarg.0 IL_00AC: ldarg.1 IL_00AD: ldarg.2 IL_00AE: ldflda System.UInt16 NetSegment::m_blockStartRight IL_00B3: call System.Void NetManager::ReleaseSegmentBlock(System.UInt16 segment, System.UInt16& segmentBlock) IL_00B8: ldarg.0 IL_00B9: ldarg.1 IL_00BA: ldarg.2 IL_00BB: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_00C0: call System.Void NetManager::ReleaseSegmentBlock(System.UInt16 segment, System.UInt16& segmentBlock) IL_00C5: ldarg.0 IL_00C6: ldarg.1 IL_00C7: ldarg.2 IL_00C8: ldflda System.UInt16 NetSegment::m_blockEndRight IL_00CD: call System.Void NetManager::ReleaseSegmentBlock(System.UInt16 segment, System.UInt16& segmentBlock) IL_00D2: ldarg.2 IL_00D3: ldfld System.UInt32 NetSegment::m_lanes IL_00D8: brfalse => Label3 IL_00DD: ldarg.0 IL_00DE: ldarg.2 IL_00DF: ldfld System.UInt32 NetSegment::m_lanes IL_00E4: call System.Void NetManager::ReleaseLanes(System.UInt32 firstLane) IL_00E9: ldarg.2 IL_00EA: ldc.i4.0 IL_00EB: stfld System.UInt32 NetSegment::m_lanes IL_00F0: Label3 IL_00F0: ldarg.2 IL_00F1: ldfld System.UInt32 NetSegment::m_path IL_00F6: brfalse => Label4 IL_00FB: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_0100: ldarg.2 IL_0101: ldfld System.UInt32 NetSegment::m_path IL_0106: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit) IL_010B: ldarg.2 IL_010C: ldc.i4.0 IL_010D: stfld System.UInt32 NetSegment::m_path IL_0112: Label4 IL_0112: ldarg.0 IL_0113: ldfld Array16`1 NetManager::m_segments IL_0118: ldarg.1 IL_0119: callvirt System.Void Array16`1::ReleaseItem(System.UInt16 item) IL_011E: ldarg.0 IL_011F: ldarg.0 IL_0120: ldfld Array16`1 NetManager::m_segments IL_0125: callvirt System.UInt32 Array16`1::ItemCount() IL_012A: ldc.i4.1 IL_012B: sub IL_012C: stfld System.Int32 NetManager::m_segmentCount IL_0131: // end original IL_0131: Label0 IL_0131: ldarg 1 IL_0135: call static System.Void TrafficManager.Patch.NetManagerEvents::ReleaseSegmentImplementationPostfix(System.UInt16 segment) IL_013A: ret DONE ### Patch: System.Void NetManager::PreReleaseSegmentImplementation(System.UInt16 segment, NetSegment& data, System.Boolean keepNodes) ### Replacement: static System.Void NetManager::NetManager.PreReleaseSegmentImplementation_Patch1(NetManager this, System.UInt16 segment, NetSegment& data, System.Boolean keepNodes) IL_0000: Local var 0: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 0 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 0 (System.Boolean) IL_000E: ldloc 0 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean TrafficManager.Patch.NetManagerEvents::PreReleaseSegmentImplementationPrefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 0 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 0 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: ldarg.2 IL_0033: ldfld Flags NetSegment::m_flags IL_0038: ldc.i4.2 IL_0039: and IL_003A: brtrue => Label2 IL_003F: ldarg.2 IL_0040: dup IL_0041: ldfld Flags NetSegment::m_flags IL_0046: ldc.i4.2 IL_0047: or IL_0048: stfld Flags NetSegment::m_flags IL_004D: ldarg.0 IL_004E: ldarg.1 IL_004F: ldarg.2 IL_0050: call System.Void NetManager::FinalizeSegment(System.UInt16 segment, NetSegment& data) IL_0055: ldarg.3 IL_0056: brtrue => Label3 IL_005B: ldarg.2 IL_005C: ldfld System.UInt16 NetSegment::m_startNode IL_0061: brfalse => Label4 IL_0066: ldarg.0 IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_startNode IL_006D: ldc.i4.1 IL_006E: ldc.i4.1 IL_006F: call System.Void NetManager::PreReleaseNodeImplementation(System.UInt16 node, System.Boolean checkDeleted, System.Boolean checkTouchable) IL_0074: Label4 IL_0074: ldarg.2 IL_0075: ldfld System.UInt16 NetSegment::m_endNode IL_007A: brfalse => Label5 IL_007F: ldarg.0 IL_0080: ldarg.2 IL_0081: ldfld System.UInt16 NetSegment::m_endNode IL_0086: ldc.i4.1 IL_0087: ldc.i4.1 IL_0088: call System.Void NetManager::PreReleaseNodeImplementation(System.UInt16 node, System.Boolean checkDeleted, System.Boolean checkTouchable) IL_008D: Label3 IL_008D: Label5 IL_008D: ldarg.2 IL_008E: ldarg.1 IL_008F: call System.Void NetSegment::UpdateSegment(System.UInt16 segmentID) IL_0094: ldarg.2 IL_0095: ldarg.1 IL_0096: call System.Void NetSegment::UpdateZones(System.UInt16 segmentID) IL_009B: ldarg.0 IL_009C: ldarg.1 IL_009D: ldc.i4.1 IL_009E: call System.Void NetManager::UpdateSegmentRenderer(System.UInt16 segment, System.Boolean updateGroup) IL_00A3: // end original IL_00A3: Label2 IL_00A3: Label0 IL_00A3: ret DONE ### Patch: System.Void Vehicle::Unspawn(System.UInt16 vehicleID) ### Replacement: static System.Void Vehicle::Vehicle.Unspawn_Patch1(Vehicle& this, System.UInt16 vehicleID) IL_0000: Local var 0: VehicleManager IL_0000: Local var 1: System.UInt16 IL_0000: Local var 2: System.Int32 IL_0000: Local var 3: System.UInt16 IL_0000: Local var 4: VehicleInfo IL_0000: ldarg 1 IL_0004: ldarg.0 IL_0005: call static System.Void TrafficManager.Patch._Vehicle.UnspawnPatch::Prefix(System.UInt16 vehicleID, Vehicle& __instance) IL_000A: // start original IL_000A: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_000F: stloc.0 IL_0010: ldarg.0 IL_0011: ldfld System.UInt16 Vehicle::m_leadingVehicle IL_0016: brtrue => Label0 IL_001B: ldarg.0 IL_001C: ldfld System.UInt16 Vehicle::m_trailingVehicle IL_0021: brfalse => Label1 IL_0026: ldarg.0 IL_0027: ldfld System.UInt16 Vehicle::m_trailingVehicle IL_002C: stloc.1 IL_002D: ldarg.0 IL_002E: ldc.i4.0 IL_002F: stfld System.UInt16 Vehicle::m_trailingVehicle IL_0034: ldc.i4.0 IL_0035: stloc.2 IL_0036: br => Label2 IL_003B: Label5 IL_003B: ldloc.0 IL_003C: ldfld Array16`1 VehicleManager::m_vehicles IL_0041: ldfld Vehicle[] Array16`1::m_buffer IL_0046: ldloc.1 IL_0047: ldelema Vehicle IL_004C: ldfld System.UInt16 Vehicle::m_trailingVehicle IL_0051: stloc.3 IL_0052: ldloc.0 IL_0053: ldfld Array16`1 VehicleManager::m_vehicles IL_0058: ldfld Vehicle[] Array16`1::m_buffer IL_005D: ldloc.1 IL_005E: ldelema Vehicle IL_0063: ldc.i4.0 IL_0064: stfld System.UInt16 Vehicle::m_leadingVehicle IL_0069: ldloc.0 IL_006A: ldfld Array16`1 VehicleManager::m_vehicles IL_006F: ldfld Vehicle[] Array16`1::m_buffer IL_0074: ldloc.1 IL_0075: ldelema Vehicle IL_007A: ldc.i4.0 IL_007B: stfld System.UInt16 Vehicle::m_trailingVehicle IL_0080: ldloc.0 IL_0081: ldloc.1 IL_0082: callvirt System.Void VehicleManager::ReleaseVehicle(System.UInt16 vehicle) IL_0087: ldloc.3 IL_0088: stloc.1 IL_0089: ldloc.2 IL_008A: ldc.i4.1 IL_008B: add IL_008C: dup IL_008D: stloc.2 IL_008E: ldc.i4 16384 IL_0093: ble => Label3 IL_0098: ldc.i4.1 IL_0099: ldstr "Invalid list detected!\n" IL_009E: call static System.String System.Environment::get_StackTrace() IL_00A3: call static System.String System.String::Concat(System.String str0, System.String str1) IL_00A8: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_00AD: br => Label4 IL_00B2: Label2 IL_00B2: Label3 IL_00B2: ldloc.1 IL_00B3: brtrue => Label5 IL_00B8: Label0 IL_00B8: Label1 IL_00B8: Label4 IL_00B8: ldarg.0 IL_00B9: ldfld Flags Vehicle::m_flags IL_00BE: ldc.i4.4 IL_00BF: and IL_00C0: brfalse => Label6 IL_00C5: ldarg.0 IL_00C6: call VehicleInfo Vehicle::get_Info() IL_00CB: stloc.s 4 (VehicleInfo) IL_00CD: ldloc.s 4 (VehicleInfo) IL_00CF: brfalse => Label7 IL_00D4: ldloc.0 IL_00D5: ldarg.1 IL_00D6: ldarg.0 IL_00D7: ldloc.s 4 (VehicleInfo) IL_00D9: ldfld System.Boolean VehicleInfo::m_isLargeVehicle IL_00DE: callvirt System.Void VehicleManager::RemoveFromGrid(System.UInt16 vehicle, Vehicle& data, System.Boolean large) IL_00E3: Label7 IL_00E3: ldarg.0 IL_00E4: dup IL_00E5: ldfld Flags Vehicle::m_flags IL_00EA: ldc.i4.s -5 IL_00EC: and IL_00ED: stfld Flags Vehicle::m_flags IL_00F2: // end original IL_00F2: Label6 IL_00F2: ret DONE ### Patch: System.Void Vehicle::Spawn(System.UInt16 vehicleID) ### Replacement: static System.Void Vehicle::Vehicle.Spawn_Patch1(Vehicle& this, System.UInt16 vehicleID) IL_0000: Local var 0: VehicleManager IL_0000: Local var 1: VehicleInfo IL_0000: Local var 2: System.UInt16 IL_0000: Local var 3: System.Int32 IL_0000: Local var 4: System.Boolean IL_0000: Local var 5: System.UInt16 IL_0000: Local var 6: System.Boolean IL_0000: Local var 7: Vehicle/Frame IL_0000: Local var 8: System.Single IL_0000: Local var 9: ColossalFramework.Math.Randomizer IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Int32 IL_0000: Local var 12: VehicleInfo IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: System.UInt16 IL_0000: // start original IL_0000: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldarg.0 IL_0007: call VehicleInfo Vehicle::get_Info() IL_000C: stloc.1 IL_000D: ldarg.0 IL_000E: ldfld Flags Vehicle::m_flags IL_0013: ldc.i4.4 IL_0014: and IL_0015: brtrue => Label0 IL_001A: ldarg.0 IL_001B: dup IL_001C: ldfld Flags Vehicle::m_flags IL_0021: ldc.i4.4 IL_0022: or IL_0023: stfld Flags Vehicle::m_flags IL_0028: ldloc.0 IL_0029: ldarg.1 IL_002A: ldarg.0 IL_002B: ldloc.1 IL_002C: ldfld System.Boolean VehicleInfo::m_isLargeVehicle IL_0031: callvirt System.Void VehicleManager::AddToGrid(System.UInt16 vehicle, Vehicle& data, System.Boolean large) IL_0036: Label0 IL_0036: ldarg.0 IL_0037: ldfld System.UInt16 Vehicle::m_leadingVehicle IL_003C: brtrue => Label1 IL_0041: ldarg.0 IL_0042: ldfld System.UInt16 Vehicle::m_trailingVehicle IL_0047: brfalse => Label2 IL_004C: ldarg.0 IL_004D: ldfld System.UInt16 Vehicle::m_trailingVehicle IL_0052: stloc.2 IL_0053: ldc.i4.0 IL_0054: stloc.3 IL_0055: br => Label3 IL_005A: Label6 IL_005A: ldloc.0 IL_005B: ldfld Array16`1 VehicleManager::m_vehicles IL_0060: ldfld Vehicle[] Array16`1::m_buffer IL_0065: ldloc.2 IL_0066: ldelema Vehicle IL_006B: ldloc.2 IL_006C: call System.Void Vehicle::Spawn(System.UInt16 vehicleID) IL_0071: ldloc.0 IL_0072: ldfld Array16`1 VehicleManager::m_vehicles IL_0077: ldfld Vehicle[] Array16`1::m_buffer IL_007C: ldloc.2 IL_007D: ldelema Vehicle IL_0082: ldfld System.UInt16 Vehicle::m_trailingVehicle IL_0087: stloc.2 IL_0088: ldloc.3 IL_0089: ldc.i4.1 IL_008A: add IL_008B: dup IL_008C: stloc.3 IL_008D: ldc.i4 16384 IL_0092: ble => Label4 IL_0097: ldc.i4.1 IL_0098: ldstr "Invalid list detected!\n" IL_009D: call static System.String System.Environment::get_StackTrace() IL_00A2: call static System.String System.String::Concat(System.String str0, System.String str1) IL_00A7: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_00AC: br => Label5 IL_00B1: Label3 IL_00B1: Label4 IL_00B1: ldloc.2 IL_00B2: brtrue => Label6 IL_00B7: Label1 IL_00B7: Label2 IL_00B7: Label5 IL_00B7: ldarg.0 IL_00B8: ldfld System.UInt16 Vehicle::m_leadingVehicle IL_00BD: brtrue => Label7 IL_00C2: ldarg.0 IL_00C3: ldfld System.UInt16 Vehicle::m_trailingVehicle IL_00C8: brtrue => Label8 IL_00CD: ldloc.1 IL_00CE: ldfld VehicleTrailer[] VehicleInfo::m_trailers IL_00D3: brfalse => Label9 IL_00D8: ldloc.1 IL_00D9: ldfld VehicleAI VehicleInfo::m_vehicleAI IL_00DE: callvirt virtual System.Boolean VehicleAI::VerticalTrailers() IL_00E3: stloc.s 4 (System.Boolean) IL_00E5: ldarg.1 IL_00E6: stloc.s 5 (System.UInt16) IL_00E8: ldloc.0 IL_00E9: ldfld Array16`1 VehicleManager::m_vehicles IL_00EE: ldfld Vehicle[] Array16`1::m_buffer IL_00F3: ldloc.s 5 (System.UInt16) IL_00F5: ldelema Vehicle IL_00FA: ldfld Flags Vehicle::m_flags IL_00FF: ldc.i4 4096 IL_0104: and IL_0105: ldc.i4.0 IL_0106: ceq IL_0108: ldc.i4.0 IL_0109: ceq IL_010B: stloc.s 6 (System.Boolean) IL_010D: ldarg.0 IL_010E: call Frame Vehicle::GetLastFrameData() IL_0113: stloc.s 7 (Vehicle+Frame) IL_0115: ldloc.s 4 (System.Boolean) IL_0117: brfalse => Label10 IL_011C: ldc.r4 0 IL_0121: br => Label11 IL_0126: Label10 IL_0126: ldloc.1 IL_0127: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_012C: ldflda UnityEngine.Vector3 VehicleInfoGen::m_size IL_0131: ldfld System.Single UnityEngine.Vector3::z IL_0136: ldc.r4 0.5 IL_013B: mul IL_013C: Label11 IL_013C: stloc.s 8 (System.Single) IL_013E: ldloc.s 8 (System.Single) IL_0140: ldarg.0 IL_0141: ldfld Flags Vehicle::m_flags IL_0146: ldc.i4.8 IL_0147: and IL_0148: brfalse => Label12 IL_014D: ldloc.1 IL_014E: ldfld System.Single VehicleInfo::m_attachOffsetFront IL_0153: br => Label13 IL_0158: Label12 IL_0158: ldloc.1 IL_0159: ldfld System.Single VehicleInfo::m_attachOffsetBack IL_015E: Label13 IL_015E: sub IL_015F: stloc.s 8 (System.Single) IL_0161: ldloca.s 9 (ColossalFramework.Math.Randomizer) IL_0163: ldarg.1 IL_0164: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0169: ldc.i4.0 IL_016A: stloc.s 10 (System.Int32) IL_016C: ldc.i4.0 IL_016D: stloc.s 11 (System.Int32) IL_016F: br => Label14 IL_0174: Label33 IL_0174: ldloca.s 9 (ColossalFramework.Math.Randomizer) IL_0176: ldc.i4.s 100 IL_0178: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_017D: ldloc.1 IL_017E: ldfld VehicleTrailer[] VehicleInfo::m_trailers IL_0183: ldloc.s 11 (System.Int32) IL_0185: ldelema VehicleInfo+VehicleTrailer IL_018A: ldfld System.Int32 VehicleTrailer::m_probability IL_018F: bge => Label15 IL_0194: ldloc.1 IL_0195: ldfld VehicleTrailer[] VehicleInfo::m_trailers IL_019A: ldloc.s 11 (System.Int32) IL_019C: ldelema VehicleInfo+VehicleTrailer IL_01A1: ldfld VehicleInfo VehicleTrailer::m_info IL_01A6: stloc.s 12 (VehicleInfo) IL_01A8: ldloca.s 9 (ColossalFramework.Math.Randomizer) IL_01AA: ldc.i4.s 100 IL_01AC: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_01B1: ldloc.1 IL_01B2: ldfld VehicleTrailer[] VehicleInfo::m_trailers IL_01B7: ldloc.s 11 (System.Int32) IL_01B9: ldelema VehicleInfo+VehicleTrailer IL_01BE: ldfld System.Int32 VehicleTrailer::m_invertProbability IL_01C3: clt IL_01C5: stloc.s 13 (System.Boolean) IL_01C7: ldloc.s 8 (System.Single) IL_01C9: ldloc.s 4 (System.Boolean) IL_01CB: brfalse => Label16 IL_01D0: ldloc.s 12 (VehicleInfo) IL_01D2: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_01D7: ldflda UnityEngine.Vector3 VehicleInfoGen::m_size IL_01DC: ldfld System.Single UnityEngine.Vector3::y IL_01E1: br => Label17 IL_01E6: Label16 IL_01E6: ldloc.s 12 (VehicleInfo) IL_01E8: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_01ED: ldflda UnityEngine.Vector3 VehicleInfoGen::m_size IL_01F2: ldfld System.Single UnityEngine.Vector3::z IL_01F7: ldc.r4 0.5 IL_01FC: mul IL_01FD: Label17 IL_01FD: add IL_01FE: stloc.s 8 (System.Single) IL_0200: ldloc.s 8 (System.Single) IL_0202: ldloc.s 13 (System.Boolean) IL_0204: brfalse => Label18 IL_0209: ldloc.s 12 (VehicleInfo) IL_020B: ldfld System.Single VehicleInfo::m_attachOffsetBack IL_0210: br => Label19 IL_0215: Label18 IL_0215: ldloc.s 12 (VehicleInfo) IL_0217: ldfld System.Single VehicleInfo::m_attachOffsetFront IL_021C: Label19 IL_021C: sub IL_021D: stloc.s 8 (System.Single) IL_021F: ldloca.s 7 (Vehicle+Frame) IL_0221: ldfld UnityEngine.Vector3 Frame::m_position IL_0226: ldloca.s 7 (Vehicle+Frame) IL_0228: ldfld UnityEngine.Quaternion Frame::m_rotation IL_022D: ldc.r4 0 IL_0232: ldloc.s 4 (System.Boolean) IL_0234: brfalse => Label20 IL_0239: ldloc.s 8 (System.Single) IL_023B: br => Label21 IL_0240: Label20 IL_0240: ldc.r4 0 IL_0245: Label21 IL_0245: ldloc.s 4 (System.Boolean) IL_0247: brfalse => Label22 IL_024C: ldc.r4 0 IL_0251: br => Label23 IL_0256: Label22 IL_0256: ldloc.s 8 (System.Single) IL_0258: Label23 IL_0258: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_025D: call static UnityEngine.Vector3 UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation, UnityEngine.Vector3 point) IL_0262: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0267: stloc.s 14 (UnityEngine.Vector3) IL_0269: ldloc.0 IL_026A: ldloca.s 15 (System.UInt16) IL_026C: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0271: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0276: ldloc.s 12 (VehicleInfo) IL_0278: ldloc.s 14 (UnityEngine.Vector3) IL_027A: ldarg.0 IL_027B: ldfld System.Byte Vehicle::m_transferType IL_0280: ldc.i4.0 IL_0281: ldc.i4.0 IL_0282: callvirt System.Boolean VehicleManager::CreateVehicle(System.UInt16& vehicle, ColossalFramework.Math.Randomizer& r, VehicleInfo info, UnityEngine.Vector3 position, TransferReason type, System.Boolean transferToSource, System.Boolean transferToTarget) IL_0287: brfalse => Label24 IL_028C: ldloc.0 IL_028D: ldfld Array16`1 VehicleManager::m_vehicles IL_0292: ldfld Vehicle[] Array16`1::m_buffer IL_0297: ldloc.s 5 (System.UInt16) IL_0299: ldelema Vehicle IL_029E: ldloc.s 15 (System.UInt16) IL_02A0: stfld System.UInt16 Vehicle::m_trailingVehicle IL_02A5: ldloc.0 IL_02A6: ldfld Array16`1 VehicleManager::m_vehicles IL_02AB: ldfld Vehicle[] Array16`1::m_buffer IL_02B0: ldloc.s 15 (System.UInt16) IL_02B2: ldelema Vehicle IL_02B7: ldloc.s 5 (System.UInt16) IL_02B9: stfld System.UInt16 Vehicle::m_leadingVehicle IL_02BE: ldloc.0 IL_02BF: ldfld Array16`1 VehicleManager::m_vehicles IL_02C4: ldfld Vehicle[] Array16`1::m_buffer IL_02C9: ldloc.s 15 (System.UInt16) IL_02CB: ldelema Vehicle IL_02D0: ldarg.0 IL_02D1: ldfld System.Byte Vehicle::m_gateIndex IL_02D6: stfld System.Byte Vehicle::m_gateIndex IL_02DB: ldloc.s 13 (System.Boolean) IL_02DD: brfalse => Label25 IL_02E2: ldloc.0 IL_02E3: ldfld Array16`1 VehicleManager::m_vehicles IL_02E8: ldfld Vehicle[] Array16`1::m_buffer IL_02ED: ldloc.s 15 (System.UInt16) IL_02EF: ldelema Vehicle IL_02F4: dup IL_02F5: ldfld Flags Vehicle::m_flags IL_02FA: ldc.i4.8 IL_02FB: or IL_02FC: stfld Flags Vehicle::m_flags IL_0301: Label25 IL_0301: ldloc.s 6 (System.Boolean) IL_0303: brfalse => Label26 IL_0308: ldloc.0 IL_0309: ldfld Array16`1 VehicleManager::m_vehicles IL_030E: ldfld Vehicle[] Array16`1::m_buffer IL_0313: ldloc.s 15 (System.UInt16) IL_0315: ldelema Vehicle IL_031A: dup IL_031B: ldfld Flags Vehicle::m_flags IL_0320: ldc.i4 4096 IL_0325: or IL_0326: stfld Flags Vehicle::m_flags IL_032B: Label26 IL_032B: ldloc.0 IL_032C: ldfld Array16`1 VehicleManager::m_vehicles IL_0331: ldfld Vehicle[] Array16`1::m_buffer IL_0336: ldloc.s 15 (System.UInt16) IL_0338: ldelema Vehicle IL_033D: ldflda Frame Vehicle::m_frame0 IL_0342: ldloca.s 7 (Vehicle+Frame) IL_0344: ldfld UnityEngine.Quaternion Frame::m_rotation IL_0349: stfld UnityEngine.Quaternion Frame::m_rotation IL_034E: ldloc.0 IL_034F: ldfld Array16`1 VehicleManager::m_vehicles IL_0354: ldfld Vehicle[] Array16`1::m_buffer IL_0359: ldloc.s 15 (System.UInt16) IL_035B: ldelema Vehicle IL_0360: ldflda Frame Vehicle::m_frame1 IL_0365: ldloca.s 7 (Vehicle+Frame) IL_0367: ldfld UnityEngine.Quaternion Frame::m_rotation IL_036C: stfld UnityEngine.Quaternion Frame::m_rotation IL_0371: ldloc.0 IL_0372: ldfld Array16`1 VehicleManager::m_vehicles IL_0377: ldfld Vehicle[] Array16`1::m_buffer IL_037C: ldloc.s 15 (System.UInt16) IL_037E: ldelema Vehicle IL_0383: ldflda Frame Vehicle::m_frame2 IL_0388: ldloca.s 7 (Vehicle+Frame) IL_038A: ldfld UnityEngine.Quaternion Frame::m_rotation IL_038F: stfld UnityEngine.Quaternion Frame::m_rotation IL_0394: ldloc.0 IL_0395: ldfld Array16`1 VehicleManager::m_vehicles IL_039A: ldfld Vehicle[] Array16`1::m_buffer IL_039F: ldloc.s 15 (System.UInt16) IL_03A1: ldelema Vehicle IL_03A6: ldflda Frame Vehicle::m_frame3 IL_03AB: ldloca.s 7 (Vehicle+Frame) IL_03AD: ldfld UnityEngine.Quaternion Frame::m_rotation IL_03B2: stfld UnityEngine.Quaternion Frame::m_rotation IL_03B7: ldloc.s 12 (VehicleInfo) IL_03B9: ldfld VehicleAI VehicleInfo::m_vehicleAI IL_03BE: ldloc.s 15 (System.UInt16) IL_03C0: ldloc.0 IL_03C1: ldfld Array16`1 VehicleManager::m_vehicles IL_03C6: ldfld Vehicle[] Array16`1::m_buffer IL_03CB: ldloc.s 15 (System.UInt16) IL_03CD: ldelema Vehicle IL_03D2: ldloc.0 IL_03D3: ldfld Array16`1 VehicleManager::m_vehicles IL_03D8: ldfld Vehicle[] Array16`1::m_buffer IL_03DD: ldloc.s 15 (System.UInt16) IL_03DF: ldelema Vehicle IL_03E4: ldflda Frame Vehicle::m_frame0 IL_03E9: callvirt virtual System.Void VehicleAI::FrameDataUpdated(System.UInt16 vehicleID, Vehicle& vehicleData, Frame& frameData) IL_03EE: ldloc.0 IL_03EF: ldfld Array16`1 VehicleManager::m_vehicles IL_03F4: ldfld Vehicle[] Array16`1::m_buffer IL_03F9: ldloc.s 15 (System.UInt16) IL_03FB: ldelema Vehicle IL_0400: ldloc.s 15 (System.UInt16) IL_0402: call System.Void Vehicle::Spawn(System.UInt16 vehicleID) IL_0407: ldloc.s 15 (System.UInt16) IL_0409: stloc.s 5 (System.UInt16) IL_040B: Label24 IL_040B: ldloc.s 8 (System.Single) IL_040D: ldloc.s 4 (System.Boolean) IL_040F: brfalse => Label27 IL_0414: ldc.r4 0 IL_0419: br => Label28 IL_041E: Label27 IL_041E: ldloc.s 12 (VehicleInfo) IL_0420: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_0425: ldflda UnityEngine.Vector3 VehicleInfoGen::m_size IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldc.r4 0.5 IL_0434: mul IL_0435: Label28 IL_0435: add IL_0436: stloc.s 8 (System.Single) IL_0438: ldloc.s 8 (System.Single) IL_043A: ldloc.s 13 (System.Boolean) IL_043C: brfalse => Label29 IL_0441: ldloc.s 12 (VehicleInfo) IL_0443: ldfld System.Single VehicleInfo::m_attachOffsetFront IL_0448: br => Label30 IL_044D: Label29 IL_044D: ldloc.s 12 (VehicleInfo) IL_044F: ldfld System.Single VehicleInfo::m_attachOffsetBack IL_0454: Label30 IL_0454: sub IL_0455: stloc.s 8 (System.Single) IL_0457: ldloc.s 10 (System.Int32) IL_0459: ldc.i4.1 IL_045A: add IL_045B: dup IL_045C: stloc.s 10 (System.Int32) IL_045E: ldloc.1 IL_045F: ldfld System.Int32 VehicleInfo::m_maxTrailerCount IL_0464: bne.un => Label31 IL_0469: br => Label32 IL_046E: Label15 IL_046E: Label31 IL_046E: ldloc.s 11 (System.Int32) IL_0470: ldc.i4.1 IL_0471: add IL_0472: stloc.s 11 (System.Int32) IL_0474: Label14 IL_0474: ldloc.s 11 (System.Int32) IL_0476: ldloc.1 IL_0477: ldfld VehicleTrailer[] VehicleInfo::m_trailers IL_047C: ldlen IL_047D: conv.i4 IL_047E: blt => Label33 IL_0483: // end original IL_0483: Label7 IL_0483: Label8 IL_0483: Label9 IL_0483: Label32 IL_0483: ldarg 1 IL_0487: ldarg.0 IL_0488: call static System.Void TrafficManager.Patch._Vehicle.SpawnPatch::Postfix(System.UInt16 vehicleID, Vehicle& __instance) IL_048D: ret DONE ### Patch: System.Boolean VehicleManager::CreateVehicle(System.UInt16& vehicle, ColossalFramework.Math.Randomizer& r, VehicleInfo info, UnityEngine.Vector3 position, TransferReason type, System.Boolean transferToSource, System.Boolean transferToTarget) ### Replacement: static System.Boolean VehicleManager::VehicleManager.CreateVehicle_Patch2(VehicleManager this, System.UInt16& vehicle, ColossalFramework.Math.Randomizer& r, VehicleInfo info, UnityEngine.Vector3 position, TransferReason type, System.Boolean transferToSource, System.Boolean transferToTarget) IL_0000: Local var 0: System.UInt16 IL_0000: Local var 1: Vehicle/Frame IL_0000: Local var 2: System.Boolean IL_0000: Local var 3: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 2 (System.Boolean) IL_0009: ldc.i4 0 IL_000E: stloc 3 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 3 (System.Boolean) IL_0017: ldloc 3 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldarg.0 IL_0021: ldarg 1 IL_0025: ldarg 3 IL_0029: call static System.Boolean TrafficManager.Patch._VehicleManager.CreateVehiclePatch::Prefix(VehicleManager __instance, System.UInt16& vehicle, VehicleInfo info) IL_002E: stloc 3 (System.Boolean) IL_0032: Label1 IL_0032: nop IL_0033: ldloc 3 (System.Boolean) IL_0037: brfalse => Label0 IL_003C: // start original IL_003C: ldarg.0 IL_003D: ldfld Array16`1 VehicleManager::m_vehicles IL_0042: ldloca.s 0 (System.UInt16) IL_0044: ldarg.2 IL_0045: callvirt System.Boolean Array16`1::CreateItem(System.UInt16& item, ColossalFramework.Math.Randomizer& r) IL_004A: brfalse => Label2 IL_004F: ldarg.1 IL_0050: ldloc.0 IL_0051: stind.i2 IL_0052: ldloca.s 1 (Vehicle+Frame) IL_0054: ldarg.s 4 IL_0056: call static UnityEngine.Quaternion UnityEngine.Quaternion::get_identity() IL_005B: call System.Void Frame::.ctor(UnityEngine.Vector3 position, UnityEngine.Quaternion rotation) IL_0060: ldarg.0 IL_0061: ldfld Array16`1 VehicleManager::m_vehicles IL_0066: ldfld Vehicle[] Array16`1::m_buffer IL_006B: ldarg.1 IL_006C: ldind.u2 IL_006D: ldelema Vehicle IL_0072: ldc.i4.1 IL_0073: stfld Flags Vehicle::m_flags IL_0078: ldarg.0 IL_0079: ldfld Array16`1 VehicleManager::m_vehicles IL_007E: ldfld Vehicle[] Array16`1::m_buffer IL_0083: ldarg.1 IL_0084: ldind.u2 IL_0085: ldelema Vehicle IL_008A: ldc.i4.0 IL_008B: stfld Flags2 Vehicle::m_flags2 IL_0090: ldarg.s 6 IL_0092: brfalse => Label3 IL_0097: ldarg.0 IL_0098: ldfld Array16`1 VehicleManager::m_vehicles IL_009D: ldfld Vehicle[] Array16`1::m_buffer IL_00A2: ldarg.1 IL_00A3: ldind.u2 IL_00A4: ldelema Vehicle IL_00A9: dup IL_00AA: ldfld Flags Vehicle::m_flags IL_00AF: ldc.i4.s 32 IL_00B1: or IL_00B2: stfld Flags Vehicle::m_flags IL_00B7: Label3 IL_00B7: ldarg.s 7 IL_00B9: brfalse => Label4 IL_00BE: ldarg.0 IL_00BF: ldfld Array16`1 VehicleManager::m_vehicles IL_00C4: ldfld Vehicle[] Array16`1::m_buffer IL_00C9: ldarg.1 IL_00CA: ldind.u2 IL_00CB: ldelema Vehicle IL_00D0: dup IL_00D1: ldfld Flags Vehicle::m_flags IL_00D6: ldc.i4.s 16 IL_00D8: or IL_00D9: stfld Flags Vehicle::m_flags IL_00DE: Label4 IL_00DE: ldarg.0 IL_00DF: ldfld Array16`1 VehicleManager::m_vehicles IL_00E4: ldfld Vehicle[] Array16`1::m_buffer IL_00E9: ldarg.1 IL_00EA: ldind.u2 IL_00EB: ldelema Vehicle IL_00F0: ldarg.3 IL_00F1: call System.Void Vehicle::set_Info(VehicleInfo value) IL_00F6: ldarg.0 IL_00F7: ldfld Array16`1 VehicleManager::m_vehicles IL_00FC: ldfld Vehicle[] Array16`1::m_buffer IL_0101: ldarg.1 IL_0102: ldind.u2 IL_0103: ldelema Vehicle IL_0108: ldloc.1 IL_0109: stfld Frame Vehicle::m_frame0 IL_010E: ldarg.0 IL_010F: ldfld Array16`1 VehicleManager::m_vehicles IL_0114: ldfld Vehicle[] Array16`1::m_buffer IL_0119: ldarg.1 IL_011A: ldind.u2 IL_011B: ldelema Vehicle IL_0120: ldloc.1 IL_0121: stfld Frame Vehicle::m_frame1 IL_0126: ldarg.0 IL_0127: ldfld Array16`1 VehicleManager::m_vehicles IL_012C: ldfld Vehicle[] Array16`1::m_buffer IL_0131: ldarg.1 IL_0132: ldind.u2 IL_0133: ldelema Vehicle IL_0138: ldloc.1 IL_0139: stfld Frame Vehicle::m_frame2 IL_013E: ldarg.0 IL_013F: ldfld Array16`1 VehicleManager::m_vehicles IL_0144: ldfld Vehicle[] Array16`1::m_buffer IL_0149: ldarg.1 IL_014A: ldind.u2 IL_014B: ldelema Vehicle IL_0150: ldloc.1 IL_0151: stfld Frame Vehicle::m_frame3 IL_0156: ldarg.0 IL_0157: ldfld Array16`1 VehicleManager::m_vehicles IL_015C: ldfld Vehicle[] Array16`1::m_buffer IL_0161: ldarg.1 IL_0162: ldind.u2 IL_0163: ldelema Vehicle IL_0168: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero() IL_016D: stfld UnityEngine.Vector4 Vehicle::m_targetPos0 IL_0172: ldarg.0 IL_0173: ldfld Array16`1 VehicleManager::m_vehicles IL_0178: ldfld Vehicle[] Array16`1::m_buffer IL_017D: ldarg.1 IL_017E: ldind.u2 IL_017F: ldelema Vehicle IL_0184: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero() IL_0189: stfld UnityEngine.Vector4 Vehicle::m_targetPos1 IL_018E: ldarg.0 IL_018F: ldfld Array16`1 VehicleManager::m_vehicles IL_0194: ldfld Vehicle[] Array16`1::m_buffer IL_0199: ldarg.1 IL_019A: ldind.u2 IL_019B: ldelema Vehicle IL_01A0: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero() IL_01A5: stfld UnityEngine.Vector4 Vehicle::m_targetPos2 IL_01AA: ldarg.0 IL_01AB: ldfld Array16`1 VehicleManager::m_vehicles IL_01B0: ldfld Vehicle[] Array16`1::m_buffer IL_01B5: ldarg.1 IL_01B6: ldind.u2 IL_01B7: ldelema Vehicle IL_01BC: call static UnityEngine.Vector4 UnityEngine.Vector4::get_zero() IL_01C1: stfld UnityEngine.Vector4 Vehicle::m_targetPos3 IL_01C6: ldarg.0 IL_01C7: ldfld Array16`1 VehicleManager::m_vehicles IL_01CC: ldfld Vehicle[] Array16`1::m_buffer IL_01D1: ldarg.1 IL_01D2: ldind.u2 IL_01D3: ldelema Vehicle IL_01D8: ldc.i4.0 IL_01D9: stfld System.UInt16 Vehicle::m_sourceBuilding IL_01DE: ldarg.0 IL_01DF: ldfld Array16`1 VehicleManager::m_vehicles IL_01E4: ldfld Vehicle[] Array16`1::m_buffer IL_01E9: ldarg.1 IL_01EA: ldind.u2 IL_01EB: ldelema Vehicle IL_01F0: ldc.i4.0 IL_01F1: stfld System.UInt16 Vehicle::m_targetBuilding IL_01F6: ldarg.0 IL_01F7: ldfld Array16`1 VehicleManager::m_vehicles IL_01FC: ldfld Vehicle[] Array16`1::m_buffer IL_0201: ldarg.1 IL_0202: ldind.u2 IL_0203: ldelema Vehicle IL_0208: ldarg.s 5 IL_020A: conv.u1 IL_020B: stfld System.Byte Vehicle::m_transferType IL_0210: ldarg.0 IL_0211: ldfld Array16`1 VehicleManager::m_vehicles IL_0216: ldfld Vehicle[] Array16`1::m_buffer IL_021B: ldarg.1 IL_021C: ldind.u2 IL_021D: ldelema Vehicle IL_0222: ldc.i4.0 IL_0223: stfld System.UInt16 Vehicle::m_transferSize IL_0228: ldarg.0 IL_0229: ldfld Array16`1 VehicleManager::m_vehicles IL_022E: ldfld Vehicle[] Array16`1::m_buffer IL_0233: ldarg.1 IL_0234: ldind.u2 IL_0235: ldelema Vehicle IL_023A: ldc.i4.0 IL_023B: stfld System.Byte Vehicle::m_waitCounter IL_0240: ldarg.0 IL_0241: ldfld Array16`1 VehicleManager::m_vehicles IL_0246: ldfld Vehicle[] Array16`1::m_buffer IL_024B: ldarg.1 IL_024C: ldind.u2 IL_024D: ldelema Vehicle IL_0252: ldc.i4.0 IL_0253: stfld System.Byte Vehicle::m_blockCounter IL_0258: ldarg.0 IL_0259: ldfld Array16`1 VehicleManager::m_vehicles IL_025E: ldfld Vehicle[] Array16`1::m_buffer IL_0263: ldarg.1 IL_0264: ldind.u2 IL_0265: ldelema Vehicle IL_026A: ldc.i4.0 IL_026B: stfld System.UInt16 Vehicle::m_nextGridVehicle IL_0270: ldarg.0 IL_0271: ldfld Array16`1 VehicleManager::m_vehicles IL_0276: ldfld Vehicle[] Array16`1::m_buffer IL_027B: ldarg.1 IL_027C: ldind.u2 IL_027D: ldelema Vehicle IL_0282: ldc.i4.0 IL_0283: stfld System.UInt16 Vehicle::m_nextOwnVehicle IL_0288: ldarg.0 IL_0289: ldfld Array16`1 VehicleManager::m_vehicles IL_028E: ldfld Vehicle[] Array16`1::m_buffer IL_0293: ldarg.1 IL_0294: ldind.u2 IL_0295: ldelema Vehicle IL_029A: ldc.i4.0 IL_029B: stfld System.UInt16 Vehicle::m_nextGuestVehicle IL_02A0: ldarg.0 IL_02A1: ldfld Array16`1 VehicleManager::m_vehicles IL_02A6: ldfld Vehicle[] Array16`1::m_buffer IL_02AB: ldarg.1 IL_02AC: ldind.u2 IL_02AD: ldelema Vehicle IL_02B2: ldc.i4.0 IL_02B3: stfld System.UInt16 Vehicle::m_nextLineVehicle IL_02B8: ldarg.0 IL_02B9: ldfld Array16`1 VehicleManager::m_vehicles IL_02BE: ldfld Vehicle[] Array16`1::m_buffer IL_02C3: ldarg.1 IL_02C4: ldind.u2 IL_02C5: ldelema Vehicle IL_02CA: ldc.i4.0 IL_02CB: stfld System.UInt16 Vehicle::m_transportLine IL_02D0: ldarg.0 IL_02D1: ldfld Array16`1 VehicleManager::m_vehicles IL_02D6: ldfld Vehicle[] Array16`1::m_buffer IL_02DB: ldarg.1 IL_02DC: ldind.u2 IL_02DD: ldelema Vehicle IL_02E2: ldc.i4.0 IL_02E3: stfld System.UInt16 Vehicle::m_leadingVehicle IL_02E8: ldarg.0 IL_02E9: ldfld Array16`1 VehicleManager::m_vehicles IL_02EE: ldfld Vehicle[] Array16`1::m_buffer IL_02F3: ldarg.1 IL_02F4: ldind.u2 IL_02F5: ldelema Vehicle IL_02FA: ldc.i4.0 IL_02FB: stfld System.UInt16 Vehicle::m_trailingVehicle IL_0300: ldarg.0 IL_0301: ldfld Array16`1 VehicleManager::m_vehicles IL_0306: ldfld Vehicle[] Array16`1::m_buffer IL_030B: ldarg.1 IL_030C: ldind.u2 IL_030D: ldelema Vehicle IL_0312: ldc.i4.0 IL_0313: stfld System.UInt16 Vehicle::m_cargoParent IL_0318: ldarg.0 IL_0319: ldfld Array16`1 VehicleManager::m_vehicles IL_031E: ldfld Vehicle[] Array16`1::m_buffer IL_0323: ldarg.1 IL_0324: ldind.u2 IL_0325: ldelema Vehicle IL_032A: ldc.i4.0 IL_032B: stfld System.UInt16 Vehicle::m_firstCargo IL_0330: ldarg.0 IL_0331: ldfld Array16`1 VehicleManager::m_vehicles IL_0336: ldfld Vehicle[] Array16`1::m_buffer IL_033B: ldarg.1 IL_033C: ldind.u2 IL_033D: ldelema Vehicle IL_0342: ldc.i4.0 IL_0343: stfld System.UInt16 Vehicle::m_nextCargo IL_0348: ldarg.0 IL_0349: ldfld Array16`1 VehicleManager::m_vehicles IL_034E: ldfld Vehicle[] Array16`1::m_buffer IL_0353: ldarg.1 IL_0354: ldind.u2 IL_0355: ldelema Vehicle IL_035A: ldc.i4.0 IL_035B: stfld System.UInt32 Vehicle::m_citizenUnits IL_0360: ldarg.0 IL_0361: ldfld Array16`1 VehicleManager::m_vehicles IL_0366: ldfld Vehicle[] Array16`1::m_buffer IL_036B: ldarg.1 IL_036C: ldind.u2 IL_036D: ldelema Vehicle IL_0372: ldc.i4.0 IL_0373: stfld System.UInt32 Vehicle::m_path IL_0378: ldarg.0 IL_0379: ldfld Array16`1 VehicleManager::m_vehicles IL_037E: ldfld Vehicle[] Array16`1::m_buffer IL_0383: ldarg.1 IL_0384: ldind.u2 IL_0385: ldelema Vehicle IL_038A: ldc.i4.0 IL_038B: stfld System.Byte Vehicle::m_lastFrame IL_0390: ldarg.0 IL_0391: ldfld Array16`1 VehicleManager::m_vehicles IL_0396: ldfld Vehicle[] Array16`1::m_buffer IL_039B: ldarg.1 IL_039C: ldind.u2 IL_039D: ldelema Vehicle IL_03A2: ldc.i4.0 IL_03A3: stfld System.Byte Vehicle::m_pathPositionIndex IL_03A8: ldarg.0 IL_03A9: ldfld Array16`1 VehicleManager::m_vehicles IL_03AE: ldfld Vehicle[] Array16`1::m_buffer IL_03B3: ldarg.1 IL_03B4: ldind.u2 IL_03B5: ldelema Vehicle IL_03BA: ldc.i4.0 IL_03BB: stfld System.Byte Vehicle::m_lastPathOffset IL_03C0: ldarg.0 IL_03C1: ldfld Array16`1 VehicleManager::m_vehicles IL_03C6: ldfld Vehicle[] Array16`1::m_buffer IL_03CB: ldarg.1 IL_03CC: ldind.u2 IL_03CD: ldelema Vehicle IL_03D2: ldc.i4.0 IL_03D3: stfld System.Byte Vehicle::m_gateIndex IL_03D8: ldarg.0 IL_03D9: ldfld Array16`1 VehicleManager::m_vehicles IL_03DE: ldfld Vehicle[] Array16`1::m_buffer IL_03E3: ldarg.1 IL_03E4: ldind.u2 IL_03E5: ldelema Vehicle IL_03EA: ldc.i4.0 IL_03EB: stfld System.UInt16 Vehicle::m_waterSource IL_03F0: ldarg.0 IL_03F1: ldfld Array16`1 VehicleManager::m_vehicles IL_03F6: ldfld Vehicle[] Array16`1::m_buffer IL_03FB: ldarg.1 IL_03FC: ldind.u2 IL_03FD: ldelema Vehicle IL_0402: ldc.i4.0 IL_0403: stfld System.UInt16 Vehicle::m_touristCount IL_0408: ldarg.0 IL_0409: ldfld Array16`1 VehicleManager::m_vehicles IL_040E: ldfld Vehicle[] Array16`1::m_buffer IL_0413: ldarg.1 IL_0414: ldind.u2 IL_0415: ldelema Vehicle IL_041A: ldc.i4.0 IL_041B: stfld System.UInt16 Vehicle::m_custom IL_0420: ldarg.3 IL_0421: ldfld VehicleAI VehicleInfo::m_vehicleAI IL_0426: ldarg.1 IL_0427: ldind.u2 IL_0428: ldarg.0 IL_0429: ldfld Array16`1 VehicleManager::m_vehicles IL_042E: ldfld Vehicle[] Array16`1::m_buffer IL_0433: ldarg.1 IL_0434: ldind.u2 IL_0435: ldelema Vehicle IL_043A: callvirt virtual System.Void VehicleAI::CreateVehicle(System.UInt16 vehicleID, Vehicle& data) IL_043F: ldarg.3 IL_0440: ldfld VehicleAI VehicleInfo::m_vehicleAI IL_0445: ldarg.1 IL_0446: ldind.u2 IL_0447: ldarg.0 IL_0448: ldfld Array16`1 VehicleManager::m_vehicles IL_044D: ldfld Vehicle[] Array16`1::m_buffer IL_0452: ldarg.1 IL_0453: ldind.u2 IL_0454: ldelema Vehicle IL_0459: ldarg.0 IL_045A: ldfld Array16`1 VehicleManager::m_vehicles IL_045F: ldfld Vehicle[] Array16`1::m_buffer IL_0464: ldarg.1 IL_0465: ldind.u2 IL_0466: ldelema Vehicle IL_046B: ldflda Frame Vehicle::m_frame0 IL_0470: callvirt virtual System.Void VehicleAI::FrameDataUpdated(System.UInt16 vehicleID, Vehicle& vehicleData, Frame& frameData) IL_0475: ldarg.0 IL_0476: ldarg.0 IL_0477: ldfld Array16`1 VehicleManager::m_vehicles IL_047C: callvirt System.UInt32 Array16`1::ItemCount() IL_0481: ldc.i4.1 IL_0482: sub IL_0483: stfld System.Int32 VehicleManager::m_vehicleCount IL_0488: ldc.i4.1 IL_0489: br => Label5 IL_048E: Label2 IL_048E: ldarg.1 IL_048F: ldc.i4.0 IL_0490: stind.i2 IL_0491: ldc.i4.0 IL_0492: // end original IL_0492: Label5 IL_0492: stloc 2 (System.Boolean) IL_0496: Label0 IL_0496: ldarg.0 IL_0497: ldloc 2 (System.Boolean) IL_049B: ldarg 1 IL_049F: call static System.Void TrafficManager.Patch._VehicleManager.CreateVehiclePatch::Postfix(VehicleManager __instance, System.Boolean __result, System.UInt16& vehicle) IL_04A4: ldloc 2 (System.Boolean) IL_04A8: ret DONE ### Patch: System.Void VehicleManager::ReleaseVehicle(System.UInt16 vehicle) ### Replacement: static System.Void VehicleManager::VehicleManager.ReleaseVehicle_Patch1(VehicleManager this, System.UInt16 vehicle) IL_0000: ldarg.0 IL_0001: ldarg 1 IL_0005: call static System.Void TrafficManager.Patch._VehicleManager.ReleaseVehiclePatch::Prefix(VehicleManager __instance, System.UInt16 vehicle) IL_000A: // start original IL_000A: ldarg.0 IL_000B: ldarg.1 IL_000C: ldarg.0 IL_000D: ldfld Array16`1 VehicleManager::m_vehicles IL_0012: ldfld Vehicle[] Array16`1::m_buffer IL_0017: ldarg.1 IL_0018: ldelema Vehicle IL_001D: call System.Void VehicleManager::ReleaseVehicleImplementation(System.UInt16 vehicle, Vehicle& data) IL_0022: // end original IL_0022: ret DONE ### Patch: System.Void NetManager::UpdateSegment(System.UInt16 segment, System.UInt16 fromNode, System.Int32 level) ### Replacement: static System.Void NetManager::NetManager.UpdateSegment_Patch1(NetManager this, System.UInt16 segment, System.UInt16 fromNode, System.Int32 level) IL_0000: Local var 0: System.UInt16 IL_0000: Local var 1: System.UInt16 IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldfld System.UInt64[] NetManager::m_updatedSegments IL_0006: ldarg.1 IL_0007: ldc.i4.6 IL_0008: shr IL_0009: ldelema System.UInt64 IL_000E: dup IL_000F: ldind.i8 IL_0010: ldc.i4.1 IL_0011: conv.i8 IL_0012: ldarg.1 IL_0013: ldc.i4.s 63 IL_0015: and IL_0016: ldc.i4.s 63 IL_0018: and IL_0019: shl IL_001A: or IL_001B: stind.i8 IL_001C: ldarg.0 IL_001D: ldc.i4.1 IL_001E: stfld System.Boolean NetManager::m_segmentsUpdated IL_0023: ldarg.3 IL_0024: ldc.i4.0 IL_0025: bgt => Label0 IL_002A: ldarg.0 IL_002B: ldfld Array16`1 NetManager::m_segments IL_0030: ldfld NetSegment[] Array16`1::m_buffer IL_0035: ldarg.1 IL_0036: ldelema NetSegment IL_003B: ldfld System.UInt16 NetSegment::m_startNode IL_0040: stloc.0 IL_0041: ldarg.0 IL_0042: ldfld Array16`1 NetManager::m_segments IL_0047: ldfld NetSegment[] Array16`1::m_buffer IL_004C: ldarg.1 IL_004D: ldelema NetSegment IL_0052: ldfld System.UInt16 NetSegment::m_endNode IL_0057: stloc.1 IL_0058: ldloc.0 IL_0059: brfalse => Label1 IL_005E: ldloc.0 IL_005F: ldarg.2 IL_0060: beq => Label2 IL_0065: ldarg.0 IL_0066: ldloc.0 IL_0067: ldarg.1 IL_0068: ldarg.3 IL_0069: ldc.i4.1 IL_006A: add IL_006B: call System.Void NetManager::UpdateNode(System.UInt16 node, System.UInt16 fromSegment, System.Int32 level) IL_0070: Label1 IL_0070: Label2 IL_0070: ldloc.1 IL_0071: brfalse => Label3 IL_0076: ldloc.1 IL_0077: ldarg.2 IL_0078: beq => Label4 IL_007D: ldarg.0 IL_007E: ldloc.1 IL_007F: ldarg.1 IL_0080: ldarg.3 IL_0081: ldc.i4.1 IL_0082: add IL_0083: call System.Void NetManager::UpdateNode(System.UInt16 node, System.UInt16 fromSegment, System.Int32 level) IL_0088: // end original IL_0088: Label0 IL_0088: Label3 IL_0088: Label4 IL_0088: ldarg.0 IL_0089: ldarg 1 IL_008D: ldarg 2 IL_0091: ldarg 3 IL_0095: call static System.Void TrafficManager.Patch._NetManager.UpdateSegmentPatch::Postfix(NetManager __instance, System.UInt16 segment, System.UInt16 fromNode, System.Int32 level) IL_009A: ret DONE ### Patch: System.Void NetManager::FinalizeSegment(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void NetManager::NetManager.FinalizeSegment_Patch1(NetManager this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: UnityEngine.Vector3 IL_0000: Local var 1: System.Int32 IL_0000: Local var 2: System.Int32 IL_0000: Local var 3: System.Int32 IL_0000: Local var 4: System.UInt16 IL_0000: Local var 5: System.UInt16 IL_0000: Local var 6: System.Int32 IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldfld Array16`1 NetManager::m_nodes IL_0006: ldfld NetNode[] Array16`1::m_buffer IL_000B: ldarg.2 IL_000C: ldfld System.UInt16 NetSegment::m_startNode IL_0011: ldelema NetNode IL_0016: ldfld UnityEngine.Vector3 NetNode::m_position IL_001B: ldarg.0 IL_001C: ldfld Array16`1 NetManager::m_nodes IL_0021: ldfld NetNode[] Array16`1::m_buffer IL_0026: ldarg.2 IL_0027: ldfld System.UInt16 NetSegment::m_endNode IL_002C: ldelema NetNode IL_0031: ldfld UnityEngine.Vector3 NetNode::m_position IL_0036: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_003B: ldc.r4 0.5 IL_0040: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0045: stloc.0 IL_0046: ldloca.s 0 (UnityEngine.Vector3) IL_0048: ldfld System.Single UnityEngine.Vector3::x IL_004D: ldc.r4 64 IL_0052: div IL_0053: ldc.r4 135 IL_0058: add IL_0059: conv.i4 IL_005A: ldc.i4.0 IL_005B: ldc.i4 269 IL_0060: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_0065: stloc.1 IL_0066: ldloca.s 0 (UnityEngine.Vector3) IL_0068: ldfld System.Single UnityEngine.Vector3::z IL_006D: ldc.r4 64 IL_0072: div IL_0073: ldc.r4 135 IL_0078: add IL_0079: conv.i4 IL_007A: ldc.i4.0 IL_007B: ldc.i4 269 IL_0080: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_0085: stloc.2 IL_0086: ldloc.2 IL_0087: ldc.i4 270 IL_008C: mul IL_008D: ldloc.1 IL_008E: add IL_008F: stloc.3 IL_0090: ldc.i4.0 IL_0091: stloc.s 4 (System.UInt16) IL_0093: ldarg.0 IL_0094: ldfld System.UInt16[] NetManager::m_segmentGrid IL_0099: ldloc.3 IL_009A: ldelem.u2 IL_009B: stloc.s 5 (System.UInt16) IL_009D: ldc.i4.0 IL_009E: stloc.s 6 (System.Int32) IL_00A0: br => Label0 IL_00A5: Label7 IL_00A5: ldloc.s 5 (System.UInt16) IL_00A7: ldarg.1 IL_00A8: bne.un => Label1 IL_00AD: ldloc.s 4 (System.UInt16) IL_00AF: brtrue => Label2 IL_00B4: ldarg.0 IL_00B5: ldfld System.UInt16[] NetManager::m_segmentGrid IL_00BA: ldloc.3 IL_00BB: ldarg.2 IL_00BC: ldfld System.UInt16 NetSegment::m_nextGridSegment IL_00C1: stelem.i2 IL_00C2: br => Label3 IL_00C7: Label2 IL_00C7: ldarg.0 IL_00C8: ldfld Array16`1 NetManager::m_segments IL_00CD: ldfld NetSegment[] Array16`1::m_buffer IL_00D2: ldloc.s 4 (System.UInt16) IL_00D4: ldelema NetSegment IL_00D9: ldarg.2 IL_00DA: ldfld System.UInt16 NetSegment::m_nextGridSegment IL_00DF: stfld System.UInt16 NetSegment::m_nextGridSegment IL_00E4: Label3 IL_00E4: br => Label4 IL_00E9: Label1 IL_00E9: ldloc.s 5 (System.UInt16) IL_00EB: stloc.s 4 (System.UInt16) IL_00ED: ldarg.0 IL_00EE: ldfld Array16`1 NetManager::m_segments IL_00F3: ldfld NetSegment[] Array16`1::m_buffer IL_00F8: ldloc.s 5 (System.UInt16) IL_00FA: ldelema NetSegment IL_00FF: ldfld System.UInt16 NetSegment::m_nextGridSegment IL_0104: stloc.s 5 (System.UInt16) IL_0106: ldloc.s 6 (System.Int32) IL_0108: ldc.i4.1 IL_0109: add IL_010A: dup IL_010B: stloc.s 6 (System.Int32) IL_010D: ldc.i4 65536 IL_0112: ble => Label5 IL_0117: ldc.i4.1 IL_0118: ldstr "Invalid list detected!\n" IL_011D: call static System.String System.Environment::get_StackTrace() IL_0122: call static System.String System.String::Concat(System.String str0, System.String str1) IL_0127: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_012C: br => Label6 IL_0131: Label0 IL_0131: Label5 IL_0131: ldloc.s 5 (System.UInt16) IL_0133: brtrue => Label7 IL_0138: Label4 IL_0138: Label6 IL_0138: ldarg.2 IL_0139: ldc.i4.0 IL_013A: stfld System.UInt16 NetSegment::m_nextGridSegment IL_013F: // end original IL_013F: ldarg.0 IL_0140: ldarg 1 IL_0144: ldarg 2 IL_0148: call static System.Void TrafficManager.Patch._NetManager.FinalizeSegmentPatch::Postfix(NetManager __instance, System.UInt16 segment, NetSegment& data) IL_014D: ret DONE ### Patch: static System.Void TrainTrackBaseAI::LevelCrossingSimulationStep(System.UInt16 nodeID, NetNode& data) ### Replacement: static System.Void TrainTrackBaseAI::TrainTrackBaseAI.LevelCrossingSimulationStep_Patch1(System.UInt16 nodeID, NetNode& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: System.UInt32 IL_0000: Local var 2: System.Boolean IL_0000: Local var 3: System.Boolean IL_0000: Local var 4: System.Int32 IL_0000: Local var 5: System.UInt16 IL_0000: Local var 6: NetInfo IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.UInt32 IL_0000: Local var 9: System.Int32 IL_0000: Local var 10: UnityEngine.Vector3 IL_0000: Local var 11: RoadBaseAI/TrafficLightState IL_0000: Local var 12: RoadBaseAI/TrafficLightState IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: System.Boolean IL_0000: Local var 15: System.Int32 IL_0000: Local var 16: System.UInt16 IL_0000: Local var 17: NetInfo IL_0000: Local var 18: RoadBaseAI/TrafficLightState IL_0000: Local var 19: RoadBaseAI/TrafficLightState IL_0000: Local var 20: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 20 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 20 (System.Boolean) IL_000E: ldloc 20 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 0 IL_001B: call static System.Boolean TrafficManager.Patch._TrainTrackBaseAI.LevelCrossingSimulationStepPatch::Prefix(System.UInt16 nodeID) IL_0020: stloc 20 (System.Boolean) IL_0024: Label1 IL_0024: nop IL_0025: ldloc 20 (System.Boolean) IL_0029: brfalse => Label0 IL_002E: // start original IL_002E: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0033: stloc.0 IL_0034: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0039: ldfld System.UInt32 SimulationManager::m_currentFrameIndex IL_003E: stloc.1 IL_003F: ldc.i4.0 IL_0040: stloc.2 IL_0041: ldc.i4.0 IL_0042: stloc.3 IL_0043: ldc.i4.0 IL_0044: stloc.s 4 (System.Int32) IL_0046: br => Label2 IL_004B: Label14 IL_004B: ldarg.1 IL_004C: ldloc.s 4 (System.Int32) IL_004E: call System.UInt16 NetNode::GetSegment(System.Int32 index) IL_0053: stloc.s 5 (System.UInt16) IL_0055: ldloc.s 5 (System.UInt16) IL_0057: brfalse => Label3 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_segments IL_0062: ldfld NetSegment[] Array16`1::m_buffer IL_0067: ldloc.s 5 (System.UInt16) IL_0069: ldelema NetSegment IL_006E: call NetInfo NetSegment::get_Info() IL_0073: stloc.s 6 (NetInfo) IL_0075: ldloc.s 6 (NetInfo) IL_0077: ldfld ItemClass NetInfo::m_class IL_007C: ldfld Service ItemClass::m_service IL_0081: ldc.i4.s 9 IL_0083: beq => Label4 IL_0088: ldloc.s 6 (NetInfo) IL_008A: ldfld Lane[] NetInfo::m_lanes IL_008F: brfalse => Label5 IL_0094: ldloc.0 IL_0095: ldfld Array16`1 NetManager::m_segments IL_009A: ldfld NetSegment[] Array16`1::m_buffer IL_009F: ldloc.s 5 (System.UInt16) IL_00A1: ldelema NetSegment IL_00A6: ldfld System.UInt16 NetSegment::m_startNode IL_00AB: ldarg.0 IL_00AC: ceq IL_00AE: stloc.s 7 (System.Boolean) IL_00B0: ldloc.0 IL_00B1: ldfld Array16`1 NetManager::m_segments IL_00B6: ldfld NetSegment[] Array16`1::m_buffer IL_00BB: ldloc.s 5 (System.UInt16) IL_00BD: ldelema NetSegment IL_00C2: ldfld System.UInt32 NetSegment::m_lanes IL_00C7: stloc.s 8 (System.UInt32) IL_00C9: ldc.i4.0 IL_00CA: stloc.s 9 (System.Int32) IL_00CC: br => Label6 IL_00D1: Label12 IL_00D1: ldloc.s 6 (NetInfo) IL_00D3: ldfld Lane[] NetInfo::m_lanes IL_00D8: ldloc.s 9 (System.Int32) IL_00DA: ldelem.ref IL_00DB: ldfld LaneType Lane::m_laneType IL_00E0: ldc.i4.1 IL_00E1: bne.un => Label7 IL_00E6: ldloc.0 IL_00E7: ldfld Array32`1 NetManager::m_lanes IL_00EC: ldfld NetLane[] Array32`1::m_buffer IL_00F1: ldloc.s 8 (System.UInt32) IL_00F3: conv.u IL_00F4: ldelema NetLane IL_00F9: ldloc.s 7 (System.Boolean) IL_00FB: brfalse => Label8 IL_0100: ldc.r4 0 IL_0105: br => Label9 IL_010A: Label8 IL_010A: ldc.r4 1 IL_010F: Label9 IL_010F: call UnityEngine.Vector3 NetLane::CalculatePosition(System.Single laneOffset) IL_0114: stloc.s 10 (UnityEngine.Vector3) IL_0116: ldloc.s 10 (UnityEngine.Vector3) IL_0118: call static System.Boolean TrainTrackBaseAI::CheckOverlap(UnityEngine.Vector3 pos) IL_011D: brfalse => Label10 IL_0122: ldc.i4.1 IL_0123: stloc.2 IL_0124: Label7 IL_0124: Label10 IL_0124: ldloc.0 IL_0125: ldfld Array32`1 NetManager::m_lanes IL_012A: ldfld NetLane[] Array32`1::m_buffer IL_012F: ldloc.s 8 (System.UInt32) IL_0131: conv.u IL_0132: ldelema NetLane IL_0137: ldfld System.UInt32 NetLane::m_nextLane IL_013C: stloc.s 8 (System.UInt32) IL_013E: ldloc.s 9 (System.Int32) IL_0140: ldc.i4.1 IL_0141: add IL_0142: stloc.s 9 (System.Int32) IL_0144: Label6 IL_0144: ldloc.s 9 (System.Int32) IL_0146: ldloc.s 6 (NetInfo) IL_0148: ldfld Lane[] NetInfo::m_lanes IL_014D: ldlen IL_014E: conv.i4 IL_014F: bge => Label11 IL_0154: ldloc.s 8 (System.UInt32) IL_0156: brtrue => Label12 IL_015B: Label5 IL_015B: Label11 IL_015B: ldarg.0 IL_015C: ldloc.0 IL_015D: ldfld Array16`1 NetManager::m_segments IL_0162: ldfld NetSegment[] Array16`1::m_buffer IL_0167: ldloc.s 5 (System.UInt16) IL_0169: ldelema NetSegment IL_016E: ldloc.1 IL_016F: ldc.i4 256 IL_0174: sub IL_0175: ldloca.s 11 (RoadBaseAI+TrafficLightState) IL_0177: ldloca.s 12 (RoadBaseAI+TrafficLightState) IL_0179: ldloca.s 13 (System.Boolean) IL_017B: ldloca.s 14 (System.Boolean) IL_017D: call static System.Void RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData, System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState& pedestrianLightState, System.Boolean& vehicles, System.Boolean& pedestrians) IL_0182: ldloc.s 13 (System.Boolean) IL_0184: brfalse => Label13 IL_0189: ldc.i4.1 IL_018A: stloc.2 IL_018B: Label3 IL_018B: Label4 IL_018B: Label13 IL_018B: ldloc.s 4 (System.Int32) IL_018D: ldc.i4.1 IL_018E: add IL_018F: stloc.s 4 (System.Int32) IL_0191: Label2 IL_0191: ldloc.s 4 (System.Int32) IL_0193: ldc.i4.8 IL_0194: blt => Label14 IL_0199: ldloc.2 IL_019A: stloc.3 IL_019B: ldc.i4.0 IL_019C: stloc.s 15 (System.Int32) IL_019E: br => Label15 IL_01A3: Label29 IL_01A3: ldarg.1 IL_01A4: ldloc.s 15 (System.Int32) IL_01A6: call System.UInt16 NetNode::GetSegment(System.Int32 index) IL_01AB: stloc.s 16 (System.UInt16) IL_01AD: ldloc.s 16 (System.UInt16) IL_01AF: brfalse => Label16 IL_01B4: ldloc.0 IL_01B5: ldfld Array16`1 NetManager::m_segments IL_01BA: ldfld NetSegment[] Array16`1::m_buffer IL_01BF: ldloc.s 16 (System.UInt16) IL_01C1: ldelema NetSegment IL_01C6: call NetInfo NetSegment::get_Info() IL_01CB: stloc.s 17 (NetInfo) IL_01CD: ldarg.0 IL_01CE: ldloc.0 IL_01CF: ldfld Array16`1 NetManager::m_segments IL_01D4: ldfld NetSegment[] Array16`1::m_buffer IL_01D9: ldloc.s 16 (System.UInt16) IL_01DB: ldelema NetSegment IL_01E0: ldloc.1 IL_01E1: ldc.i4 256 IL_01E6: sub IL_01E7: ldloca.s 18 (RoadBaseAI+TrafficLightState) IL_01E9: ldloca.s 19 (RoadBaseAI+TrafficLightState) IL_01EB: call static System.Void RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData, System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState& pedestrianLightState) IL_01F0: ldloc.s 18 (RoadBaseAI+TrafficLightState) IL_01F2: ldc.i4.s -2 IL_01F4: and IL_01F5: stloc.s 18 (RoadBaseAI+TrafficLightState) IL_01F7: ldloc.s 19 (RoadBaseAI+TrafficLightState) IL_01F9: ldc.i4.s -2 IL_01FB: and IL_01FC: stloc.s 19 (RoadBaseAI+TrafficLightState) IL_01FE: ldloc.s 17 (NetInfo) IL_0200: ldfld ItemClass NetInfo::m_class IL_0205: ldfld Service ItemClass::m_service IL_020A: ldc.i4.s 9 IL_020C: bne.un => Label17 IL_0211: ldloc.3 IL_0212: brfalse => Label18 IL_0217: ldloc.s 18 (RoadBaseAI+TrafficLightState) IL_0219: ldc.i4.2 IL_021A: and IL_021B: brtrue => Label19 IL_0220: ldc.i4.3 IL_0221: stloc.s 18 (RoadBaseAI+TrafficLightState) IL_0223: Label19 IL_0223: br => Label20 IL_0228: Label18 IL_0228: ldloc.s 18 (RoadBaseAI+TrafficLightState) IL_022A: ldc.i4.2 IL_022B: and IL_022C: brfalse => Label21 IL_0231: ldc.i4.1 IL_0232: stloc.s 18 (RoadBaseAI+TrafficLightState) IL_0234: Label20 IL_0234: Label21 IL_0234: ldc.i4.0 IL_0235: stloc.s 19 (RoadBaseAI+TrafficLightState) IL_0237: br => Label22 IL_023C: Label17 IL_023C: ldloc.3 IL_023D: brfalse => Label23 IL_0242: ldloc.s 18 (RoadBaseAI+TrafficLightState) IL_0244: ldc.i4.2 IL_0245: and IL_0246: brfalse => Label24 IL_024B: ldc.i4.1 IL_024C: stloc.s 18 (RoadBaseAI+TrafficLightState) IL_024E: Label24 IL_024E: ldloc.s 19 (RoadBaseAI+TrafficLightState) IL_0250: ldc.i4.2 IL_0251: and IL_0252: brtrue => Label25 IL_0257: ldc.i4.3 IL_0258: stloc.s 19 (RoadBaseAI+TrafficLightState) IL_025A: Label25 IL_025A: br => Label26 IL_025F: Label23 IL_025F: ldloc.s 18 (RoadBaseAI+TrafficLightState) IL_0261: ldc.i4.2 IL_0262: and IL_0263: brtrue => Label27 IL_0268: ldc.i4.3 IL_0269: stloc.s 18 (RoadBaseAI+TrafficLightState) IL_026B: Label27 IL_026B: ldloc.s 19 (RoadBaseAI+TrafficLightState) IL_026D: ldc.i4.2 IL_026E: and IL_026F: brfalse => Label28 IL_0274: ldc.i4.1 IL_0275: stloc.s 19 (RoadBaseAI+TrafficLightState) IL_0277: Label22 IL_0277: Label26 IL_0277: Label28 IL_0277: ldarg.0 IL_0278: ldloc.0 IL_0279: ldfld Array16`1 NetManager::m_segments IL_027E: ldfld NetSegment[] Array16`1::m_buffer IL_0283: ldloc.s 16 (System.UInt16) IL_0285: ldelema NetSegment IL_028A: ldloc.1 IL_028B: ldloc.s 18 (RoadBaseAI+TrafficLightState) IL_028D: ldloc.s 19 (RoadBaseAI+TrafficLightState) IL_028F: ldc.i4.0 IL_0290: ldc.i4.0 IL_0291: call static System.Void RoadBaseAI::SetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData, System.UInt32 frame, TrafficLightState vehicleLightState, TrafficLightState pedestrianLightState, System.Boolean vehicles, System.Boolean pedestrians) IL_0296: Label16 IL_0296: ldloc.s 15 (System.Int32) IL_0298: ldc.i4.1 IL_0299: add IL_029A: stloc.s 15 (System.Int32) IL_029C: Label15 IL_029C: ldloc.s 15 (System.Int32) IL_029E: ldc.i4.8 IL_029F: blt => Label29 IL_02A4: // end original IL_02A4: Label0 IL_02A4: ret DONE ### Patch: virtual System.Void CommonBuildingAI::SimulationStep(System.UInt16 buildingID, Building& data) ### Replacement: static System.Void CommonBuildingAI::CommonBuildingAI.SimulationStep_Patch1(CommonBuildingAI this, System.UInt16 buildingID, Building& data) IL_0000: Local var 0: System.UInt32 IL_0000: Local var 1: System.UInt32 IL_0000: Local var 2: Building/Frame IL_0000: Local var 3: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 3 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 3 (System.Boolean) IL_000E: ldloc 3 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Void TrafficManager.Patch._CommonBuildingAI.SimulationStepPatch::Prefix(System.UInt16 buildingID, Building& data) IL_0024: Label1 IL_0024: nop IL_0025: ldloc 3 (System.Boolean) IL_0029: brfalse => Label0 IL_002E: // start original IL_002E: ldarg.0 IL_002F: ldarg.1 IL_0030: ldarg.2 IL_0031: call virtual System.Void BuildingAI::SimulationStep(System.UInt16 buildingID, Building& data) IL_0036: ldarg.2 IL_0037: ldfld Flags Building::m_flags IL_003C: ldc.i4 524288 IL_0041: and IL_0042: brfalse => Label2 IL_0047: ldarg.1 IL_0048: ldc.i4.8 IL_0049: shl IL_004A: ldc.i4 49152 IL_004F: div.un IL_0050: stloc.0 IL_0051: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0056: ldfld System.UInt32 SimulationManager::m_currentFrameIndex IL_005B: ldloc.0 IL_005C: sub IL_005D: stloc.1 IL_005E: ldarg.2 IL_005F: ldfld Flags Building::m_flags IL_0064: ldc.i4 4194304 IL_0069: and IL_006A: brfalse => Label3 IL_006F: ldarg.2 IL_0070: ldloc.1 IL_0071: ldc.i4 256 IL_0076: sub IL_0077: call Frame Building::GetFrameData(System.UInt32 simulationFrame) IL_007C: stloc.2 IL_007D: ldloca.s 2 (Building+Frame) IL_007F: ldfld System.Byte Frame::m_constructState IL_0084: brtrue => Label4 IL_0089: Label3 IL_0089: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_008E: ldarg.1 IL_008F: callvirt System.Void BuildingManager::ReleaseBuilding(System.UInt16 building) IL_0094: // end original IL_0094: Label2 IL_0094: Label4 IL_0094: Label0 IL_0094: ret DONE ### Patch: System.Void RoadWorldInfoPanel::OnAdjustRoadButton() ### Replacement: static System.Void RoadWorldInfoPanel::RoadWorldInfoPanel.OnAdjustRoadButton_Patch1(RoadWorldInfoPanel this) IL_0000: Local var 0: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 0 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 0 (System.Boolean) IL_000E: ldloc 0 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: call static System.Boolean TrafficManager.Patch._RoadWorldInfoPanel.OnAdjustRoadButtonPatch::Prefix() IL_001C: stloc 0 (System.Boolean) IL_0020: Label1 IL_0020: nop IL_0021: ldloc 0 (System.Boolean) IL_0025: brfalse => Label0 IL_002A: // start original IL_002A: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_002F: ldc.i4.s 30 IL_0031: ldc.i4.2 IL_0032: callvirt System.Void InfoManager::SetCurrentMode(InfoMode mode, SubInfoMode subMode) IL_0037: ldarg.0 IL_0038: call System.Void WorldInfoPanel::Hide() IL_003D: // end original IL_003D: Label0 IL_003D: ret DONE ### Patch: System.Void NetSegment::CalculateSegment(System.UInt16 segmentID) ### Replacement: static System.Void NetSegment::NetSegment.CalculateSegment_Patch1(NetSegment& this, System.UInt16 segmentID) IL_0000: Local var 0: NetManager IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldfld Flags NetSegment::m_flags IL_0006: brfalse => Label0 IL_000B: ldarg.0 IL_000C: ldarg.0 IL_000D: ldarg.1 IL_000E: ldarg.0 IL_000F: ldfld System.UInt16 NetSegment::m_startNode IL_0014: call UnityEngine.Vector3 NetSegment::FindDirection(System.UInt16 segmentID, System.UInt16 nodeID) IL_0019: stfld UnityEngine.Vector3 NetSegment::m_startDirection IL_001E: ldarg.0 IL_001F: ldarg.0 IL_0020: ldarg.1 IL_0021: ldarg.0 IL_0022: ldfld System.UInt16 NetSegment::m_endNode IL_0027: call UnityEngine.Vector3 NetSegment::FindDirection(System.UInt16 segmentID, System.UInt16 nodeID) IL_002C: stfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0031: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0036: stloc.0 IL_0037: ldloc.0 IL_0038: ldfld Array16`1 NetManager::m_nodes IL_003D: ldfld NetNode[] Array16`1::m_buffer IL_0042: ldarg.0 IL_0043: ldfld System.UInt16 NetSegment::m_startNode IL_0048: ldelema NetNode IL_004D: ldfld Flags NetNode::m_flags IL_0052: ldc.i4.s 16 IL_0054: and IL_0055: brfalse => Label1 IL_005A: ldarg.0 IL_005B: dup IL_005C: ldfld Flags NetSegment::m_flags IL_0061: ldc.i4.s 64 IL_0063: or IL_0064: stfld Flags NetSegment::m_flags IL_0069: br => Label2 IL_006E: Label1 IL_006E: ldloc.0 IL_006F: ldfld Array16`1 NetManager::m_nodes IL_0074: ldfld NetNode[] Array16`1::m_buffer IL_0079: ldarg.0 IL_007A: ldfld System.UInt16 NetSegment::m_endNode IL_007F: ldelema NetNode IL_0084: ldfld Flags NetNode::m_flags IL_0089: ldc.i4.s 16 IL_008B: and IL_008C: brfalse => Label3 IL_0091: ldarg.0 IL_0092: dup IL_0093: ldfld Flags NetSegment::m_flags IL_0098: ldc.i4.s 64 IL_009A: or IL_009B: stfld Flags NetSegment::m_flags IL_00A0: br => Label4 IL_00A5: Label3 IL_00A5: ldarg.0 IL_00A6: dup IL_00A7: ldfld Flags NetSegment::m_flags IL_00AC: ldc.i4.s -65 IL_00AE: and IL_00AF: stfld Flags NetSegment::m_flags IL_00B4: Label2 IL_00B4: Label4 IL_00B4: ldarg.0 IL_00B5: ldarg.1 IL_00B6: call System.Void NetSegment::UpdateStartSegments(System.UInt16 segmentID) IL_00BB: ldarg.0 IL_00BC: ldarg.1 IL_00BD: call System.Void NetSegment::UpdateEndSegments(System.UInt16 segmentID) IL_00C2: ldarg.0 IL_00C3: ldarg.1 IL_00C4: call System.Void NetSegment::UpdateNameSeed(System.UInt16 segmentID) IL_00C9: ldloc.0 IL_00CA: ldfld System.Collections.Generic.HashSet`1 NetManager::m_updateNameVisibility IL_00CF: ldarg.1 IL_00D0: callvirt System.Boolean System.Collections.Generic.HashSet`1::Add(System.UInt16 item) IL_00D5: pop IL_00D6: // end original IL_00D6: Label0 IL_00D6: ldarg 1 IL_00DA: call static System.Void TrafficManager.Patch._NetSegment.CalculateSegmentPatch::Postfix(System.UInt16 segmentID) IL_00DF: ret DONE ### Patch: System.Void LoadAssetPanel::OnLoad() ### Replacement: static System.Void LoadAssetPanel::LoadAssetPanel.OnLoad_Patch1(LoadAssetPanel this) IL_0000: Local var 0: CustomAssetMetaData IL_0000: Local var 1: System.String IL_0000: Local var 2: ColossalFramework.PlatformServices.PublishedFileId IL_0000: Local var 3: System.UInt64 IL_0000: Local var 4: UnityEngine.GameObject IL_0000: Local var 5: ToolController IL_0000: Local var 6: ColossalFramework.Packaging.Package/Asset IL_0000: Local var 7: System.Collections.Generic.IEnumerator`1 IL_0000: Local var 8: CustomAssetMetaData IL_0000: Local var 9: UnityEngine.GameObject IL_0000: Local var 10: VehicleInfo IL_0000: Local var 11: ColossalFramework.Packaging.Package/Asset IL_0000: Local var 12: System.Collections.Generic.IEnumerator`1 IL_0000: Local var 13: CustomAssetMetaData IL_0000: Local var 14: UnityEngine.GameObject IL_0000: Local var 15: BuildingInfo IL_0000: Local var 16: ColossalFramework.Packaging.Package/Asset IL_0000: Local var 17: System.Collections.Generic.IEnumerator`1 IL_0000: Local var 18: CustomAssetMetaData IL_0000: Local var 19: UnityEngine.GameObject IL_0000: Local var 20: BuildingInfo IL_0000: Local var 21: System.String IL_0000: Local var 22: ColossalFramework.Packaging.Package/Asset IL_0000: Local var 23: System.Collections.Generic.IEnumerator`1 IL_0000: Local var 24: CustomAssetMetaData IL_0000: Local var 25: UnityEngine.GameObject IL_0000: Local var 26: NetInfo IL_0000: Local var 27: System.String IL_0000: Local var 28: UnityEngine.GameObject IL_0000: Local var 29: PrefabInfo IL_0000: Local var 30: CitizenInfo IL_0000: Local var 31: System.String IL_0000: Local var 32: NetInfo IL_0000: // start original IL_0000: ldarg.0 IL_0001: call System.Void ToolsModifierControl::CloseEverything() IL_0006: ldarg.0 IL_0007: ldarg.0 IL_0008: ldfld ColossalFramework.UI.UIListBox LoadAssetPanel::m_SaveList IL_000D: callvirt System.Int32 ColossalFramework.UI.UIListBox::get_selectedIndex() IL_0012: call System.String LoadSavePanelBase`1::GetListingName(System.Int32 index) IL_0017: stsfld System.String LoadAssetPanel::m_LastSaveName IL_001C: ldsfld System.String LoadAssetPanel::m_LastSaveName IL_0021: call static System.Void SaveAssetPanel::set_lastLoadedName(System.String value) IL_0026: ldarg.0 IL_0027: ldarg.0 IL_0028: ldfld ColossalFramework.UI.UIListBox LoadAssetPanel::m_SaveList IL_002D: callvirt System.Int32 ColossalFramework.UI.UIListBox::get_selectedIndex() IL_0032: call CustomAssetMetaData LoadSavePanelBase`1::GetListingMetaData(System.Int32 index) IL_0037: stloc.0 IL_0038: ldarg.0 IL_0039: ldloc.0 IL_003A: call System.Void LoadSavePanelBase`1::PrintModsInfo(CustomAssetMetaData meta) IL_003F: ldarg.0 IL_0040: ldloc.0 IL_0041: ldloc.0 IL_0042: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef IL_0047: callvirt ColossalFramework.Packaging.Package ColossalFramework.Packaging.Asset::get_package() IL_004C: call System.String LoadAssetPanel::SafeGetAssetName(CustomAssetMetaData metaData, ColossalFramework.Packaging.Package package) IL_0051: call static System.Void SaveAssetPanel::set_lastLoadedAsset(System.String value) IL_0056: ldarg.0 IL_0057: ldarg.0 IL_0058: ldfld ColossalFramework.UI.UIListBox LoadAssetPanel::m_SaveList IL_005D: callvirt System.Int32 ColossalFramework.UI.UIListBox::get_selectedIndex() IL_0062: call System.String LoadSavePanelBase`1::GetListingPackageName(System.Int32 index) IL_0067: stloc.1 IL_0068: ldsfld ColossalFramework.PlatformServices.PublishedFileId ColossalFramework.PlatformServices.PublishedFileId::invalid IL_006D: stloc.2 IL_006E: ldloc.1 IL_006F: ldloca.s 3 (System.UInt64) IL_0071: call static System.Boolean System.UInt64::TryParse(System.String s, System.UInt64& result) IL_0076: brfalse => Label0 IL_007B: ldloca.s 2 (ColossalFramework.PlatformServices.PublishedFileId) IL_007D: ldloc.3 IL_007E: call System.Void ColossalFramework.PlatformServices.PublishedFileId::.ctor(System.UInt64 value) IL_0083: Label0 IL_0083: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0088: ldfld SimulationMetaData SimulationManager::m_metaData IL_008D: ldloc.2 IL_008E: stfld ColossalFramework.PlatformServices.PublishedFileId SimulationMetaData::m_WorkshopPublishedFileId IL_0093: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0098: ldfld SimulationMetaData SimulationManager::m_metaData IL_009D: ldloc.0 IL_009E: ldfld System.String CustomAssetMetaData::guid IL_00A3: stfld System.String SimulationMetaData::m_gameInstanceIdentifier IL_00A8: call static ColossalFramework.UI.UIDynamicPanels ColossalFramework.UI.UIView::get_library() IL_00AD: ldarg.0 IL_00AE: call System.Type System.Object::GetType() IL_00B3: callvirt abstract virtual System.String System.Reflection.MemberInfo::get_Name() IL_00B8: ldc.i4.1 IL_00B9: callvirt ColossalFramework.UI.UIComponent ColossalFramework.UI.UIDynamicPanels::Hide(System.String panelName, System.Int32 ret) IL_00BE: pop IL_00BF: ldstr "GameController" IL_00C4: call static UnityEngine.GameObject UnityEngine.GameObject::FindGameObjectWithTag(System.String tag) IL_00C9: stloc.s 4 (UnityEngine.GameObject) IL_00CB: ldloc.s 4 (UnityEngine.GameObject) IL_00CD: ldnull IL_00CE: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_00D3: brfalse => Label1 IL_00D8: ldloc.s 4 (UnityEngine.GameObject) IL_00DA: callvirt ToolController UnityEngine.GameObject::GetComponent() IL_00DF: stloc.s 5 (ToolController) IL_00E1: ldloc.0 IL_00E2: ldfld Type CustomAssetMetaData::type IL_00E7: ldc.i4.3 IL_00E8: bne.un => Label2 IL_00ED: ldloc.0 IL_00EE: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef IL_00F3: callvirt ColossalFramework.Packaging.Package ColossalFramework.Packaging.Asset::get_package() IL_00F8: ldc.i4.1 IL_00F9: newarr ColossalFramework.Packaging.Package+AssetType IL_00FE: dup IL_00FF: ldc.i4.0 IL_0100: ldsfld ColossalFramework.Packaging.AssetType UserAssetType::CustomAssetMetaData IL_0105: stelem.ref IL_0106: callvirt System.Collections.Generic.IEnumerable`1 ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p) IL_010B: callvirt abstract virtual System.Collections.Generic.IEnumerator`1 System.Collections.Generic.IEnumerable`1::GetEnumerator() IL_0110: stloc.s 7 (System.Collections.Generic.IEnumerator`1[ColossalFramework.Packaging.Package+Asset]) .try { IL_0112: br => Label3 IL_0117: Label8 IL_0117: ldloc.s 7 (System.Collections.Generic.IEnumerator`1[ColossalFramework.Packaging.Package+Asset]) IL_0119: callvirt abstract virtual ColossalFramework.Packaging.Asset System.Collections.Generic.IEnumerator`1::get_Current() IL_011E: stloc.s 6 (ColossalFramework.Packaging.Package+Asset) IL_0120: ldloc.s 6 (ColossalFramework.Packaging.Package+Asset) IL_0122: callvirt CustomAssetMetaData ColossalFramework.Packaging.Asset::Instantiate() IL_0127: stloc.s 8 (CustomAssetMetaData) IL_0129: ldloc.s 8 (CustomAssetMetaData) IL_012B: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef IL_0130: callvirt System.String ColossalFramework.Packaging.Asset::get_checksum() IL_0135: ldloc.0 IL_0136: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef IL_013B: callvirt System.String ColossalFramework.Packaging.Asset::get_checksum() IL_0140: call static System.Boolean System.String::op_Inequality(System.String a, System.String b) IL_0145: brfalse => Label4 IL_014A: ldloc.s 8 (CustomAssetMetaData) IL_014C: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef IL_0151: callvirt UnityEngine.GameObject ColossalFramework.Packaging.Asset::Instantiate() IL_0156: stloc.s 9 (UnityEngine.GameObject) IL_0158: ldloc.s 9 (UnityEngine.GameObject) IL_015A: ldloc.s 8 (CustomAssetMetaData) IL_015C: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef IL_0161: callvirt ColossalFramework.Packaging.Package ColossalFramework.Packaging.Asset::get_package() IL_0166: callvirt System.String ColossalFramework.Packaging.Package::get_packageName() IL_016B: ldstr "." IL_0170: ldloc.s 9 (UnityEngine.GameObject) IL_0172: callvirt System.String UnityEngine.Object::get_name() IL_0177: call static System.String System.String::Concat(System.String str0, System.String str1, System.String str2) IL_017C: callvirt System.Void UnityEngine.Object::set_name(System.String value) IL_0181: ldloc.s 9 (UnityEngine.GameObject) IL_0183: ldc.i4.0 IL_0184: callvirt System.Void UnityEngine.GameObject::SetActive(System.Boolean value) IL_0189: ldloc.s 9 (UnityEngine.GameObject) IL_018B: callvirt VehicleInfo UnityEngine.GameObject::GetComponent() IL_0190: stloc.s 10 (VehicleInfo) IL_0192: ldloc.s 10 (VehicleInfo) IL_0194: ldnull IL_0195: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_019A: brfalse => Label5 IL_019F: ldloc.s 9 (UnityEngine.GameObject) IL_01A1: callvirt System.String UnityEngine.Object::get_name() IL_01A6: call static VehicleInfo PrefabCollection`1::FindLoaded(System.String name) IL_01AB: ldnull IL_01AC: call static System.Boolean UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y) IL_01B1: brfalse => Label6 IL_01B6: ldstr "Custom Assets" IL_01BB: ldloc.s 10 (VehicleInfo) IL_01BD: ldnull IL_01BE: call static System.Void PrefabCollection`1::InitializePrefabs(System.String collection, VehicleInfo prefab, System.String replace) IL_01C3: ldloc.s 10 (VehicleInfo) IL_01C5: ldfld UnityEngine.GameObject VehicleInfoBase::m_lodObject IL_01CA: ldnull IL_01CB: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_01D0: brfalse => Label7 IL_01D5: ldloc.s 10 (VehicleInfo) IL_01D7: ldfld UnityEngine.GameObject VehicleInfoBase::m_lodObject IL_01DC: ldc.i4.0 IL_01DD: callvirt System.Void UnityEngine.GameObject::SetActive(System.Boolean value) IL_01E2: Label7 IL_01E2: call static System.Void PrefabCollection`1::BindPrefabs() IL_01E7: Label3 IL_01E7: Label4 IL_01E7: Label5 IL_01E7: Label6 IL_01E7: ldloc.s 7 (System.Collections.Generic.IEnumerator`1[ColossalFramework.Packaging.Package+Asset]) IL_01E9: callvirt abstract virtual System.Boolean System.Collections.IEnumerator::MoveNext() IL_01EE: brtrue => Label8 IL_01F3: leave => Label9 IL_01F8: leave => (autogenerated) } // end try .finally { IL_01FD: ldloc.s 7 (System.Collections.Generic.IEnumerator`1[ColossalFramework.Packaging.Package+Asset]) IL_01FF: brfalse => Label10 IL_0204: ldloc.s 7 (System.Collections.Generic.IEnumerator`1[ColossalFramework.Packaging.Package+Asset]) IL_0206: callvirt abstract virtual System.Void System.IDisposable::Dispose() IL_020B: Label10 IL_020B: endfinally IL_020C: leave => (autogenerated) } // end handler IL_020D: Label9 IL_020D: br => Label11 IL_0212: Label2 IL_0212: ldloc.0 IL_0213: ldfld Type CustomAssetMetaData::type IL_0218: brtrue => Label12 IL_021D: ldloc.0 IL_021E: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef IL_0223: callvirt ColossalFramework.Packaging.Package ColossalFramework.Packaging.Asset::get_package() IL_0228: ldc.i4.1 IL_0229: newarr ColossalFramework.Packaging.Package+AssetType IL_022E: dup IL_022F: ldc.i4.0 IL_0230: ldsfld ColossalFramework.Packaging.AssetType UserAssetType::CustomAssetMetaData IL_0235: stelem.ref IL_0236: callvirt System.Collections.Generic.IEnumerable`1 ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p) IL_023B: callvirt abstract virtual System.Collections.Generic.IEnumerator`1 System.Collections.Generic.IEnumerable`1::GetEnumerator() IL_0240: stloc.s 12 (System.Collections.Generic.IEnumerator`1[ColossalFramework.Packaging.Package+Asset]) .try { IL_0242: br => Label13 IL_0247: Label19 IL_0247: ldloc.s 12 (System.Collections.Generic.IEnumerator`1[ColossalFramework.Packaging.Package+Asset]) IL_0249: callvirt abstract virtual ColossalFramework.Packaging.Asset System.Collections.Generic.IEnumerator`1::get_Current() IL_024E: stloc.s 11 (ColossalFramework.Packaging.Package+Asset) IL_0250: ldloc.s 11 (ColossalFramework.Packaging.Package+Asset) IL_0252: callvirt CustomAssetMetaData ColossalFramework.Packaging.Asset::Instantiate() IL_0257: stloc.s 13 (CustomAssetMetaData) IL_0259: ldloc.s 13 (CustomAssetMetaData) IL_025B: ldfld Type CustomAssetMetaData::type IL_0260: ldc.i4.6 IL_0261: bne.un => Label14 IL_0266: ldloc.s 13 (CustomAssetMetaData) IL_0268: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef IL_026D: ldnull IL_026E: call static System.Boolean ColossalFramework.Packaging.Asset::op_Inequality(ColossalFramework.Packaging.Asset a, ColossalFramework.Packaging.Asset b) IL_0273: brfalse => Label15 IL_0278: ldloc.s 13 (CustomAssetMetaData) IL_027A: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef IL_027F: callvirt UnityEngine.GameObject ColossalFramework.Packaging.Asset::Instantiate() IL_0284: stloc.s 14 (UnityEngine.GameObject) IL_0286: ldloc.s 14 (UnityEngine.GameObject) IL_0288: ldloc.s 13 (CustomAssetMetaData) IL_028A: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef IL_028F: callvirt ColossalFramework.Packaging.Package ColossalFramework.Packaging.Asset::get_package() IL_0294: callvirt System.String ColossalFramework.Packaging.Package::get_packageName() IL_0299: ldstr "." IL_029E: ldloc.s 14 (UnityEngine.GameObject) IL_02A0: callvirt System.String UnityEngine.Object::get_name() IL_02A5: call static System.String System.String::Concat(System.String str0, System.String str1, System.String str2) IL_02AA: callvirt System.Void UnityEngine.Object::set_name(System.String value) IL_02AF: ldloc.s 14 (UnityEngine.GameObject) IL_02B1: ldc.i4.0 IL_02B2: callvirt System.Void UnityEngine.GameObject::SetActive(System.Boolean value) IL_02B7: ldloc.s 14 (UnityEngine.GameObject) IL_02B9: callvirt BuildingInfo UnityEngine.GameObject::GetComponent() IL_02BE: stloc.s 15 (BuildingInfo) IL_02C0: ldloc.s 15 (BuildingInfo) IL_02C2: ldnull IL_02C3: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_02C8: brfalse => Label16 IL_02CD: ldloc.s 14 (UnityEngine.GameObject) IL_02CF: callvirt System.String UnityEngine.Object::get_name() IL_02D4: call static BuildingInfo PrefabCollection`1::FindLoaded(System.String name) IL_02D9: ldnull IL_02DA: call static System.Boolean UnityEngine.Object::op_Equality(UnityEngine.Object x, UnityEngine.Object y) IL_02DF: brfalse => Label17 IL_02E4: ldstr "Custom Assets" IL_02E9: ldloc.s 15 (BuildingInfo) IL_02EB: ldnull IL_02EC: call static System.Void PrefabCollection`1::InitializePrefabs(System.String collection, BuildingInfo prefab, System.String replace) IL_02F1: ldloc.s 15 (BuildingInfo) IL_02F3: ldfld UnityEngine.GameObject BuildingInfoBase::m_lodObject IL_02F8: ldnull IL_02F9: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_02FE: brfalse => Label18 IL_0303: ldloc.s 15 (BuildingInfo) IL_0305: ldfld UnityEngine.GameObject BuildingInfoBase::m_lodObject IL_030A: ldc.i4.0 IL_030B: callvirt System.Void UnityEngine.GameObject::SetActive(System.Boolean value) IL_0310: Label18 IL_0310: call static System.Void PrefabCollection`1::BindPrefabs() IL_0315: Label13 IL_0315: Label14 IL_0315: Label15 IL_0315: Label16 IL_0315: Label17 IL_0315: ldloc.s 12 (System.Collections.Generic.IEnumerator`1[ColossalFramework.Packaging.Package+Asset]) IL_0317: callvirt abstract virtual System.Boolean System.Collections.IEnumerator::MoveNext() IL_031C: brtrue => Label19 IL_0321: leave => Label20 IL_0326: leave => (autogenerated) } // end try .finally { IL_032B: ldloc.s 12 (System.Collections.Generic.IEnumerator`1[ColossalFramework.Packaging.Package+Asset]) IL_032D: brfalse => Label21 IL_0332: ldloc.s 12 (System.Collections.Generic.IEnumerator`1[ColossalFramework.Packaging.Package+Asset]) IL_0334: callvirt abstract virtual System.Void System.IDisposable::Dispose() IL_0339: Label21 IL_0339: endfinally IL_033A: leave => (autogenerated) } // end handler IL_033B: Label20 IL_033B: br => Label22 IL_0340: Label12 IL_0340: ldloc.0 IL_0341: ldfld Type CustomAssetMetaData::type IL_0346: ldc.i4.s 9 IL_0348: bne.un => Label23 IL_034D: ldloc.0 IL_034E: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef IL_0353: callvirt ColossalFramework.Packaging.Package ColossalFramework.Packaging.Asset::get_package() IL_0358: ldc.i4.1 IL_0359: newarr ColossalFramework.Packaging.Package+AssetType IL_035E: dup IL_035F: ldc.i4.0 IL_0360: ldsfld ColossalFramework.Packaging.AssetType UserAssetType::CustomAssetMetaData IL_0365: stelem.ref IL_0366: callvirt System.Collections.Generic.IEnumerable`1 ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p) IL_036B: callvirt abstract virtual System.Collections.Generic.IEnumerator`1 System.Collections.Generic.IEnumerable`1::GetEnumerator() IL_0370: stloc.s 17 (System.Collections.Generic.IEnumerator`1[ColossalFramework.Packaging.Package+Asset]) .try { IL_0372: br => Label24 IL_0377: Label31 IL_0377: ldloc.s 17 (System.Collections.Generic.IEnumerator`1[ColossalFramework.Packaging.Package+Asset]) IL_0379: callvirt abstract virtual ColossalFramework.Packaging.Asset System.Collections.Generic.IEnumerator`1::get_Current() IL_037E: stloc.s 16 (ColossalFramework.Packaging.Package+Asset) IL_0380: ldloc.s 16 (ColossalFramework.Packaging.Package+Asset) IL_0382: callvirt CustomAssetMetaData ColossalFramework.Packaging.Asset::Instantiate() IL_0387: stloc.s 18 (CustomAssetMetaData) IL_0389: ldloc.s 18 (CustomAssetMetaData) IL_038B: ldfld Type CustomAssetMetaData::type IL_0390: ldc.i4.s 11 IL_0392: bne.un => Label25 IL_0397: ldloc.s 18 (CustomAssetMetaData) IL_0399: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef IL_039E: ldnull IL_039F: call static System.Boolean ColossalFramework.Packaging.Asset::op_Inequality(ColossalFramework.Packaging.Asset a, ColossalFramework.Packaging.Asset b) IL_03A4: brfalse => Label26 IL_03A9: ldloc.s 18 (CustomAssetMetaData) IL_03AB: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef IL_03B0: callvirt UnityEngine.GameObject ColossalFramework.Packaging.Asset::Instantiate() IL_03B5: stloc.s 19 (UnityEngine.GameObject) IL_03B7: ldloc.s 19 (UnityEngine.GameObject) IL_03B9: ldloc.s 18 (CustomAssetMetaData) IL_03BB: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef IL_03C0: callvirt ColossalFramework.Packaging.Package ColossalFramework.Packaging.Asset::get_package() IL_03C5: callvirt System.String ColossalFramework.Packaging.Package::get_packageName() IL_03CA: ldstr "." IL_03CF: ldloc.s 19 (UnityEngine.GameObject) IL_03D1: callvirt System.String UnityEngine.Object::get_name() IL_03D6: call static System.String System.String::Concat(System.String str0, System.String str1, System.String str2) IL_03DB: callvirt System.Void UnityEngine.Object::set_name(System.String value) IL_03E0: ldloc.s 19 (UnityEngine.GameObject) IL_03E2: ldc.i4.0 IL_03E3: callvirt System.Void UnityEngine.GameObject::SetActive(System.Boolean value) IL_03E8: ldloc.s 19 (UnityEngine.GameObject) IL_03EA: callvirt BuildingInfo UnityEngine.GameObject::GetComponent() IL_03EF: stloc.s 20 (BuildingInfo) IL_03F1: ldloc.s 20 (BuildingInfo) IL_03F3: ldnull IL_03F4: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_03F9: brfalse => Label27 IL_03FE: ldloc.s 20 (BuildingInfo) IL_0400: ldfld UnityEngine.GameObject BuildingInfoBase::m_lodObject IL_0405: ldnull IL_0406: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_040B: brfalse => Label28 IL_0410: ldloc.s 20 (BuildingInfo) IL_0412: ldfld UnityEngine.GameObject BuildingInfoBase::m_lodObject IL_0417: ldc.i4.0 IL_0418: callvirt System.Void UnityEngine.GameObject::SetActive(System.Boolean value) IL_041D: Label28 IL_041D: ldloc.s 19 (UnityEngine.GameObject) IL_041F: callvirt System.String UnityEngine.Object::get_name() IL_0424: call static System.Boolean PrefabCollection`1::LoadedExists(System.String name) IL_0429: brfalse => Label29 IL_042E: ldloc.s 19 (UnityEngine.GameObject) IL_0430: callvirt System.String UnityEngine.Object::get_name() IL_0435: br => Label30 IL_043A: Label29 IL_043A: ldnull IL_043B: Label30 IL_043B: stloc.s 21 (System.String) IL_043D: ldstr "Custom Assets" IL_0442: ldloc.s 20 (BuildingInfo) IL_0444: ldloc.s 21 (System.String) IL_0446: call static System.Void PrefabCollection`1::InitializePrefabs(System.String collection, BuildingInfo prefab, System.String replace) IL_044B: ldloc.s 20 (BuildingInfo) IL_044D: callvirt virtual System.Void PrefabInfo::CheckReferences() IL_0452: call static System.Void PrefabCollection`1::BindPrefabs() IL_0457: Label24 IL_0457: Label25 IL_0457: Label26 IL_0457: Label27 IL_0457: ldloc.s 17 (System.Collections.Generic.IEnumerator`1[ColossalFramework.Packaging.Package+Asset]) IL_0459: callvirt abstract virtual System.Boolean System.Collections.IEnumerator::MoveNext() IL_045E: brtrue => Label31 IL_0463: leave => Label32 IL_0468: leave => (autogenerated) } // end try .finally { IL_046D: ldloc.s 17 (System.Collections.Generic.IEnumerator`1[ColossalFramework.Packaging.Package+Asset]) IL_046F: brfalse => Label33 IL_0474: ldloc.s 17 (System.Collections.Generic.IEnumerator`1[ColossalFramework.Packaging.Package+Asset]) IL_0476: callvirt abstract virtual System.Void System.IDisposable::Dispose() IL_047B: Label33 IL_047B: endfinally IL_047C: leave => (autogenerated) } // end handler IL_047D: Label32 IL_047D: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0482: callvirt virtual System.Void SimulationManagerBase`2::InitRenderData() IL_0487: ldloc.0 IL_0488: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef IL_048D: callvirt ColossalFramework.Packaging.Package ColossalFramework.Packaging.Asset::get_package() IL_0492: ldc.i4.1 IL_0493: newarr ColossalFramework.Packaging.Package+AssetType IL_0498: dup IL_0499: ldc.i4.0 IL_049A: ldsfld ColossalFramework.Packaging.AssetType UserAssetType::CustomAssetMetaData IL_049F: stelem.ref IL_04A0: callvirt System.Collections.Generic.IEnumerable`1 ColossalFramework.Packaging.Package::FilterAssets(AssetType[] p) IL_04A5: callvirt abstract virtual System.Collections.Generic.IEnumerator`1 System.Collections.Generic.IEnumerable`1::GetEnumerator() IL_04AA: stloc.s 23 (System.Collections.Generic.IEnumerator`1[ColossalFramework.Packaging.Package+Asset]) .try { IL_04AC: br => Label34 IL_04B1: Label40 IL_04B1: ldloc.s 23 (System.Collections.Generic.IEnumerator`1[ColossalFramework.Packaging.Package+Asset]) IL_04B3: callvirt abstract virtual ColossalFramework.Packaging.Asset System.Collections.Generic.IEnumerator`1::get_Current() IL_04B8: stloc.s 22 (ColossalFramework.Packaging.Package+Asset) IL_04BA: ldloc.s 22 (ColossalFramework.Packaging.Package+Asset) IL_04BC: callvirt CustomAssetMetaData ColossalFramework.Packaging.Asset::Instantiate() IL_04C1: stloc.s 24 (CustomAssetMetaData) IL_04C3: ldloc.s 24 (CustomAssetMetaData) IL_04C5: ldfld Type CustomAssetMetaData::type IL_04CA: ldc.i4.s 10 IL_04CC: bne.un => Label35 IL_04D1: ldloc.s 24 (CustomAssetMetaData) IL_04D3: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef IL_04D8: ldnull IL_04D9: call static System.Boolean ColossalFramework.Packaging.Asset::op_Inequality(ColossalFramework.Packaging.Asset a, ColossalFramework.Packaging.Asset b) IL_04DE: brfalse => Label36 IL_04E3: ldloc.s 24 (CustomAssetMetaData) IL_04E5: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef IL_04EA: callvirt UnityEngine.GameObject ColossalFramework.Packaging.Asset::Instantiate() IL_04EF: stloc.s 25 (UnityEngine.GameObject) IL_04F1: ldloc.s 25 (UnityEngine.GameObject) IL_04F3: ldloc.s 24 (CustomAssetMetaData) IL_04F5: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef IL_04FA: callvirt ColossalFramework.Packaging.Package ColossalFramework.Packaging.Asset::get_package() IL_04FF: callvirt System.String ColossalFramework.Packaging.Package::get_packageName() IL_0504: ldstr "." IL_0509: ldloc.s 25 (UnityEngine.GameObject) IL_050B: callvirt System.String UnityEngine.Object::get_name() IL_0510: call static System.String System.String::Concat(System.String str0, System.String str1, System.String str2) IL_0515: callvirt System.Void UnityEngine.Object::set_name(System.String value) IL_051A: ldloc.s 25 (UnityEngine.GameObject) IL_051C: ldc.i4.0 IL_051D: callvirt System.Void UnityEngine.GameObject::SetActive(System.Boolean value) IL_0522: ldloc.s 25 (UnityEngine.GameObject) IL_0524: callvirt NetInfo UnityEngine.GameObject::GetComponent() IL_0529: stloc.s 26 (NetInfo) IL_052B: ldloc.s 26 (NetInfo) IL_052D: ldnull IL_052E: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_0533: brfalse => Label37 IL_0538: ldloc.s 25 (UnityEngine.GameObject) IL_053A: callvirt System.String UnityEngine.Object::get_name() IL_053F: call static System.Boolean PrefabCollection`1::LoadedExists(System.String name) IL_0544: brfalse => Label38 IL_0549: ldloc.s 25 (UnityEngine.GameObject) IL_054B: callvirt System.String UnityEngine.Object::get_name() IL_0550: br => Label39 IL_0555: Label38 IL_0555: ldnull IL_0556: Label39 IL_0556: stloc.s 27 (System.String) IL_0558: ldstr "Custom Assets" IL_055D: ldloc.s 26 (NetInfo) IL_055F: ldloc.s 27 (System.String) IL_0561: call static System.Void PrefabCollection`1::InitializePrefabs(System.String collection, NetInfo prefab, System.String replace) IL_0566: ldloc.s 26 (NetInfo) IL_0568: callvirt virtual System.Void PrefabInfo::CheckReferences() IL_056D: call static System.Void PrefabCollection`1::BindPrefabs() IL_0572: Label34 IL_0572: Label35 IL_0572: Label36 IL_0572: Label37 IL_0572: ldloc.s 23 (System.Collections.Generic.IEnumerator`1[ColossalFramework.Packaging.Package+Asset]) IL_0574: callvirt abstract virtual System.Boolean System.Collections.IEnumerator::MoveNext() IL_0579: brtrue => Label40 IL_057E: leave => Label41 IL_0583: leave => (autogenerated) } // end try .finally { IL_0588: ldloc.s 23 (System.Collections.Generic.IEnumerator`1[ColossalFramework.Packaging.Package+Asset]) IL_058A: brfalse => Label42 IL_058F: ldloc.s 23 (System.Collections.Generic.IEnumerator`1[ColossalFramework.Packaging.Package+Asset]) IL_0591: callvirt abstract virtual System.Void System.IDisposable::Dispose() IL_0596: Label42 IL_0596: endfinally IL_0597: leave => (autogenerated) } // end handler IL_0598: Label11 IL_0598: Label22 IL_0598: Label23 IL_0598: Label41 IL_0598: ldloc.0 IL_0599: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef IL_059E: callvirt UnityEngine.GameObject ColossalFramework.Packaging.Asset::Instantiate() IL_05A3: stloc.s 28 (UnityEngine.GameObject) IL_05A5: ldloc.s 28 (UnityEngine.GameObject) IL_05A7: ldnull IL_05A8: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_05AD: brfalse => Label43 IL_05B2: ldloc.s 28 (UnityEngine.GameObject) IL_05B4: callvirt PrefabInfo UnityEngine.GameObject::GetComponent() IL_05B9: stloc.s 29 (PrefabInfo) IL_05BB: ldloc.s 29 (PrefabInfo) IL_05BD: ldfld ColossalFramework.UI.UITextureAtlas PrefabInfo::m_Atlas IL_05C2: ldnull IL_05C3: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_05C8: brfalse => Label44 IL_05CD: ldloc.s 29 (PrefabInfo) IL_05CF: ldfld System.String PrefabInfo::m_InfoTooltipThumbnail IL_05D4: brfalse => Label45 IL_05D9: ldloc.s 29 (PrefabInfo) IL_05DB: ldfld System.String PrefabInfo::m_InfoTooltipThumbnail IL_05E0: ldsfld System.String System.String::Empty IL_05E5: call static System.Boolean System.String::op_Inequality(System.String a, System.String b) IL_05EA: brfalse => Label46 IL_05EF: ldloc.s 29 (PrefabInfo) IL_05F1: ldfld ColossalFramework.UI.UITextureAtlas PrefabInfo::m_Atlas IL_05F6: ldloc.s 29 (PrefabInfo) IL_05F8: ldfld System.String PrefabInfo::m_InfoTooltipThumbnail IL_05FD: callvirt ColossalFramework.UI.SpriteInfo ColossalFramework.UI.UITextureAtlas::get_Item(System.String key) IL_0602: ldnull IL_0603: call static System.Boolean ColossalFramework.UI.SpriteInfo::op_Inequality(ColossalFramework.UI.SpriteInfo lhs, ColossalFramework.UI.SpriteInfo rhs) IL_0608: brfalse => Label47 IL_060D: ldloc.s 29 (PrefabInfo) IL_060F: ldloc.s 29 (PrefabInfo) IL_0611: ldfld ColossalFramework.UI.UITextureAtlas PrefabInfo::m_Atlas IL_0616: stfld ColossalFramework.UI.UITextureAtlas PrefabInfo::m_InfoTooltipAtlas IL_061B: Label44 IL_061B: Label45 IL_061B: Label46 IL_061B: Label47 IL_061B: ldloc.s 29 (PrefabInfo) IL_061D: isinst CitizenInfo IL_0622: brfalse => Label48 IL_0627: ldloc.s 29 (PrefabInfo) IL_0629: isinst CitizenInfo IL_062E: stloc.s 30 (CitizenInfo) IL_0630: ldloc.s 30 (CitizenInfo) IL_0632: ldloc.0 IL_0633: callvirt System.Boolean CitizenInfo::InitializeCustomPrefab(CustomAssetMetaData meta) IL_0638: pop IL_0639: ldloc.s 30 (CitizenInfo) IL_063B: callvirt UnityEngine.Animator UnityEngine.Component::GetComponent() IL_0640: ldc.i4.0 IL_0641: callvirt System.Void UnityEngine.Animator::set_cullingMode(UnityEngine.AnimatorCullingMode value) IL_0646: Label48 IL_0646: ldloc.s 29 (PrefabInfo) IL_0648: isinst NetInfo IL_064D: brfalse => Label49 IL_0652: ldloc.s 28 (UnityEngine.GameObject) IL_0654: ldloc.0 IL_0655: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef IL_065A: callvirt ColossalFramework.Packaging.Package ColossalFramework.Packaging.Asset::get_package() IL_065F: callvirt System.String ColossalFramework.Packaging.Package::get_packageName() IL_0664: ldstr "." IL_0669: ldloc.s 28 (UnityEngine.GameObject) IL_066B: callvirt System.String UnityEngine.Object::get_name() IL_0670: call static System.String System.String::Concat(System.String str0, System.String str1, System.String str2) IL_0675: callvirt System.Void UnityEngine.Object::set_name(System.String value) IL_067A: ldloc.s 28 (UnityEngine.GameObject) IL_067C: callvirt System.String UnityEngine.Object::get_name() IL_0681: call static System.Boolean PrefabCollection`1::LoadedExists(System.String name) IL_0686: brfalse => Label50 IL_068B: ldloc.s 28 (UnityEngine.GameObject) IL_068D: callvirt System.String UnityEngine.Object::get_name() IL_0692: br => Label51 IL_0697: Label50 IL_0697: ldnull IL_0698: Label51 IL_0698: stloc.s 31 (System.String) IL_069A: ldloc.s 29 (PrefabInfo) IL_069C: castclass NetInfo IL_06A1: stloc.s 32 (NetInfo) IL_06A3: ldstr "Custom Assets" IL_06A8: ldloc.s 32 (NetInfo) IL_06AA: ldloc.s 31 (System.String) IL_06AC: call static System.Void PrefabCollection`1::InitializePrefabs(System.String collection, NetInfo prefab, System.String replace) IL_06B1: ldloc.s 32 (NetInfo) IL_06B3: callvirt virtual System.Void PrefabInfo::CheckReferences() IL_06B8: call static System.Void PrefabCollection`1::BindPrefabs() IL_06BD: ldloc.s 32 (NetInfo) IL_06BF: call static NetInfo AssetEditorRoadUtils::InstantiatePrefab(NetInfo template) IL_06C4: stloc.s 29 (PrefabInfo) IL_06C6: br => Label52 IL_06CB: Label49 IL_06CB: ldloc.s 29 (PrefabInfo) IL_06CD: callvirt virtual System.Void PrefabInfo::InitializePrefab() IL_06D2: ldloc.s 29 (PrefabInfo) IL_06D4: callvirt virtual System.Void PrefabInfo::CheckReferences() IL_06D9: ldloc.s 29 (PrefabInfo) IL_06DB: ldc.i4.1 IL_06DC: stfld System.Boolean PrefabInfo::m_prefabInitialized IL_06E1: Label52 IL_06E1: ldloc.s 5 (ToolController) IL_06E3: ldloc.s 29 (PrefabInfo) IL_06E5: stfld PrefabInfo ToolController::m_editPrefabInfo IL_06EA: ldloc.0 IL_06EB: ldfld System.String CustomAssetMetaData::templateName IL_06F0: brfalse => Label53 IL_06F5: ldloc.s 29 (PrefabInfo) IL_06F7: isinst BuildingInfo IL_06FC: brfalse => Label54 IL_0701: ldloc.s 5 (ToolController) IL_0703: ldloc.0 IL_0704: ldfld System.String CustomAssetMetaData::templateName IL_0709: call static BuildingInfo PrefabCollection`1::FindLoaded(System.String name) IL_070E: stfld PrefabInfo ToolController::m_templatePrefabInfo IL_0713: br => Label55 IL_0718: Label54 IL_0718: ldloc.s 29 (PrefabInfo) IL_071A: isinst CitizenInfo IL_071F: brfalse => Label56 IL_0724: ldloc.s 5 (ToolController) IL_0726: ldloc.0 IL_0727: ldfld System.String CustomAssetMetaData::templateName IL_072C: call static CitizenInfo PrefabCollection`1::FindLoaded(System.String name) IL_0731: stfld PrefabInfo ToolController::m_templatePrefabInfo IL_0736: br => Label57 IL_073B: Label56 IL_073B: ldloc.s 29 (PrefabInfo) IL_073D: isinst VehicleInfo IL_0742: brfalse => Label58 IL_0747: ldloc.s 5 (ToolController) IL_0749: ldloc.0 IL_074A: ldfld System.String CustomAssetMetaData::templateName IL_074F: call static VehicleInfo PrefabCollection`1::FindLoaded(System.String name) IL_0754: stfld PrefabInfo ToolController::m_templatePrefabInfo IL_0759: br => Label59 IL_075E: Label58 IL_075E: ldloc.s 29 (PrefabInfo) IL_0760: isinst PropInfo IL_0765: brfalse => Label60 IL_076A: ldloc.s 5 (ToolController) IL_076C: ldloc.0 IL_076D: ldfld System.String CustomAssetMetaData::templateName IL_0772: call static PropInfo PrefabCollection`1::FindLoaded(System.String name) IL_0777: stfld PrefabInfo ToolController::m_templatePrefabInfo IL_077C: br => Label61 IL_0781: Label60 IL_0781: ldloc.s 29 (PrefabInfo) IL_0783: isinst TreeInfo IL_0788: brfalse => Label62 IL_078D: ldloc.s 5 (ToolController) IL_078F: ldloc.0 IL_0790: ldfld System.String CustomAssetMetaData::templateName IL_0795: call static TreeInfo PrefabCollection`1::FindLoaded(System.String name) IL_079A: stfld PrefabInfo ToolController::m_templatePrefabInfo IL_079F: br => Label63 IL_07A4: Label62 IL_07A4: ldloc.s 29 (PrefabInfo) IL_07A6: isinst NetInfo IL_07AB: brfalse => Label64 IL_07B0: ldloc.s 5 (ToolController) IL_07B2: ldloc.0 IL_07B3: ldfld System.String CustomAssetMetaData::templateName IL_07B8: call static NetInfo PrefabCollection`1::FindLoaded(System.String name) IL_07BD: stfld PrefabInfo ToolController::m_templatePrefabInfo IL_07C2: Label55 IL_07C2: Label57 IL_07C2: Label59 IL_07C2: Label61 IL_07C2: Label63 IL_07C2: Label64 IL_07C2: br => Label65 IL_07C7: Label53 IL_07C7: ldloc.s 5 (ToolController) IL_07C9: ldnull IL_07CA: stfld PrefabInfo ToolController::m_templatePrefabInfo IL_07CF: Label65 IL_07CF: ldarg.0 IL_07D0: ldloc.0 IL_07D1: ldloc.0 IL_07D2: ldfld ColossalFramework.Packaging.Asset MetaData::assetRef IL_07D7: callvirt ColossalFramework.Packaging.Package ColossalFramework.Packaging.Asset::get_package() IL_07DC: call System.String LoadAssetPanel::SafeGetAssetDesc(CustomAssetMetaData metaData, ColossalFramework.Packaging.Package package) IL_07E1: call static System.Void SaveAssetPanel::set_lastAssetDescription(System.String value) IL_07E6: // end original IL_07E6: Label1 IL_07E6: Label43 IL_07E6: ldarg.0 IL_07E7: ldarg.0 IL_07E8: ldfld ColossalFramework.UI.UIListBox LoadAssetPanel::m_SaveList IL_07ED: call static System.Void TrafficManager.Patch._LoadAssetPanel.OnLoadPatch::Postfix(LoadAssetPanel __instance, ColossalFramework.UI.UIListBox ___m_SaveList) IL_07F2: ret DONE ### Patch: System.Void InfoManager::SetMode(InfoMode mode, SubInfoMode subMode) ### Replacement: static System.Void InfoManager::InfoManager.SetMode_Patch1(InfoManager this, InfoMode mode, SubInfoMode subMode) IL_0000: ldarg 1 IL_0004: ldarg 2 IL_0008: call static System.Void TrafficManager.Patch._InfoManager.SetModePatch::Prefix(InfoMode mode, SubInfoMode subMode) IL_000D: // start original IL_000D: ldarg.0 IL_000E: ldarg.1 IL_000F: stfld InfoMode InfoManager::m_currentMode IL_0014: ldarg.0 IL_0015: ldarg.2 IL_0016: stfld SubInfoMode InfoManager::m_currentSubMode IL_001B: ldarg.1 IL_001C: ldc.i4.1 IL_001D: sub IL_001E: switch => Labels0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37 IL_00BB: br => Label38 IL_00C0: Label0 IL_00C0: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_00C5: ldc.i4.0 IL_00C6: ldc.i4.0 IL_00C7: ldc.i4.m1 IL_00C8: ldc.r4 300 IL_00CD: ldc.i4.0 IL_00CE: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_00D3: br => Label39 IL_00D8: Label1 IL_00D8: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_00DD: ldc.i4.0 IL_00DE: ldc.i4.0 IL_00DF: ldc.i4.m1 IL_00E0: ldc.r4 300 IL_00E5: ldc.i4.0 IL_00E6: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_00EB: br => Label40 IL_00F0: Label2 IL_00F0: ldarg.2 IL_00F1: brtrue => Label41 IL_00F6: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_00FB: ldc.i4.s 15 IL_00FD: ldc.i4.0 IL_00FE: ldc.i4.0 IL_00FF: ldc.r4 500 IL_0104: ldc.i4.0 IL_0105: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_010A: br => Label42 IL_010F: Label41 IL_010F: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_0114: ldc.i4.0 IL_0115: ldc.i4.0 IL_0116: ldc.i4.m1 IL_0117: ldc.r4 300 IL_011C: ldc.i4.0 IL_011D: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_0122: Label42 IL_0122: br => Label43 IL_0127: Label3 IL_0127: ldarg.2 IL_0128: ldc.i4.1 IL_0129: bne.un => Label44 IL_012E: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_0133: ldc.i4.s 14 IL_0135: ldc.i4.0 IL_0136: ldc.i4.1 IL_0137: ldc.r4 500 IL_013C: ldc.i4.0 IL_013D: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_0142: br => Label45 IL_0147: Label44 IL_0147: ldarg.2 IL_0148: ldc.i4.3 IL_0149: bne.un => Label46 IL_014E: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_0153: ldc.i4.s 14 IL_0155: ldc.i4.0 IL_0156: ldc.i4.4 IL_0157: ldc.r4 500 IL_015C: ldc.i4.0 IL_015D: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_0162: br => Label47 IL_0167: Label46 IL_0167: ldarg.2 IL_0168: ldc.i4.2 IL_0169: bne.un => Label48 IL_016E: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_0173: ldc.i4.s 14 IL_0175: ldc.i4.0 IL_0176: ldc.i4.3 IL_0177: ldc.r4 500 IL_017C: ldc.i4.0 IL_017D: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_0182: br => Label49 IL_0187: Label48 IL_0187: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_018C: ldc.i4.s 14 IL_018E: ldc.i4.0 IL_018F: ldc.i4.0 IL_0190: ldc.r4 500 IL_0195: ldc.i4.0 IL_0196: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_019B: Label45 IL_019B: Label47 IL_019B: Label49 IL_019B: br => Label50 IL_01A0: Label12 IL_01A0: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_01A5: ldc.i4.0 IL_01A6: ldc.i4.0 IL_01A7: ldc.i4.m1 IL_01A8: ldc.r4 300 IL_01AD: ldc.i4.0 IL_01AE: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_01B3: br => Label51 IL_01B8: Label4 IL_01B8: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_01BD: ldc.i4.0 IL_01BE: ldc.i4.0 IL_01BF: ldc.i4.m1 IL_01C0: ldc.r4 300 IL_01C5: ldc.i4.0 IL_01C6: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_01CB: br => Label52 IL_01D0: Label5 IL_01D0: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_01D5: ldc.i4.0 IL_01D6: ldc.i4.0 IL_01D7: ldc.i4.m1 IL_01D8: ldc.r4 300 IL_01DD: ldc.i4.0 IL_01DE: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_01E3: br => Label53 IL_01E8: Label8 IL_01E8: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_01ED: ldc.i4.0 IL_01EE: ldc.i4.0 IL_01EF: ldc.i4.m1 IL_01F0: ldc.r4 300 IL_01F5: ldc.i4.0 IL_01F6: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_01FB: br => Label54 IL_0200: Label6 IL_0200: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_0205: ldc.i4.0 IL_0206: ldc.i4.0 IL_0207: ldc.i4.m1 IL_0208: ldc.r4 300 IL_020D: ldc.i4.0 IL_020E: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_0213: br => Label55 IL_0218: Label7 IL_0218: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_021D: ldc.i4.0 IL_021E: ldc.i4.0 IL_021F: ldc.i4.m1 IL_0220: ldc.r4 300 IL_0225: ldc.i4.0 IL_0226: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_022B: br => Label56 IL_0230: Label9 IL_0230: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_0235: ldc.i4.0 IL_0236: ldc.i4.0 IL_0237: ldc.i4.m1 IL_0238: ldc.r4 300 IL_023D: ldc.i4.0 IL_023E: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_0243: br => Label57 IL_0248: Label10 IL_0248: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_024D: ldc.i4.0 IL_024E: ldc.i4.0 IL_024F: ldc.i4.m1 IL_0250: ldc.r4 300 IL_0255: ldc.i4.0 IL_0256: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_025B: br => Label58 IL_0260: Label11 IL_0260: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_0265: ldc.i4.0 IL_0266: ldc.i4.0 IL_0267: ldc.i4.m1 IL_0268: ldc.r4 300 IL_026D: ldc.i4.0 IL_026E: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_0273: br => Label59 IL_0278: Label14 IL_0278: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_027D: ldc.i4.0 IL_027E: ldc.i4.0 IL_027F: ldc.i4.m1 IL_0280: ldc.r4 300 IL_0285: ldc.i4.0 IL_0286: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_028B: br => Label60 IL_0290: Label17 IL_0290: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_0295: ldc.i4.s 18 IL_0297: ldc.i4.0 IL_0298: ldc.i4.0 IL_0299: ldc.r4 500 IL_029E: ldc.i4.0 IL_029F: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_02A4: br => Label61 IL_02A9: Label19 IL_02A9: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_02AE: ldc.i4.0 IL_02AF: ldc.i4.0 IL_02B0: ldc.i4.m1 IL_02B1: ldc.r4 300 IL_02B6: ldc.i4.1 IL_02B7: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_02BC: br => Label62 IL_02C1: Label18 IL_02C1: ldarg.2 IL_02C2: ldc.i4.1 IL_02C3: bne.un => Label63 IL_02C8: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_02CD: ldc.i4.s 16 IL_02CF: ldc.i4.0 IL_02D0: ldc.i4.1 IL_02D1: ldc.r4 500 IL_02D6: ldc.i4.1 IL_02D7: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_02DC: br => Label64 IL_02E1: Label63 IL_02E1: ldarg.2 IL_02E2: ldc.i4.2 IL_02E3: bne.un => Label65 IL_02E8: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_02ED: ldc.i4.s 16 IL_02EF: ldc.i4.0 IL_02F0: ldc.i4.2 IL_02F1: ldc.r4 500 IL_02F6: ldc.i4.1 IL_02F7: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_02FC: br => Label66 IL_0301: Label65 IL_0301: ldarg.2 IL_0302: brtrue => Label67 IL_0307: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_030C: ldc.i4.s 16 IL_030E: ldc.i4.0 IL_030F: ldc.i4.0 IL_0310: ldc.r4 500 IL_0315: ldc.i4.1 IL_0316: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_031B: br => Label68 IL_0320: Label67 IL_0320: ldarg.2 IL_0321: ldc.i4.4 IL_0322: bne.un => Label69 IL_0327: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_032C: ldc.i4.s 16 IL_032E: ldc.i4.0 IL_032F: ldc.i4.3 IL_0330: ldc.r4 500 IL_0335: ldc.i4.1 IL_0336: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_033B: br => Label70 IL_0340: Label69 IL_0340: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_0345: ldc.i4.s 16 IL_0347: ldc.i4.0 IL_0348: ldc.i4.2 IL_0349: ldc.r4 500 IL_034E: ldc.i4.1 IL_034F: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_0354: Label64 IL_0354: Label66 IL_0354: Label68 IL_0354: Label70 IL_0354: br => Label71 IL_0359: Label16 IL_0359: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_035E: ldc.i4.0 IL_035F: ldc.i4.0 IL_0360: ldc.i4.m1 IL_0361: ldc.r4 300 IL_0366: ldc.i4.0 IL_0367: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_036C: br => Label72 IL_0371: Label13 IL_0371: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_0376: ldc.i4.0 IL_0377: ldc.i4.0 IL_0378: ldc.i4.m1 IL_0379: ldc.r4 300 IL_037E: ldc.i4.0 IL_037F: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_0384: br => Label73 IL_0389: Label15 IL_0389: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_038E: ldc.i4.s 13 IL_0390: ldc.i4.0 IL_0391: ldc.i4.m1 IL_0392: ldc.r4 2000 IL_0397: ldc.i4.0 IL_0398: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_039D: br => Label74 IL_03A2: Label20 IL_03A2: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_03A7: ldc.i4.0 IL_03A8: ldc.i4.0 IL_03A9: ldc.i4.m1 IL_03AA: ldc.r4 300 IL_03AF: ldc.i4.0 IL_03B0: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_03B5: br => Label75 IL_03BA: Label21 IL_03BA: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_03BF: ldc.i4.0 IL_03C0: ldc.i4.0 IL_03C1: ldc.i4.m1 IL_03C2: ldc.r4 300 IL_03C7: ldc.i4.0 IL_03C8: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_03CD: br => Label76 IL_03D2: Label22 IL_03D2: ldarg.2 IL_03D3: brtrue => Label77 IL_03D8: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_03DD: ldc.i4.s 9 IL_03DF: ldc.i4.0 IL_03E0: ldc.i4.1 IL_03E1: ldc.r4 2000 IL_03E6: ldc.i4.0 IL_03E7: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_03EC: br => Label78 IL_03F1: Label77 IL_03F1: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_03F6: ldc.i4.0 IL_03F7: ldc.i4.0 IL_03F8: ldc.i4.m1 IL_03F9: ldc.r4 300 IL_03FE: ldc.i4.0 IL_03FF: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_0404: Label78 IL_0404: br => Label79 IL_0409: Label23 IL_0409: ldarg.2 IL_040A: brtrue => Label80 IL_040F: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_0414: ldc.i4.s 9 IL_0416: ldc.i4.0 IL_0417: ldc.i4.3 IL_0418: ldc.r4 2000 IL_041D: ldc.i4.0 IL_041E: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_0423: br => Label81 IL_0428: Label80 IL_0428: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_042D: ldc.i4.0 IL_042E: ldc.i4.0 IL_042F: ldc.i4.m1 IL_0430: ldc.r4 300 IL_0435: ldc.i4.0 IL_0436: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_043B: Label81 IL_043B: br => Label82 IL_0440: Label24 IL_0440: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_0445: ldc.i4.s 20 IL_0447: ldc.i4.0 IL_0448: ldc.i4.3 IL_0449: ldc.r4 500 IL_044E: ldc.i4.1 IL_044F: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_0454: br => Label83 IL_0459: Label25 IL_0459: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_045E: ldc.i4.0 IL_045F: ldc.i4.0 IL_0460: ldc.i4.m1 IL_0461: ldc.r4 300 IL_0466: ldc.i4.0 IL_0467: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_046C: br => Label84 IL_0471: Label26 IL_0471: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_0476: ldc.i4.s 20 IL_0478: ldc.i4.0 IL_0479: ldc.i4.1 IL_047A: ldc.r4 2000 IL_047F: ldc.i4.0 IL_0480: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_0485: br => Label85 IL_048A: Label27 IL_048A: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_048F: ldc.i4.0 IL_0490: ldc.i4.0 IL_0491: ldc.i4.m1 IL_0492: ldc.r4 300 IL_0497: ldc.i4.0 IL_0498: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_049D: br => Label86 IL_04A2: Label28 IL_04A2: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_04A7: ldc.i4.0 IL_04A8: ldc.i4.0 IL_04A9: ldc.i4.m1 IL_04AA: ldc.r4 300 IL_04AF: ldc.i4.0 IL_04B0: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_04B5: br => Label87 IL_04BA: Label29 IL_04BA: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_04BF: ldc.i4.0 IL_04C0: ldc.i4.0 IL_04C1: ldc.i4.m1 IL_04C2: ldc.r4 300 IL_04C7: ldc.i4.0 IL_04C8: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_04CD: br => Label88 IL_04D2: Label30 IL_04D2: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_04D7: ldc.i4.0 IL_04D8: ldc.i4.0 IL_04D9: ldc.i4.m1 IL_04DA: ldc.r4 300 IL_04DF: ldc.i4.0 IL_04E0: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_04E5: br => Label89 IL_04EA: Label31 IL_04EA: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_04EF: ldc.i4.0 IL_04F0: ldc.i4.0 IL_04F1: ldc.i4.m1 IL_04F2: ldc.r4 300 IL_04F7: ldc.i4.0 IL_04F8: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_04FD: br => Label90 IL_0502: Label32 IL_0502: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_0507: ldc.i4.s 12 IL_0509: ldc.i4.s 17 IL_050B: ldc.i4.1 IL_050C: ldc.r4 2000 IL_0511: ldc.i4.0 IL_0512: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_0517: br => Label91 IL_051C: Label33 IL_051C: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_0521: ldc.i4.0 IL_0522: ldc.i4.0 IL_0523: ldc.i4.m1 IL_0524: ldc.r4 300 IL_0529: ldc.i4.0 IL_052A: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_052F: br => Label92 IL_0534: Label34 IL_0534: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_0539: ldc.i4.s 19 IL_053B: ldc.i4.s 28 IL_053D: ldc.i4.1 IL_053E: ldc.r4 500 IL_0543: ldc.i4.0 IL_0544: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_0549: br => Label93 IL_054E: Label35 IL_054E: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_0553: ldc.i4.0 IL_0554: ldc.i4.0 IL_0555: ldc.i4.m1 IL_0556: ldc.r4 300 IL_055B: ldc.i4.0 IL_055C: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_0561: br => Label94 IL_0566: Label36 IL_0566: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_056B: ldc.i4.0 IL_056C: ldc.i4.0 IL_056D: ldc.i4.m1 IL_056E: ldc.r4 300 IL_0573: ldc.i4.0 IL_0574: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_0579: br => Label95 IL_057E: Label37 IL_057E: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_0583: ldc.i4.0 IL_0584: ldc.i4.0 IL_0585: ldc.i4.m1 IL_0586: ldc.r4 300 IL_058B: ldc.i4.0 IL_058C: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_0591: br => Label96 IL_0596: Label38 IL_0596: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_059B: ldc.i4.0 IL_059C: ldc.i4.0 IL_059D: ldc.i4.m1 IL_059E: ldc.r4 300 IL_05A3: ldc.i4.0 IL_05A4: callvirt System.Void CoverageManager::SetMode(Service service, SubService subService, Level level, System.Single fadeLength, System.Boolean invertDirection) IL_05A9: br => Label97 IL_05AE: // end original IL_05AE: Label39 IL_05AE: Label40 IL_05AE: Label43 IL_05AE: Label50 IL_05AE: Label51 IL_05AE: Label52 IL_05AE: Label53 IL_05AE: Label54 IL_05AE: Label55 IL_05AE: Label56 IL_05AE: Label57 IL_05AE: Label58 IL_05AE: Label59 IL_05AE: Label60 IL_05AE: Label61 IL_05AE: Label62 IL_05AE: Label71 IL_05AE: Label72 IL_05AE: Label73 IL_05AE: Label74 IL_05AE: Label75 IL_05AE: Label76 IL_05AE: Label79 IL_05AE: Label82 IL_05AE: Label83 IL_05AE: Label84 IL_05AE: Label85 IL_05AE: Label86 IL_05AE: Label87 IL_05AE: Label88 IL_05AE: Label89 IL_05AE: Label90 IL_05AE: Label91 IL_05AE: Label92 IL_05AE: Label93 IL_05AE: Label94 IL_05AE: Label95 IL_05AE: Label96 IL_05AE: Label97 IL_05AE: ret DONE ### Patch: virtual System.Void DefaultTool::OnToolGUI(UnityEngine.Event e) ### Replacement: static System.Void DefaultTool::DefaultTool.OnToolGUI_Patch1(DefaultTool this, UnityEngine.Event e) IL_0000: Local var 0: InstanceID IL_0000: Local var 1: UnityEngine.Vector3 IL_0000: Local var 2: System.UInt16 IL_0000: Local var 3: BuildingInfo IL_0000: Local var 4: System.Int32 IL_0000: Local var 5: PrefabInfo IL_0000: Local var 6: InstanceID IL_0000: Local var 7: System.UInt16 IL_0000: Local var 8: System.UInt16 IL_0000: Local var 9: System.UInt16 IL_0000: Local var 10: System.UInt16 IL_0000: Local var 11: System.UInt16 IL_0000: Local var 12: System.String IL_0000: Local var 13: BuildingManager IL_0000: Local var 14: BuildingInfo IL_0000: Local var 15: System.String IL_0000: Local var 16: VehicleManager IL_0000: Local var 17: VehicleInfo IL_0000: Local var 18: System.String IL_0000: Local var 19: VehicleManager IL_0000: Local var 20: VehicleInfo IL_0000: Local var 21: System.String IL_0000: Local var 22: CitizenManager IL_0000: Local var 23: CitizenInfo IL_0000: Local var 24: System.String IL_0000: Local var 25: TransportManager IL_0000: Local var 26: TransportInfo IL_0000: Local var 27: System.String IL_0000: Local var 28: UnityEngine.Vector3 IL_0000: Local var 29: UnityEngine.Quaternion IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Color IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldfld ToolController ToolBase::m_toolController IL_0006: callvirt System.Boolean ToolController::get_IsInsideUI() IL_000B: brtrue => Label0 IL_0010: ldarg.1 IL_0011: callvirt UnityEngine.EventType UnityEngine.Event::get_type() IL_0016: brtrue => Label1 IL_001B: ldarg.0 IL_001C: ldflda InstanceID DefaultTool::m_hoverInstance IL_0021: call System.UInt16 InstanceID::get_NetNode() IL_0026: brfalse => Label2 IL_002B: ldarg.0 IL_002C: ldfld System.Int32 DefaultTool::m_subHoverIndex IL_0031: brfalse => Label3 IL_0036: ldarg.1 IL_0037: callvirt System.Int32 UnityEngine.Event::get_button() IL_003C: brtrue => Label4 IL_0041: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0046: ldarg.0 IL_0047: ldftn System.Void DefaultTool::m__0() IL_004D: newobj System.Void System.Action::.ctor(System.Object object, System.IntPtr method) IL_0052: callvirt AsyncAction SimulationManager::AddAction(System.Action action) IL_0057: pop IL_0058: Label4 IL_0058: br => Label5 IL_005D: Label2 IL_005D: Label3 IL_005D: ldarg.0 IL_005E: ldflda InstanceID DefaultTool::m_hoverInstance IL_0063: call System.UInt16 InstanceID::get_NetSegment() IL_0068: brfalse => Label6 IL_006D: ldarg.0 IL_006E: ldfld System.Int32 DefaultTool::m_subHoverIndex IL_0073: brfalse => Label7 IL_0078: ldarg.1 IL_0079: callvirt System.Int32 UnityEngine.Event::get_button() IL_007E: brtrue => Label8 IL_0083: ldarg.0 IL_0084: ldfld System.Int32 DefaultTool::m_subHoverIndex IL_0089: ldc.i4.m1 IL_008A: bne.un => Label9 IL_008F: call static InstanceManager ColossalFramework.Singleton`1::get_instance() IL_0094: ldarg.0 IL_0095: ldfld InstanceID DefaultTool::m_hoverInstance IL_009A: callvirt System.Boolean InstanceManager::SelectInstance(InstanceID id) IL_009F: pop IL_00A0: br => Label10 IL_00A5: Label9 IL_00A5: ldarg.0 IL_00A6: ldc.i4.2 IL_00A7: conv.i8 IL_00A8: stfld ToolErrors DefaultTool::m_selectErrors IL_00AD: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_00B2: ldarg.0 IL_00B3: call System.Collections.IEnumerator DefaultTool::StartMoving() IL_00B8: callvirt AsyncTask SimulationManager::AddAction(System.Collections.IEnumerator action) IL_00BD: pop IL_00BE: Label8 IL_00BE: Label10 IL_00BE: br => Label11 IL_00C3: Label6 IL_00C3: Label7 IL_00C3: ldarg.0 IL_00C4: ldfld ToolController ToolBase::m_toolController IL_00C9: ldfld Availability ToolController::m_mode IL_00CE: ldc.i4.6 IL_00CF: and IL_00D0: brfalse => Label12 IL_00D5: ldarg.0 IL_00D6: ldflda InstanceID DefaultTool::m_hoverInstance IL_00DB: call System.Boolean InstanceID::get_IsEmpty() IL_00E0: brtrue => Label13 IL_00E5: ldarg.1 IL_00E6: callvirt System.Int32 UnityEngine.Event::get_button() IL_00EB: brtrue => Label14 IL_00F0: ldarg.0 IL_00F1: ldc.i4.2 IL_00F2: conv.i8 IL_00F3: stfld ToolErrors DefaultTool::m_selectErrors IL_00F8: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_00FD: ldarg.0 IL_00FE: call System.Collections.IEnumerator DefaultTool::StartMoving() IL_0103: callvirt AsyncTask SimulationManager::AddAction(System.Collections.IEnumerator action) IL_0108: pop IL_0109: br => Label15 IL_010E: Label14 IL_010E: ldarg.1 IL_010F: callvirt System.Int32 UnityEngine.Event::get_button() IL_0114: ldc.i4.1 IL_0115: bne.un => Label16 IL_011A: ldarg.0 IL_011B: ldc.i4.2 IL_011C: conv.i8 IL_011D: stfld ToolErrors DefaultTool::m_selectErrors IL_0122: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0127: ldarg.0 IL_0128: call System.Collections.IEnumerator DefaultTool::StartRotating() IL_012D: callvirt AsyncTask SimulationManager::AddAction(System.Collections.IEnumerator action) IL_0132: pop IL_0133: Label13 IL_0133: Label15 IL_0133: Label16 IL_0133: br => Label17 IL_0138: Label12 IL_0138: ldarg.1 IL_0139: callvirt System.Int32 UnityEngine.Event::get_button() IL_013E: brtrue => Label18 IL_0143: ldarg.0 IL_0144: ldfld ToolErrors DefaultTool::m_selectErrors IL_0149: ldc.i4.0 IL_014A: conv.i8 IL_014B: beq => Label19 IL_0150: ldarg.0 IL_0151: ldfld ToolErrors DefaultTool::m_selectErrors IL_0156: ldc.i4.1 IL_0157: conv.i8 IL_0158: bne.un => Label20 IL_015D: Label19 IL_015D: ldarg.0 IL_015E: ldfld InstanceID DefaultTool::m_hoverInstance IL_0163: stloc.0 IL_0164: ldarg.0 IL_0165: ldfld UnityEngine.Vector3 DefaultTool::m_mousePosition IL_016A: stloc.1 IL_016B: ldloca.s 0 (InstanceID) IL_016D: call System.UInt16 InstanceID::get_Building() IL_0172: stloc.2 IL_0173: ldloc.2 IL_0174: brfalse => Label21 IL_0179: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_017E: ldfld Array16`1 BuildingManager::m_buildings IL_0183: ldfld Building[] Array16`1::m_buffer IL_0188: ldloc.2 IL_0189: ldelema Building IL_018E: call BuildingInfo Building::get_Info() IL_0193: stloc.3 IL_0194: ldloc.3 IL_0195: ldnull IL_0196: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_019B: brfalse => Label22 IL_01A0: ldloc.3 IL_01A1: ldfld ItemClass BuildingInfo::m_class IL_01A6: ldfld Service ItemClass::m_service IL_01AB: ldc.i4.s 15 IL_01AD: bne.un => Label23 IL_01B2: ldarg.0 IL_01B3: dup IL_01B4: ldfld System.Int32 DefaultTool::m_freneticPlayer IL_01B9: ldc.i4.1 IL_01BA: add IL_01BB: dup IL_01BC: stloc.s 4 (System.Int32) IL_01BE: stfld System.Int32 DefaultTool::m_freneticPlayer IL_01C3: ldloc.s 4 (System.Int32) IL_01C5: ldc.i4.s 100 IL_01C7: bne.un => Label24 IL_01CC: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_01D1: ldfld SimulationMetaData SimulationManager::m_metaData IL_01D6: ldfld MetaBool SimulationMetaData::m_disableAchievements IL_01DB: ldc.i4.2 IL_01DC: beq => Label25 IL_01E1: ldstr "FreneticPlayer" IL_01E6: call static System.Void SteamHelper::UnlockAchievement(System.String achievementName) IL_01EB: Label24 IL_01EB: Label25 IL_01EB: br => Label26 IL_01F0: Label22 IL_01F0: Label23 IL_01F0: ldarg.0 IL_01F1: ldc.i4.0 IL_01F2: stfld System.Int32 DefaultTool::m_freneticPlayer IL_01F7: Label26 IL_01F7: br => Label27 IL_01FC: Label21 IL_01FC: ldarg.0 IL_01FD: ldc.i4.0 IL_01FE: stfld System.Int32 DefaultTool::m_freneticPlayer IL_0203: Label27 IL_0203: call static System.Void ColossalFramework.UI.UIInput::MouseUsed() IL_0208: ldloc.0 IL_0209: ldloc.1 IL_020A: call static System.Void DefaultTool::OpenWorldInfoPanel(InstanceID id, UnityEngine.Vector3 position) IL_020F: ldloca.s 0 (InstanceID) IL_0211: call System.UInt16 InstanceID::get_NetSegment() IL_0216: brfalse => Label28 IL_021B: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0220: ldsfld System.Action DefaultTool::<>f__am$cache0 IL_0225: brtrue => Label29 IL_022A: ldnull IL_022B: ldftn static System.Void DefaultTool::m__1() IL_0231: newobj System.Void System.Action::.ctor(System.Object object, System.IntPtr method) IL_0236: stsfld System.Action DefaultTool::<>f__am$cache0 IL_023B: Label29 IL_023B: ldsfld System.Action DefaultTool::<>f__am$cache0 IL_0240: callvirt AsyncAction SimulationManager::AddAction(System.Action action) IL_0245: pop IL_0246: br => Label30 IL_024B: Label28 IL_024B: ldloca.s 0 (InstanceID) IL_024D: call System.Boolean InstanceID::get_IsEmpty() IL_0252: brtrue => Label31 IL_0257: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_025C: ldsfld System.Action DefaultTool::<>f__am$cache1 IL_0261: brtrue => Label32 IL_0266: ldnull IL_0267: ldftn static System.Void DefaultTool::m__2() IL_026D: newobj System.Void System.Action::.ctor(System.Object object, System.IntPtr method) IL_0272: stsfld System.Action DefaultTool::<>f__am$cache1 IL_0277: Label32 IL_0277: ldsfld System.Action DefaultTool::<>f__am$cache1 IL_027C: callvirt AsyncAction SimulationManager::AddAction(System.Action action) IL_0281: pop IL_0282: Label30 IL_0282: Label31 IL_0282: call static System.Boolean UnityEngine.Application::get_isEditor() IL_0287: brfalse => Label33 IL_028C: ldloc.0 IL_028D: call static PrefabInfo InstanceManager::GetPrefabInfo(InstanceID id) IL_0292: stloc.s 5 (PrefabInfo) IL_0294: ldloc.s 5 (PrefabInfo) IL_0296: ldnull IL_0297: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_029C: brfalse => Label34 IL_02A1: ldc.i4.1 IL_02A2: ldloc.s 5 (PrefabInfo) IL_02A4: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject() IL_02A9: callvirt System.String UnityEngine.Object::get_name() IL_02AE: ldloc.s 5 (PrefabInfo) IL_02B0: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject() IL_02B5: call static System.Void ColossalFramework.CODebugBase`1::Log(LogChannel ll, System.String msg, UnityEngine.Object obj) IL_02BA: Label20 IL_02BA: Label33 IL_02BA: Label34 IL_02BA: ldarg.0 IL_02BB: ldfld ToolController ToolBase::m_toolController IL_02C0: ldfld Availability ToolController::m_mode IL_02C5: ldc.i4.s 16 IL_02C7: and IL_02C8: brfalse => Label35 IL_02CD: ldarg.0 IL_02CE: ldflda InstanceID DefaultTool::m_hoverInstance IL_02D3: call System.UInt16 InstanceID::get_Disaster() IL_02D8: brfalse => Label36 IL_02DD: call static SelectingDisasterPanel SelectingDisasterPanel::get_instance() IL_02E2: ldfld EffectItemDisaster SelectingDisasterPanel::m_currentEffectItem IL_02E7: ldnull IL_02E8: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_02ED: brfalse => Label37 IL_02F2: call static SelectingDisasterPanel SelectingDisasterPanel::get_instance() IL_02F7: ldarg.0 IL_02F8: ldfld InstanceID DefaultTool::m_hoverInstance IL_02FD: callvirt System.Void SelectingDisasterPanel::SelectDisaster(InstanceID id) IL_0302: Label37 IL_0302: ldarg.0 IL_0303: ldc.r4 0.2 IL_0308: stfld System.Single DefaultTool::m_holdTimer IL_030D: Label35 IL_030D: Label36 IL_030D: br => Label38 IL_0312: Label18 IL_0312: ldarg.1 IL_0313: callvirt System.Int32 UnityEngine.Event::get_button() IL_0318: ldc.i4.1 IL_0319: bne.un => Label39 IL_031E: ldarg.0 IL_031F: ldfld ToolController ToolBase::m_toolController IL_0324: ldfld Availability ToolController::m_mode IL_0329: ldc.i4.s 16 IL_032B: and IL_032C: brfalse => Label40 IL_0331: ldarg.0 IL_0332: ldflda InstanceID DefaultTool::m_hoverInstance IL_0337: call System.UInt16 InstanceID::get_Disaster() IL_033C: brfalse => Label41 IL_0341: ldarg.0 IL_0342: ldc.i4.2 IL_0343: conv.i8 IL_0344: stfld ToolErrors DefaultTool::m_selectErrors IL_0349: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_034E: ldarg.0 IL_034F: call System.Collections.IEnumerator DefaultTool::StartRotating() IL_0354: callvirt AsyncTask SimulationManager::AddAction(System.Collections.IEnumerator action) IL_0359: pop IL_035A: Label5 IL_035A: Label11 IL_035A: Label17 IL_035A: Label38 IL_035A: Label39 IL_035A: Label40 IL_035A: Label41 IL_035A: br => Label42 IL_035F: Label0 IL_035F: Label1 IL_035F: ldarg.1 IL_0360: callvirt UnityEngine.EventType UnityEngine.Event::get_type() IL_0365: ldc.i4.1 IL_0366: bne.un => Label43 IL_036B: ldarg.0 IL_036C: ldflda InstanceID DefaultTool::m_hoverInstance IL_0371: call System.UInt16 InstanceID::get_NetSegment() IL_0376: brfalse => Label44 IL_037B: ldarg.0 IL_037C: ldfld System.Int32 DefaultTool::m_subHoverIndex IL_0381: ldc.i4.0 IL_0382: ble => Label45 IL_0387: ldarg.1 IL_0388: callvirt System.Int32 UnityEngine.Event::get_button() IL_038D: brtrue => Label46 IL_0392: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0397: ldarg.0 IL_0398: call System.Collections.IEnumerator DefaultTool::EndMoving() IL_039D: callvirt AsyncTask SimulationManager::AddAction(System.Collections.IEnumerator action) IL_03A2: pop IL_03A3: Label46 IL_03A3: br => Label47 IL_03A8: Label44 IL_03A8: Label45 IL_03A8: ldarg.0 IL_03A9: ldfld ToolController ToolBase::m_toolController IL_03AE: ldfld Availability ToolController::m_mode IL_03B3: ldc.i4.6 IL_03B4: and IL_03B5: brfalse => Label48 IL_03BA: ldarg.1 IL_03BB: callvirt System.Int32 UnityEngine.Event::get_button() IL_03C0: brtrue => Label49 IL_03C5: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_03CA: ldarg.0 IL_03CB: call System.Collections.IEnumerator DefaultTool::EndMoving() IL_03D0: callvirt AsyncTask SimulationManager::AddAction(System.Collections.IEnumerator action) IL_03D5: pop IL_03D6: br => Label50 IL_03DB: Label49 IL_03DB: ldarg.1 IL_03DC: callvirt System.Int32 UnityEngine.Event::get_button() IL_03E1: ldc.i4.1 IL_03E2: bne.un => Label51 IL_03E7: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_03EC: ldarg.0 IL_03ED: call System.Collections.IEnumerator DefaultTool::EndRotating() IL_03F2: callvirt AsyncTask SimulationManager::AddAction(System.Collections.IEnumerator action) IL_03F7: pop IL_03F8: Label50 IL_03F8: Label51 IL_03F8: br => Label52 IL_03FD: Label48 IL_03FD: ldarg.0 IL_03FE: ldfld ToolController ToolBase::m_toolController IL_0403: ldfld Availability ToolController::m_mode IL_0408: ldc.i4.s 16 IL_040A: and IL_040B: brfalse => Label53 IL_0410: ldarg.1 IL_0411: callvirt System.Int32 UnityEngine.Event::get_button() IL_0416: brtrue => Label54 IL_041B: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0420: ldarg.0 IL_0421: call System.Collections.IEnumerator DefaultTool::EndMoving() IL_0426: callvirt AsyncTask SimulationManager::AddAction(System.Collections.IEnumerator action) IL_042B: pop IL_042C: ldarg.0 IL_042D: ldc.r4 0 IL_0432: stfld System.Single DefaultTool::m_holdTimer IL_0437: br => Label55 IL_043C: Label54 IL_043C: ldarg.1 IL_043D: callvirt System.Int32 UnityEngine.Event::get_button() IL_0442: ldc.i4.1 IL_0443: bne.un => Label56 IL_0448: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_044D: ldarg.0 IL_044E: call System.Collections.IEnumerator DefaultTool::EndRotating() IL_0453: callvirt AsyncTask SimulationManager::AddAction(System.Collections.IEnumerator action) IL_0458: pop IL_0459: Label42 IL_0459: Label43 IL_0459: Label47 IL_0459: Label52 IL_0459: Label53 IL_0459: Label55 IL_0459: Label56 IL_0459: ldarg.0 IL_045A: ldfld ToolController ToolBase::m_toolController IL_045F: ldfld DeveloperUI ToolController::m_developerUI IL_0464: ldnull IL_0465: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_046A: brfalse => Label57 IL_046F: ldarg.0 IL_0470: ldfld ToolController ToolBase::m_toolController IL_0475: ldfld DeveloperUI ToolController::m_developerUI IL_047A: callvirt System.Boolean UnityEngine.Behaviour::get_enabled() IL_047F: brfalse => Label58 IL_0484: call static System.Boolean UnityEngine.Cursor::get_visible() IL_0489: brfalse => Label59 IL_048E: ldarg.0 IL_048F: ldfld InstanceID DefaultTool::m_hoverInstance IL_0494: stloc.s 6 (InstanceID) IL_0496: ldloca.s 6 (InstanceID) IL_0498: call System.UInt16 InstanceID::get_Building() IL_049D: stloc.s 7 (System.UInt16) IL_049F: ldloca.s 6 (InstanceID) IL_04A1: call System.UInt16 InstanceID::get_Vehicle() IL_04A6: stloc.s 8 (System.UInt16) IL_04A8: ldloca.s 6 (InstanceID) IL_04AA: call System.UInt16 InstanceID::get_ParkedVehicle() IL_04AF: stloc.s 9 (System.UInt16) IL_04B1: ldloca.s 6 (InstanceID) IL_04B3: call System.UInt16 InstanceID::get_CitizenInstance() IL_04B8: stloc.s 10 (System.UInt16) IL_04BA: ldloca.s 6 (InstanceID) IL_04BC: call System.UInt16 InstanceID::get_TransportLine() IL_04C1: stloc.s 11 (System.UInt16) IL_04C3: ldnull IL_04C4: stloc.s 12 (System.String) IL_04C6: ldloc.s 7 (System.UInt16) IL_04C8: brfalse => Label60 IL_04CD: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_04D2: stloc.s 13 (BuildingManager) IL_04D4: ldloc.s 13 (BuildingManager) IL_04D6: ldfld Array16`1 BuildingManager::m_buildings IL_04DB: ldfld Building[] Array16`1::m_buffer IL_04E0: ldloc.s 7 (System.UInt16) IL_04E2: ldelema Building IL_04E7: ldfld Flags Building::m_flags IL_04EC: ldc.i4.1 IL_04ED: and IL_04EE: brfalse => Label61 IL_04F3: ldloc.s 13 (BuildingManager) IL_04F5: ldfld Array16`1 BuildingManager::m_buildings IL_04FA: ldfld Building[] Array16`1::m_buffer IL_04FF: ldloc.s 7 (System.UInt16) IL_0501: ldelema Building IL_0506: call BuildingInfo Building::get_Info() IL_050B: stloc.s 14 (BuildingInfo) IL_050D: ldloc.s 14 (BuildingInfo) IL_050F: ldnull IL_0510: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_0515: brfalse => Label62 IL_051A: ldstr "{0} ({1})" IL_051F: ldc.i4.2 IL_0520: newarr System.Object IL_0525: dup IL_0526: ldc.i4.0 IL_0527: ldloc.s 14 (BuildingInfo) IL_0529: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject() IL_052E: callvirt System.String UnityEngine.Object::get_name() IL_0533: stelem.ref IL_0534: dup IL_0535: ldc.i4.1 IL_0536: ldloc.s 7 (System.UInt16) IL_0538: box System.UInt16 IL_053D: stelem.ref IL_053E: call static System.String StringUtils::SafeFormat(System.String format, System.Object[] args) IL_0543: stloc.s 12 (System.String) IL_0545: ldloc.s 14 (BuildingInfo) IL_0547: ldfld BuildingAI BuildingInfo::m_buildingAI IL_054C: ldloc.s 7 (System.UInt16) IL_054E: ldloc.s 13 (BuildingManager) IL_0550: ldfld Array16`1 BuildingManager::m_buildings IL_0555: ldfld Building[] Array16`1::m_buffer IL_055A: ldloc.s 7 (System.UInt16) IL_055C: ldelema Building IL_0561: callvirt virtual System.String BuildingAI::GetDebugString(System.UInt16 buildingID, Building& data) IL_0566: stloc.s 15 (System.String) IL_0568: ldloc.s 15 (System.String) IL_056A: brfalse => Label63 IL_056F: ldloc.s 12 (System.String) IL_0571: ldstr "\n" IL_0576: ldloc.s 15 (System.String) IL_0578: call static System.String System.String::Concat(System.String str0, System.String str1, System.String str2) IL_057D: stloc.s 12 (System.String) IL_057F: Label61 IL_057F: Label62 IL_057F: Label63 IL_057F: br => Label64 IL_0584: Label60 IL_0584: ldloc.s 8 (System.UInt16) IL_0586: brfalse => Label65 IL_058B: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_0590: stloc.s 16 (VehicleManager) IL_0592: ldloc.s 16 (VehicleManager) IL_0594: ldfld Array16`1 VehicleManager::m_vehicles IL_0599: ldfld Vehicle[] Array16`1::m_buffer IL_059E: ldloc.s 8 (System.UInt16) IL_05A0: ldelema Vehicle IL_05A5: ldfld Flags Vehicle::m_flags IL_05AA: ldc.i4.1 IL_05AB: and IL_05AC: brfalse => Label66 IL_05B1: ldloc.s 16 (VehicleManager) IL_05B3: ldfld Array16`1 VehicleManager::m_vehicles IL_05B8: ldfld Vehicle[] Array16`1::m_buffer IL_05BD: ldloc.s 8 (System.UInt16) IL_05BF: ldelema Vehicle IL_05C4: call VehicleInfo Vehicle::get_Info() IL_05C9: stloc.s 17 (VehicleInfo) IL_05CB: ldloc.s 17 (VehicleInfo) IL_05CD: ldnull IL_05CE: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_05D3: brfalse => Label67 IL_05D8: ldstr "{0} ({1})\n{2}\n{3}" IL_05DD: ldc.i4.4 IL_05DE: newarr System.Object IL_05E3: dup IL_05E4: ldc.i4.0 IL_05E5: ldloc.s 17 (VehicleInfo) IL_05E7: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject() IL_05EC: callvirt System.String UnityEngine.Object::get_name() IL_05F1: stelem.ref IL_05F2: dup IL_05F3: ldc.i4.1 IL_05F4: ldloc.s 8 (System.UInt16) IL_05F6: box System.UInt16 IL_05FB: stelem.ref IL_05FC: dup IL_05FD: ldc.i4.2 IL_05FE: ldloc.s 16 (VehicleManager) IL_0600: ldfld Array16`1 VehicleManager::m_vehicles IL_0605: ldfld Vehicle[] Array16`1::m_buffer IL_060A: ldloc.s 8 (System.UInt16) IL_060C: ldelema Vehicle IL_0611: ldfld Flags Vehicle::m_flags IL_0616: box Vehicle+Flags IL_061B: stelem.ref IL_061C: dup IL_061D: ldc.i4.3 IL_061E: ldloc.s 16 (VehicleManager) IL_0620: ldfld Array16`1 VehicleManager::m_vehicles IL_0625: ldfld Vehicle[] Array16`1::m_buffer IL_062A: ldloc.s 8 (System.UInt16) IL_062C: ldelema Vehicle IL_0631: ldfld Flags2 Vehicle::m_flags2 IL_0636: box Vehicle+Flags2 IL_063B: stelem.ref IL_063C: call static System.String StringUtils::SafeFormat(System.String format, System.Object[] args) IL_0641: stloc.s 12 (System.String) IL_0643: ldloc.s 17 (VehicleInfo) IL_0645: ldfld VehicleAI VehicleInfo::m_vehicleAI IL_064A: ldloc.s 8 (System.UInt16) IL_064C: ldloc.s 16 (VehicleManager) IL_064E: ldfld Array16`1 VehicleManager::m_vehicles IL_0653: ldfld Vehicle[] Array16`1::m_buffer IL_0658: ldloc.s 8 (System.UInt16) IL_065A: ldelema Vehicle IL_065F: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16 vehicleID, Vehicle& data) IL_0664: stloc.s 18 (System.String) IL_0666: ldloc.s 18 (System.String) IL_0668: brfalse => Label68 IL_066D: ldloc.s 12 (System.String) IL_066F: ldstr "\n" IL_0674: ldloc.s 18 (System.String) IL_0676: call static System.String System.String::Concat(System.String str0, System.String str1, System.String str2) IL_067B: stloc.s 12 (System.String) IL_067D: Label66 IL_067D: Label67 IL_067D: Label68 IL_067D: br => Label69 IL_0682: Label65 IL_0682: ldloc.s 9 (System.UInt16) IL_0684: brfalse => Label70 IL_0689: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_068E: stloc.s 19 (VehicleManager) IL_0690: ldloc.s 19 (VehicleManager) IL_0692: ldfld Array16`1 VehicleManager::m_parkedVehicles IL_0697: ldfld VehicleParked[] Array16`1::m_buffer IL_069C: ldloc.s 9 (System.UInt16) IL_069E: ldelema VehicleParked IL_06A3: ldfld System.UInt16 VehicleParked::m_flags IL_06A8: ldc.i4.1 IL_06A9: and IL_06AA: brfalse => Label71 IL_06AF: ldloc.s 19 (VehicleManager) IL_06B1: ldfld Array16`1 VehicleManager::m_parkedVehicles IL_06B6: ldfld VehicleParked[] Array16`1::m_buffer IL_06BB: ldloc.s 9 (System.UInt16) IL_06BD: ldelema VehicleParked IL_06C2: call VehicleInfo VehicleParked::get_Info() IL_06C7: stloc.s 20 (VehicleInfo) IL_06C9: ldloc.s 20 (VehicleInfo) IL_06CB: ldnull IL_06CC: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_06D1: brfalse => Label72 IL_06D6: ldstr "{0} ({1})\n{2}" IL_06DB: ldc.i4.3 IL_06DC: newarr System.Object IL_06E1: dup IL_06E2: ldc.i4.0 IL_06E3: ldloc.s 20 (VehicleInfo) IL_06E5: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject() IL_06EA: callvirt System.String UnityEngine.Object::get_name() IL_06EF: stelem.ref IL_06F0: dup IL_06F1: ldc.i4.1 IL_06F2: ldloc.s 9 (System.UInt16) IL_06F4: box System.UInt16 IL_06F9: stelem.ref IL_06FA: dup IL_06FB: ldc.i4.2 IL_06FC: ldloc.s 19 (VehicleManager) IL_06FE: ldfld Array16`1 VehicleManager::m_parkedVehicles IL_0703: ldfld VehicleParked[] Array16`1::m_buffer IL_0708: ldloc.s 9 (System.UInt16) IL_070A: ldelema VehicleParked IL_070F: ldfld System.UInt16 VehicleParked::m_flags IL_0714: box System.UInt16 IL_0719: stelem.ref IL_071A: call static System.String StringUtils::SafeFormat(System.String format, System.Object[] args) IL_071F: stloc.s 12 (System.String) IL_0721: ldloc.s 20 (VehicleInfo) IL_0723: ldfld VehicleAI VehicleInfo::m_vehicleAI IL_0728: ldloc.s 9 (System.UInt16) IL_072A: ldloc.s 19 (VehicleManager) IL_072C: ldfld Array16`1 VehicleManager::m_parkedVehicles IL_0731: ldfld VehicleParked[] Array16`1::m_buffer IL_0736: ldloc.s 9 (System.UInt16) IL_0738: ldelema VehicleParked IL_073D: callvirt virtual System.String VehicleAI::GetDebugString(System.UInt16 parkedVehicleID, VehicleParked& data) IL_0742: stloc.s 21 (System.String) IL_0744: ldloc.s 21 (System.String) IL_0746: brfalse => Label73 IL_074B: ldloc.s 12 (System.String) IL_074D: ldstr "\n" IL_0752: ldloc.s 21 (System.String) IL_0754: call static System.String System.String::Concat(System.String str0, System.String str1, System.String str2) IL_0759: stloc.s 12 (System.String) IL_075B: Label71 IL_075B: Label72 IL_075B: Label73 IL_075B: br => Label74 IL_0760: Label70 IL_0760: ldloc.s 10 (System.UInt16) IL_0762: brfalse => Label75 IL_0767: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_076C: stloc.s 22 (CitizenManager) IL_076E: ldloc.s 22 (CitizenManager) IL_0770: ldfld Array16`1 CitizenManager::m_instances IL_0775: ldfld CitizenInstance[] Array16`1::m_buffer IL_077A: ldloc.s 10 (System.UInt16) IL_077C: ldelema CitizenInstance IL_0781: ldfld Flags CitizenInstance::m_flags IL_0786: ldc.i4.1 IL_0787: and IL_0788: brfalse => Label76 IL_078D: ldloc.s 22 (CitizenManager) IL_078F: ldfld Array16`1 CitizenManager::m_instances IL_0794: ldfld CitizenInstance[] Array16`1::m_buffer IL_0799: ldloc.s 10 (System.UInt16) IL_079B: ldelema CitizenInstance IL_07A0: call CitizenInfo CitizenInstance::get_Info() IL_07A5: stloc.s 23 (CitizenInfo) IL_07A7: ldloc.s 23 (CitizenInfo) IL_07A9: ldnull IL_07AA: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_07AF: brfalse => Label77 IL_07B4: ldstr "{0} ({1})" IL_07B9: ldc.i4.2 IL_07BA: newarr System.Object IL_07BF: dup IL_07C0: ldc.i4.0 IL_07C1: ldloc.s 23 (CitizenInfo) IL_07C3: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject() IL_07C8: callvirt System.String UnityEngine.Object::get_name() IL_07CD: stelem.ref IL_07CE: dup IL_07CF: ldc.i4.1 IL_07D0: ldloc.s 10 (System.UInt16) IL_07D2: box System.UInt16 IL_07D7: stelem.ref IL_07D8: call static System.String StringUtils::SafeFormat(System.String format, System.Object[] args) IL_07DD: stloc.s 12 (System.String) IL_07DF: ldloc.s 23 (CitizenInfo) IL_07E1: ldfld CitizenAI CitizenInfo::m_citizenAI IL_07E6: ldloc.s 10 (System.UInt16) IL_07E8: ldloc.s 22 (CitizenManager) IL_07EA: ldfld Array16`1 CitizenManager::m_instances IL_07EF: ldfld CitizenInstance[] Array16`1::m_buffer IL_07F4: ldloc.s 10 (System.UInt16) IL_07F6: ldelema CitizenInstance IL_07FB: callvirt virtual System.String CitizenAI::GetDebugString(System.UInt16 instanceID, CitizenInstance& data) IL_0800: stloc.s 24 (System.String) IL_0802: ldloc.s 24 (System.String) IL_0804: brfalse => Label78 IL_0809: ldloc.s 12 (System.String) IL_080B: ldstr "\n" IL_0810: ldloc.s 24 (System.String) IL_0812: call static System.String System.String::Concat(System.String str0, System.String str1, System.String str2) IL_0817: stloc.s 12 (System.String) IL_0819: Label76 IL_0819: Label77 IL_0819: Label78 IL_0819: br => Label79 IL_081E: Label75 IL_081E: ldloc.s 11 (System.UInt16) IL_0820: brfalse => Label80 IL_0825: call static TransportManager ColossalFramework.Singleton`1::get_instance() IL_082A: stloc.s 25 (TransportManager) IL_082C: ldloc.s 25 (TransportManager) IL_082E: ldfld Array16`1 TransportManager::m_lines IL_0833: ldfld TransportLine[] Array16`1::m_buffer IL_0838: ldloc.s 11 (System.UInt16) IL_083A: ldelema TransportLine IL_083F: ldfld Flags TransportLine::m_flags IL_0844: ldc.i4.1 IL_0845: and IL_0846: brfalse => Label81 IL_084B: ldloc.s 25 (TransportManager) IL_084D: ldfld Array16`1 TransportManager::m_lines IL_0852: ldfld TransportLine[] Array16`1::m_buffer IL_0857: ldloc.s 11 (System.UInt16) IL_0859: ldelema TransportLine IL_085E: call TransportInfo TransportLine::get_Info() IL_0863: stloc.s 26 (TransportInfo) IL_0865: ldloc.s 26 (TransportInfo) IL_0867: ldnull IL_0868: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_086D: brfalse => Label82 IL_0872: ldstr "{0} ({1})" IL_0877: ldc.i4.2 IL_0878: newarr System.Object IL_087D: dup IL_087E: ldc.i4.0 IL_087F: ldloc.s 26 (TransportInfo) IL_0881: callvirt UnityEngine.GameObject UnityEngine.Component::get_gameObject() IL_0886: callvirt System.String UnityEngine.Object::get_name() IL_088B: stelem.ref IL_088C: dup IL_088D: ldc.i4.1 IL_088E: ldloc.s 11 (System.UInt16) IL_0890: box System.UInt16 IL_0895: stelem.ref IL_0896: call static System.String StringUtils::SafeFormat(System.String format, System.Object[] args) IL_089B: stloc.s 12 (System.String) IL_089D: ldloc.s 25 (TransportManager) IL_089F: ldfld Array16`1 TransportManager::m_lines IL_08A4: ldfld TransportLine[] Array16`1::m_buffer IL_08A9: ldloc.s 11 (System.UInt16) IL_08AB: ldelema TransportLine IL_08B0: ldloc.s 11 (System.UInt16) IL_08B2: call System.String TransportLine::GetDebugString(System.UInt16 lineID) IL_08B7: stloc.s 27 (System.String) IL_08B9: ldloc.s 27 (System.String) IL_08BB: brfalse => Label83 IL_08C0: ldloc.s 12 (System.String) IL_08C2: ldstr "\n" IL_08C7: ldloc.s 27 (System.String) IL_08C9: call static System.String System.String::Concat(System.String str0, System.String str1, System.String str2) IL_08CE: stloc.s 12 (System.String) IL_08D0: Label64 IL_08D0: Label69 IL_08D0: Label74 IL_08D0: Label79 IL_08D0: Label80 IL_08D0: Label81 IL_08D0: Label82 IL_08D0: Label83 IL_08D0: ldloc.s 12 (System.String) IL_08D2: brfalse => Label84 IL_08D7: ldloc.s 6 (InstanceID) IL_08D9: ldloca.s 28 (UnityEngine.Vector3) IL_08DB: ldloca.s 29 (UnityEngine.Quaternion) IL_08DD: ldloca.s 30 (UnityEngine.Vector3) IL_08DF: call static System.Boolean InstanceManager::GetPosition(InstanceID id, UnityEngine.Vector3& position, UnityEngine.Quaternion& rotation, UnityEngine.Vector3& size) IL_08E4: brtrue => Label85 IL_08E9: ldarg.0 IL_08EA: ldfld UnityEngine.Vector3 DefaultTool::m_mousePosition IL_08EF: stloc.s 28 (UnityEngine.Vector3) IL_08F1: Label85 IL_08F1: call static UnityEngine.Camera UnityEngine.Camera::get_main() IL_08F6: ldloc.s 28 (UnityEngine.Vector3) IL_08F8: callvirt UnityEngine.Vector3 UnityEngine.Camera::WorldToScreenPoint(UnityEngine.Vector3 position) IL_08FD: stloc.s 31 (UnityEngine.Vector3) IL_08FF: ldloca.s 31 (UnityEngine.Vector3) IL_0901: call static System.Int32 UnityEngine.Screen::get_height() IL_0906: conv.r4 IL_0907: ldloca.s 31 (UnityEngine.Vector3) IL_0909: ldfld System.Single UnityEngine.Vector3::y IL_090E: sub IL_090F: stfld System.Single UnityEngine.Vector3::y IL_0914: call static UnityEngine.Color UnityEngine.GUI::get_color() IL_0919: stloc.s 32 (UnityEngine.Color) IL_091B: call static UnityEngine.Color UnityEngine.Color::get_cyan() IL_0920: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color value) IL_0925: ldloca.s 31 (UnityEngine.Vector3) IL_0927: ldfld System.Single UnityEngine.Vector3::x IL_092C: ldloca.s 31 (UnityEngine.Vector3) IL_092E: ldfld System.Single UnityEngine.Vector3::y IL_0933: ldc.r4 500 IL_0938: ldc.r4 500 IL_093D: newobj System.Void UnityEngine.Rect::.ctor(System.Single x, System.Single y, System.Single width, System.Single height) IL_0942: ldloc.s 12 (System.String) IL_0944: call static UnityEngine.Color UnityEngine.Color::get_black() IL_0949: call static UnityEngine.Color UnityEngine.Color::get_cyan() IL_094E: call static UnityEngine.GUISkin UnityEngine.GUI::get_skin() IL_0953: callvirt UnityEngine.GUIStyle UnityEngine.GUISkin::get_label() IL_0958: ldc.r4 2 IL_095D: call static System.Void DeveloperUI::LabelOutline(UnityEngine.Rect rect, System.String text, UnityEngine.Color outColor, UnityEngine.Color inColor, UnityEngine.GUIStyle style, System.Single offset) IL_0962: ldloc.s 32 (UnityEngine.Color) IL_0964: call static System.Void UnityEngine.GUI::set_color(UnityEngine.Color value) IL_0969: // end original IL_0969: Label57 IL_0969: Label58 IL_0969: Label59 IL_0969: Label84 IL_0969: ldarg 1 IL_096D: call static System.Void TrafficManager.Patch._DefaultTool.OnToolGUIPatch::Postfix(UnityEngine.Event e) IL_0972: ret DONE ### Patch: virtual System.Void DefaultTool::RenderOverlay(CameraInfo cameraInfo) ### Replacement: static System.Void DefaultTool::DefaultTool.RenderOverlay_Patch1(DefaultTool this, CameraInfo cameraInfo) IL_0000: Local var 0: InstanceID IL_0000: Local var 1: InstanceID IL_0000: Local var 2: PropInfo IL_0000: Local var 3: UnityEngine.Color IL_0000: Local var 4: ColossalFramework.Math.Randomizer IL_0000: Local var 5: System.Single IL_0000: Local var 6: TreeInfo IL_0000: Local var 7: UnityEngine.Color IL_0000: Local var 8: ColossalFramework.Math.Randomizer IL_0000: Local var 9: System.Single IL_0000: Local var 10: BuildingInfo IL_0000: Local var 11: UnityEngine.Color IL_0000: Local var 12: UnityEngine.Color IL_0000: Local var 13: ColossalFramework.Math.Segment3 IL_0000: Local var 14: UnityEngine.Matrix4x4 IL_0000: Local var 15: System.Int32 IL_0000: Local var 16: BuildingInfo IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: ColossalFramework.Math.Segment3 IL_0000: Local var 20: DisasterInfo IL_0000: Local var 21: UnityEngine.Color IL_0000: Local var 22: InstanceType IL_0000: Local var 23: System.UInt16 IL_0000: Local var 24: NetManager IL_0000: Local var 25: BuildingManager IL_0000: Local var 26: BuildingInfo IL_0000: Local var 27: UnityEngine.Color IL_0000: Local var 28: System.Single IL_0000: Local var 29: System.UInt16 IL_0000: Local var 30: System.Int32 IL_0000: Local var 31: System.Int32 IL_0000: Local var 32: System.UInt16 IL_0000: Local var 33: System.UInt16 IL_0000: Local var 34: System.Int32 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: System.Single IL_0000: Local var 37: System.Int32 IL_0000: Local var 38: System.UInt16 IL_0000: Local var 39: BuildingInfo IL_0000: Local var 40: System.Int32 IL_0000: Local var 41: UnityEngine.Vector3 IL_0000: Local var 42: System.Single IL_0000: Local var 43: System.UInt16 IL_0000: Local var 44: System.UInt16 IL_0000: Local var 45: NetManager IL_0000: Local var 46: UnityEngine.Color IL_0000: Local var 47: System.Single IL_0000: Local var 48: System.Boolean IL_0000: Local var 49: RenderManager IL_0000: Local var 50: System.UInt32 IL_0000: Local var 51: InstanceManager/NameData IL_0000: Local var 52: UnityEngine.Vector3 IL_0000: Local var 53: UnityEngine.Matrix4x4 IL_0000: Local var 54: System.Single IL_0000: Local var 55: NetInfo IL_0000: Local var 56: ColossalFramework.Math.Bezier3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: System.Single IL_0000: Local var 60: UnityEngine.Vector2 IL_0000: Local var 61: System.Single IL_0000: Local var 62: System.Single IL_0000: Local var 63: System.Single IL_0000: Local var 64: System.Single IL_0000: Local var 65: System.Single IL_0000: Local var 66: System.UInt32 IL_0000: Local var 67: TreeManager IL_0000: Local var 68: TreeInfo IL_0000: Local var 69: UnityEngine.Vector3 IL_0000: Local var 70: ColossalFramework.Math.Randomizer IL_0000: Local var 71: System.Single IL_0000: Local var 72: UnityEngine.Color IL_0000: Local var 73: System.Single IL_0000: Local var 74: System.UInt16 IL_0000: Local var 75: PropManager IL_0000: Local var 76: PropInfo IL_0000: Local var 77: UnityEngine.Vector3 IL_0000: Local var 78: System.Single IL_0000: Local var 79: ColossalFramework.Math.Randomizer IL_0000: Local var 80: System.Single IL_0000: Local var 81: UnityEngine.Color IL_0000: Local var 82: System.Single IL_0000: Local var 83: System.UInt16 IL_0000: Local var 84: VehicleManager IL_0000: Local var 85: UnityEngine.Color IL_0000: Local var 86: System.Single IL_0000: Local var 87: System.UInt16 IL_0000: Local var 88: VehicleManager IL_0000: Local var 89: UnityEngine.Color IL_0000: Local var 90: System.Single IL_0000: Local var 91: System.UInt16 IL_0000: Local var 92: CitizenManager IL_0000: Local var 93: UnityEngine.Color IL_0000: Local var 94: System.Single IL_0000: Local var 95: System.Byte IL_0000: Local var 96: DistrictManager IL_0000: Local var 97: UnityEngine.Color IL_0000: Local var 98: System.Single IL_0000: Local var 99: System.Byte IL_0000: Local var 100: DistrictManager IL_0000: Local var 101: UnityEngine.Color IL_0000: Local var 102: System.Single IL_0000: Local var 103: System.UInt16 IL_0000: Local var 104: DisasterManager IL_0000: Local var 105: DisasterInfo IL_0000: Local var 106: UnityEngine.Vector3 IL_0000: Local var 107: System.Single IL_0000: Local var 108: UnityEngine.Color IL_0000: Local var 109: System.Single IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldfld InstanceID DefaultTool::m_hoverInstance IL_0006: stloc.0 IL_0007: ldarg.0 IL_0008: ldfld InstanceID DefaultTool::m_hoverInstance2 IL_000D: stloc.1 IL_000E: ldarg.0 IL_000F: ldfld ToolController ToolBase::m_toolController IL_0014: ldfld Availability ToolController::m_mode IL_0019: ldc.i4.6 IL_001A: and IL_001B: brfalse => Label0 IL_0020: ldarg.0 IL_0021: ldfld ToolController ToolBase::m_toolController IL_0026: callvirt System.Boolean ToolController::get_IsInsideUI() IL_002B: brtrue => Label1 IL_0030: call static System.Boolean UnityEngine.Cursor::get_visible() IL_0035: brtrue => Label2 IL_003A: Label1 IL_003A: ldarg.0 IL_003B: ldarg.1 IL_003C: call virtual System.Void ToolBase::RenderOverlay(CameraInfo cameraInfo) IL_0041: br => Label94 IL_0046: Label2 IL_0046: ldloca.s 0 (InstanceID) IL_0048: call System.Boolean InstanceID::get_IsEmpty() IL_004D: brtrue => Label3 IL_0052: ldarg.0 IL_0053: ldfld System.Boolean DefaultTool::m_mouseLeftDown IL_0058: brtrue => Label4 IL_005D: ldarg.0 IL_005E: ldfld System.Boolean DefaultTool::m_mouseRightDown IL_0063: brfalse => Label5 IL_0068: Label4 IL_0068: ldloca.s 0 (InstanceID) IL_006A: call System.UInt16 InstanceID::get_Prop() IL_006F: brfalse => Label6 IL_0074: call static PropManager ColossalFramework.Singleton`1::get_instance() IL_0079: ldfld Array16`1 PropManager::m_props IL_007E: ldfld PropInstance[] Array16`1::m_buffer IL_0083: ldloca.s 0 (InstanceID) IL_0085: call System.UInt16 InstanceID::get_Prop() IL_008A: ldelema PropInstance IL_008F: call PropInfo PropInstance::get_Info() IL_0094: stloc.2 IL_0095: ldloc.2 IL_0096: ldnull IL_0097: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_009C: brfalse => Label7 IL_00A1: ldarg.0 IL_00A2: ldc.i4.0 IL_00A3: ldarg.0 IL_00A4: ldfld ToolErrors DefaultTool::m_selectErrors IL_00A9: ldc.i4.0 IL_00AA: conv.i8 IL_00AB: ceq IL_00AD: ldc.i4.0 IL_00AE: ceq IL_00B0: call UnityEngine.Color ToolBase::GetToolColor(System.Boolean warning, System.Boolean error) IL_00B5: stloc.3 IL_00B6: ldarg.0 IL_00B7: ldfld ToolController ToolBase::m_toolController IL_00BC: ldarg.1 IL_00BD: ldloc.3 IL_00BE: ldloc.3 IL_00BF: ldloc.3 IL_00C0: ldloc.3 IL_00C1: ldc.i4.0 IL_00C2: ldc.i4.0 IL_00C3: callvirt System.Void ToolController::RenderColliding(CameraInfo cameraInfo, UnityEngine.Color importantSegmentColor, UnityEngine.Color nonImportantSegmentColor, UnityEngine.Color importantBuildingColor, UnityEngine.Color nonImportantBuildingColor, System.UInt16 ignoreSegment, System.UInt16 ignoreBuilding) IL_00C8: ldloca.s 4 (ColossalFramework.Math.Randomizer) IL_00CA: ldloca.s 0 (InstanceID) IL_00CC: call System.UInt16 InstanceID::get_Prop() IL_00D1: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_00D6: ldloc.2 IL_00D7: ldfld System.Single PropInfo::m_minScale IL_00DC: ldloca.s 4 (ColossalFramework.Math.Randomizer) IL_00DE: ldc.i4 10000 IL_00E3: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_00E8: conv.r4 IL_00E9: ldloc.2 IL_00EA: ldfld System.Single PropInfo::m_maxScale IL_00EF: ldloc.2 IL_00F0: ldfld System.Single PropInfo::m_minScale IL_00F5: sub IL_00F6: mul IL_00F7: ldc.r4 0.0001 IL_00FC: mul IL_00FD: add IL_00FE: stloc.s 5 (System.Single) IL_0100: ldarg.1 IL_0101: ldloc.2 IL_0102: ldarg.0 IL_0103: ldfld UnityEngine.Vector3 DefaultTool::m_mousePosition IL_0108: ldloc.s 5 (System.Single) IL_010A: ldarg.0 IL_010B: ldfld System.Single DefaultTool::m_angle IL_0110: ldloc.3 IL_0111: call static System.Void PropTool::RenderOverlay(CameraInfo cameraInfo, PropInfo info, UnityEngine.Vector3 position, System.Single scale, System.Single angle, UnityEngine.Color color) IL_0116: Label7 IL_0116: br => Label8 IL_011B: Label6 IL_011B: ldloca.s 0 (InstanceID) IL_011D: call System.UInt32 InstanceID::get_Tree() IL_0122: brfalse => Label9 IL_0127: call static TreeManager ColossalFramework.Singleton`1::get_instance() IL_012C: ldfld Array32`1 TreeManager::m_trees IL_0131: ldfld TreeInstance[] Array32`1::m_buffer IL_0136: ldloca.s 0 (InstanceID) IL_0138: call System.UInt32 InstanceID::get_Tree() IL_013D: conv.u IL_013E: ldelema TreeInstance IL_0143: call TreeInfo TreeInstance::get_Info() IL_0148: stloc.s 6 (TreeInfo) IL_014A: ldloc.s 6 (TreeInfo) IL_014C: ldnull IL_014D: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_0152: brfalse => Label10 IL_0157: ldarg.0 IL_0158: ldc.i4.0 IL_0159: ldarg.0 IL_015A: ldfld ToolErrors DefaultTool::m_selectErrors IL_015F: ldc.i4.0 IL_0160: conv.i8 IL_0161: ceq IL_0163: ldc.i4.0 IL_0164: ceq IL_0166: call UnityEngine.Color ToolBase::GetToolColor(System.Boolean warning, System.Boolean error) IL_016B: stloc.s 7 (UnityEngine.Color) IL_016D: ldarg.0 IL_016E: ldfld ToolController ToolBase::m_toolController IL_0173: ldarg.1 IL_0174: ldloc.s 7 (UnityEngine.Color) IL_0176: ldloc.s 7 (UnityEngine.Color) IL_0178: ldloc.s 7 (UnityEngine.Color) IL_017A: ldloc.s 7 (UnityEngine.Color) IL_017C: ldc.i4.0 IL_017D: ldc.i4.0 IL_017E: callvirt System.Void ToolController::RenderColliding(CameraInfo cameraInfo, UnityEngine.Color importantSegmentColor, UnityEngine.Color nonImportantSegmentColor, UnityEngine.Color importantBuildingColor, UnityEngine.Color nonImportantBuildingColor, System.UInt16 ignoreSegment, System.UInt16 ignoreBuilding) IL_0183: ldloca.s 8 (ColossalFramework.Math.Randomizer) IL_0185: ldloca.s 0 (InstanceID) IL_0187: call System.UInt32 InstanceID::get_Tree() IL_018C: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed) IL_0191: ldloc.s 6 (TreeInfo) IL_0193: ldfld System.Single TreeInfo::m_minScale IL_0198: ldloca.s 8 (ColossalFramework.Math.Randomizer) IL_019A: ldc.i4 10000 IL_019F: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_01A4: conv.r4 IL_01A5: ldloc.s 6 (TreeInfo) IL_01A7: ldfld System.Single TreeInfo::m_maxScale IL_01AC: ldloc.s 6 (TreeInfo) IL_01AE: ldfld System.Single TreeInfo::m_minScale IL_01B3: sub IL_01B4: mul IL_01B5: ldc.r4 0.0001 IL_01BA: mul IL_01BB: add IL_01BC: stloc.s 9 (System.Single) IL_01BE: ldarg.1 IL_01BF: ldloc.s 6 (TreeInfo) IL_01C1: ldarg.0 IL_01C2: ldfld UnityEngine.Vector3 DefaultTool::m_mousePosition IL_01C7: ldloc.s 9 (System.Single) IL_01C9: ldloc.s 7 (UnityEngine.Color) IL_01CB: call static System.Void TreeTool::RenderOverlay(CameraInfo cameraInfo, TreeInfo info, UnityEngine.Vector3 position, System.Single scale, UnityEngine.Color color) IL_01D0: Label10 IL_01D0: br => Label11 IL_01D5: Label9 IL_01D5: ldloca.s 0 (InstanceID) IL_01D7: call System.UInt16 InstanceID::get_Building() IL_01DC: brfalse => Label12 IL_01E1: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_01E6: ldfld Array16`1 BuildingManager::m_buildings IL_01EB: ldfld Building[] Array16`1::m_buffer IL_01F0: ldloca.s 0 (InstanceID) IL_01F2: call System.UInt16 InstanceID::get_Building() IL_01F7: ldelema Building IL_01FC: call BuildingInfo Building::get_Info() IL_0201: stloc.s 10 (BuildingInfo) IL_0203: ldarg.0 IL_0204: ldc.i4.0 IL_0205: ldarg.0 IL_0206: ldfld ToolErrors DefaultTool::m_selectErrors IL_020B: ldc.i4.0 IL_020C: conv.i8 IL_020D: ceq IL_020F: ldc.i4.0 IL_0210: ceq IL_0212: call UnityEngine.Color ToolBase::GetToolColor(System.Boolean warning, System.Boolean error) IL_0217: stloc.s 11 (UnityEngine.Color) IL_0219: ldarg.0 IL_021A: ldc.i4.1 IL_021B: ldc.i4.0 IL_021C: call UnityEngine.Color ToolBase::GetToolColor(System.Boolean warning, System.Boolean error) IL_0221: stloc.s 12 (UnityEngine.Color) IL_0223: ldarg.0 IL_0224: ldfld ToolController ToolBase::m_toolController IL_0229: ldarg.1 IL_022A: ldloc.s 11 (UnityEngine.Color) IL_022C: ldloc.s 12 (UnityEngine.Color) IL_022E: ldloc.s 11 (UnityEngine.Color) IL_0230: ldloc.s 12 (UnityEngine.Color) IL_0232: ldc.i4.0 IL_0233: ldc.i4.0 IL_0234: callvirt System.Void ToolController::RenderColliding(CameraInfo cameraInfo, UnityEngine.Color importantSegmentColor, UnityEngine.Color nonImportantSegmentColor, UnityEngine.Color importantBuildingColor, UnityEngine.Color nonImportantBuildingColor, System.UInt16 ignoreSegment, System.UInt16 ignoreBuilding) IL_0239: ldloc.s 10 (BuildingInfo) IL_023B: ldfld BuildingAI BuildingInfo::m_buildingAI IL_0240: ldarg.1 IL_0241: ldloc.s 11 (UnityEngine.Color) IL_0243: ldarg.0 IL_0244: ldfld UnityEngine.Vector3 DefaultTool::m_mousePosition IL_0249: ldarg.0 IL_024A: ldfld System.Single DefaultTool::m_angle IL_024F: ldc.r4 0.01745329 IL_0254: mul IL_0255: ldloca.s 13 (ColossalFramework.Math.Segment3) IL_0257: initobj ColossalFramework.Math.Segment3 IL_025D: ldloc.s 13 (ColossalFramework.Math.Segment3) IL_025F: callvirt virtual System.Void BuildingAI::RenderBuildOverlay(CameraInfo cameraInfo, UnityEngine.Color color, UnityEngine.Vector3 position, System.Single angle, ColossalFramework.Math.Segment3 connectionSegment) IL_0264: ldarg.1 IL_0265: ldloc.s 10 (BuildingInfo) IL_0267: ldc.i4.0 IL_0268: ldarg.0 IL_0269: ldfld UnityEngine.Vector3 DefaultTool::m_mousePosition IL_026E: ldarg.0 IL_026F: ldfld System.Single DefaultTool::m_angle IL_0274: ldc.r4 0.01745329 IL_0279: mul IL_027A: ldloc.s 11 (UnityEngine.Color) IL_027C: ldc.i4.1 IL_027D: call static System.Void BuildingTool::RenderOverlay(CameraInfo cameraInfo, BuildingInfo info, System.Int32 length, UnityEngine.Vector3 position, System.Single angle, UnityEngine.Color color, System.Boolean radius) IL_0282: ldloc.s 10 (BuildingInfo) IL_0284: ldfld SubInfo[] BuildingInfo::m_subBuildings IL_0289: brfalse => Label13 IL_028E: ldloc.s 10 (BuildingInfo) IL_0290: ldfld SubInfo[] BuildingInfo::m_subBuildings IL_0295: ldlen IL_0296: conv.i4 IL_0297: brfalse => Label14 IL_029C: ldloca.s 14 (UnityEngine.Matrix4x4) IL_029E: initobj UnityEngine.Matrix4x4 IL_02A4: ldloca.s 14 (UnityEngine.Matrix4x4) IL_02A6: ldarg.0 IL_02A7: ldfld UnityEngine.Vector3 DefaultTool::m_mousePosition IL_02AC: ldarg.0 IL_02AD: ldfld System.Single DefaultTool::m_angle IL_02B2: call static UnityEngine.Vector3 UnityEngine.Vector3::get_down() IL_02B7: call static UnityEngine.Quaternion UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis) IL_02BC: call static UnityEngine.Vector3 UnityEngine.Vector3::get_one() IL_02C1: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3 pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s) IL_02C6: ldc.i4.0 IL_02C7: stloc.s 15 (System.Int32) IL_02C9: br => Label15 IL_02CE: Label16 IL_02CE: ldloc.s 10 (BuildingInfo) IL_02D0: ldfld SubInfo[] BuildingInfo::m_subBuildings IL_02D5: ldloc.s 15 (System.Int32) IL_02D7: ldelem.ref IL_02D8: ldfld BuildingInfo SubInfo::m_buildingInfo IL_02DD: stloc.s 16 (BuildingInfo) IL_02DF: ldloca.s 14 (UnityEngine.Matrix4x4) IL_02E1: ldloc.s 10 (BuildingInfo) IL_02E3: ldfld SubInfo[] BuildingInfo::m_subBuildings IL_02E8: ldloc.s 15 (System.Int32) IL_02EA: ldelem.ref IL_02EB: ldfld UnityEngine.Vector3 SubInfo::m_position IL_02F0: call UnityEngine.Vector3 UnityEngine.Matrix4x4::MultiplyPoint(UnityEngine.Vector3 v) IL_02F5: stloc.s 17 (UnityEngine.Vector3) IL_02F7: ldloc.s 10 (BuildingInfo) IL_02F9: ldfld SubInfo[] BuildingInfo::m_subBuildings IL_02FE: ldloc.s 15 (System.Int32) IL_0300: ldelem.ref IL_0301: ldfld System.Single SubInfo::m_angle IL_0306: ldarg.0 IL_0307: ldfld System.Single DefaultTool::m_angle IL_030C: add IL_030D: ldc.r4 0.01745329 IL_0312: mul IL_0313: stloc.s 18 (System.Single) IL_0315: ldloc.s 16 (BuildingInfo) IL_0317: ldfld BuildingAI BuildingInfo::m_buildingAI IL_031C: ldarg.1 IL_031D: ldloc.s 11 (UnityEngine.Color) IL_031F: ldloc.s 17 (UnityEngine.Vector3) IL_0321: ldloc.s 18 (System.Single) IL_0323: ldloca.s 19 (ColossalFramework.Math.Segment3) IL_0325: initobj ColossalFramework.Math.Segment3 IL_032B: ldloc.s 19 (ColossalFramework.Math.Segment3) IL_032D: callvirt virtual System.Void BuildingAI::RenderBuildOverlay(CameraInfo cameraInfo, UnityEngine.Color color, UnityEngine.Vector3 position, System.Single angle, ColossalFramework.Math.Segment3 connectionSegment) IL_0332: ldarg.1 IL_0333: ldloc.s 16 (BuildingInfo) IL_0335: ldc.i4.0 IL_0336: ldloc.s 17 (UnityEngine.Vector3) IL_0338: ldloc.s 18 (System.Single) IL_033A: ldloc.s 11 (UnityEngine.Color) IL_033C: ldc.i4.1 IL_033D: call static System.Void BuildingTool::RenderOverlay(CameraInfo cameraInfo, BuildingInfo info, System.Int32 length, UnityEngine.Vector3 position, System.Single angle, UnityEngine.Color color, System.Boolean radius) IL_0342: ldloc.s 15 (System.Int32) IL_0344: ldc.i4.1 IL_0345: add IL_0346: stloc.s 15 (System.Int32) IL_0348: Label15 IL_0348: ldloc.s 15 (System.Int32) IL_034A: ldloc.s 10 (BuildingInfo) IL_034C: ldfld SubInfo[] BuildingInfo::m_subBuildings IL_0351: ldlen IL_0352: conv.i4 IL_0353: blt => Label16 IL_0358: Label8 IL_0358: Label11 IL_0358: Label12 IL_0358: Label13 IL_0358: Label14 IL_0358: ldarg.0 IL_0359: ldarg.1 IL_035A: call virtual System.Void ToolBase::RenderOverlay(CameraInfo cameraInfo) IL_035F: br => Label95 IL_0364: Label3 IL_0364: Label5 IL_0364: br => Label17 IL_0369: Label0 IL_0369: ldarg.0 IL_036A: ldfld ToolController ToolBase::m_toolController IL_036F: ldfld Availability ToolController::m_mode IL_0374: ldc.i4.s 16 IL_0376: and IL_0377: brfalse => Label18 IL_037C: ldloca.s 0 (InstanceID) IL_037E: call System.UInt16 InstanceID::get_Disaster() IL_0383: brfalse => Label19 IL_0388: ldarg.0 IL_0389: ldfld System.Boolean DefaultTool::m_mouseLeftDown IL_038E: brtrue => Label20 IL_0393: ldarg.0 IL_0394: ldfld System.Boolean DefaultTool::m_mouseRightDown IL_0399: brfalse => Label21 IL_039E: Label20 IL_039E: call static DisasterManager ColossalFramework.Singleton`1::get_instance() IL_03A3: ldfld FastList`1 DisasterManager::m_disasters IL_03A8: ldfld DisasterData[] FastList`1::m_buffer IL_03AD: ldloca.s 0 (InstanceID) IL_03AF: call System.UInt16 InstanceID::get_Disaster() IL_03B4: ldelema DisasterData IL_03B9: call DisasterInfo DisasterData::get_Info() IL_03BE: stloc.s 20 (DisasterInfo) IL_03C0: ldloc.s 20 (DisasterInfo) IL_03C2: ldnull IL_03C3: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_03C8: brfalse => Label22 IL_03CD: ldarg.0 IL_03CE: ldc.i4.0 IL_03CF: ldarg.0 IL_03D0: ldfld ToolErrors DefaultTool::m_selectErrors IL_03D5: ldc.i4.0 IL_03D6: conv.i8 IL_03D7: ceq IL_03D9: ldc.i4.0 IL_03DA: ceq IL_03DC: call UnityEngine.Color ToolBase::GetToolColor(System.Boolean warning, System.Boolean error) IL_03E1: stloc.s 21 (UnityEngine.Color) IL_03E3: ldarg.1 IL_03E4: ldloc.s 20 (DisasterInfo) IL_03E6: ldarg.0 IL_03E7: ldfld UnityEngine.Vector3 DefaultTool::m_mousePosition IL_03EC: ldarg.0 IL_03ED: ldfld System.Single DefaultTool::m_angle IL_03F2: ldc.r4 0.01745329 IL_03F7: mul IL_03F8: ldloc.s 21 (UnityEngine.Color) IL_03FA: call static System.Void DisasterTool::RenderOverlay(CameraInfo cameraInfo, DisasterInfo info, UnityEngine.Vector3 position, System.Single angle, UnityEngine.Color color) IL_03FF: Label22 IL_03FF: ldarg.0 IL_0400: ldarg.1 IL_0401: call virtual System.Void ToolBase::RenderOverlay(CameraInfo cameraInfo) IL_0406: br => Label96 IL_040B: Label17 IL_040B: Label18 IL_040B: Label19 IL_040B: Label21 IL_040B: ldarg.0 IL_040C: ldfld ToolController ToolBase::m_toolController IL_0411: callvirt System.Boolean ToolController::get_IsInsideUI() IL_0416: brtrue => Label23 IL_041B: call static System.Boolean UnityEngine.Cursor::get_visible() IL_0420: brtrue => Label24 IL_0425: Label23 IL_0425: ldarg.0 IL_0426: ldarg.1 IL_0427: call virtual System.Void ToolBase::RenderOverlay(CameraInfo cameraInfo) IL_042C: br => Label97 IL_0431: Label24 IL_0431: ldloca.s 0 (InstanceID) IL_0433: call InstanceType InstanceID::get_Type() IL_0438: stloc.s 22 (InstanceType) IL_043A: ldloc.s 22 (InstanceType) IL_043C: ldc.i4.1 IL_043D: sub IL_043E: switch => Labels25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44 IL_0493: br => Label45 IL_0498: Label25 IL_0498: ldloca.s 0 (InstanceID) IL_049A: call System.UInt16 InstanceID::get_Building() IL_049F: stloc.s 23 (System.UInt16) IL_04A1: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_04A6: stloc.s 24 (NetManager) IL_04A8: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_04AD: stloc.s 25 (BuildingManager) IL_04AF: ldloc.s 25 (BuildingManager) IL_04B1: ldfld Array16`1 BuildingManager::m_buildings IL_04B6: ldfld Building[] Array16`1::m_buffer IL_04BB: ldloc.s 23 (System.UInt16) IL_04BD: ldelema Building IL_04C2: call BuildingInfo Building::get_Info() IL_04C7: stloc.s 26 (BuildingInfo) IL_04C9: ldarg.0 IL_04CA: ldc.i4.0 IL_04CB: ldarg.0 IL_04CC: ldfld ToolErrors DefaultTool::m_selectErrors IL_04D1: ldc.i4.0 IL_04D2: conv.i8 IL_04D3: ceq IL_04D5: ldc.i4.0 IL_04D6: ceq IL_04D8: call UnityEngine.Color ToolBase::GetToolColor(System.Boolean warning, System.Boolean error) IL_04DD: stloc.s 27 (UnityEngine.Color) IL_04DF: ldc.r4 1 IL_04E4: stloc.s 28 (System.Single) IL_04E6: ldloc.s 26 (BuildingInfo) IL_04E8: ldloca.s 28 (System.Single) IL_04EA: call static System.Void BuildingTool::CheckOverlayAlpha(BuildingInfo info, System.Single& alpha) IL_04EF: ldloc.s 25 (BuildingManager) IL_04F1: ldfld Array16`1 BuildingManager::m_buildings IL_04F6: ldfld Building[] Array16`1::m_buffer IL_04FB: ldloc.s 23 (System.UInt16) IL_04FD: ldelema Building IL_0502: ldfld System.UInt16 Building::m_netNode IL_0507: stloc.s 29 (System.UInt16) IL_0509: ldc.i4.0 IL_050A: stloc.s 30 (System.Int32) IL_050C: br => Label46 IL_0511: Label54 IL_0511: ldc.i4.0 IL_0512: stloc.s 31 (System.Int32) IL_0514: br => Label47 IL_0519: Label51 IL_0519: ldloc.s 24 (NetManager) IL_051B: ldfld Array16`1 NetManager::m_nodes IL_0520: ldfld NetNode[] Array16`1::m_buffer IL_0525: ldloc.s 29 (System.UInt16) IL_0527: ldelema NetNode IL_052C: ldloc.s 31 (System.Int32) IL_052E: call System.UInt16 NetNode::GetSegment(System.Int32 index) IL_0533: stloc.s 32 (System.UInt16) IL_0535: ldloc.s 32 (System.UInt16) IL_0537: brfalse => Label48 IL_053C: ldloc.s 24 (NetManager) IL_053E: ldfld Array16`1 NetManager::m_segments IL_0543: ldfld NetSegment[] Array16`1::m_buffer IL_0548: ldloc.s 32 (System.UInt16) IL_054A: ldelema NetSegment IL_054F: ldfld System.UInt16 NetSegment::m_startNode IL_0554: ldloc.s 29 (System.UInt16) IL_0556: bne.un => Label49 IL_055B: ldloc.s 24 (NetManager) IL_055D: ldfld Array16`1 NetManager::m_segments IL_0562: ldfld NetSegment[] Array16`1::m_buffer IL_0567: ldloc.s 32 (System.UInt16) IL_0569: ldelema NetSegment IL_056E: ldfld Flags NetSegment::m_flags IL_0573: ldc.i4.s 32 IL_0575: and IL_0576: brfalse => Label50 IL_057B: ldloc.s 24 (NetManager) IL_057D: ldfld Array16`1 NetManager::m_segments IL_0582: ldfld NetSegment[] Array16`1::m_buffer IL_0587: ldloc.s 32 (System.UInt16) IL_0589: ldelema NetSegment IL_058E: ldloca.s 28 (System.Single) IL_0590: call static System.Void NetTool::CheckOverlayAlpha(NetSegment& segment, System.Single& alpha) IL_0595: Label48 IL_0595: Label49 IL_0595: Label50 IL_0595: ldloc.s 31 (System.Int32) IL_0597: ldc.i4.1 IL_0598: add IL_0599: stloc.s 31 (System.Int32) IL_059B: Label47 IL_059B: ldloc.s 31 (System.Int32) IL_059D: ldc.i4.8 IL_059E: blt => Label51 IL_05A3: ldloc.s 24 (NetManager) IL_05A5: ldfld Array16`1 NetManager::m_nodes IL_05AA: ldfld NetNode[] Array16`1::m_buffer IL_05AF: ldloc.s 29 (System.UInt16) IL_05B1: ldelema NetNode IL_05B6: ldfld System.UInt16 NetNode::m_nextBuildingNode IL_05BB: stloc.s 29 (System.UInt16) IL_05BD: ldloc.s 30 (System.Int32) IL_05BF: ldc.i4.1 IL_05C0: add IL_05C1: dup IL_05C2: stloc.s 30 (System.Int32) IL_05C4: ldc.i4 32768 IL_05C9: ble => Label52 IL_05CE: ldc.i4.1 IL_05CF: ldstr "Invalid list detected!\n" IL_05D4: call static System.String System.Environment::get_StackTrace() IL_05D9: call static System.String System.String::Concat(System.String str0, System.String str1) IL_05DE: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_05E3: br => Label53 IL_05E8: Label46 IL_05E8: Label52 IL_05E8: ldloc.s 29 (System.UInt16) IL_05EA: brtrue => Label54 IL_05EF: Label53 IL_05EF: ldloc.s 25 (BuildingManager) IL_05F1: ldfld Array16`1 BuildingManager::m_buildings IL_05F6: ldfld Building[] Array16`1::m_buffer IL_05FB: ldloc.s 23 (System.UInt16) IL_05FD: ldelema Building IL_0602: ldfld System.UInt16 Building::m_subBuilding IL_0607: stloc.s 33 (System.UInt16) IL_0609: ldc.i4.0 IL_060A: stloc.s 30 (System.Int32) IL_060C: br => Label55 IL_0611: Label58 IL_0611: ldloc.s 25 (BuildingManager) IL_0613: ldfld Array16`1 BuildingManager::m_buildings IL_0618: ldfld Building[] Array16`1::m_buffer IL_061D: ldloc.s 33 (System.UInt16) IL_061F: ldelema Building IL_0624: call BuildingInfo Building::get_Info() IL_0629: ldloca.s 28 (System.Single) IL_062B: call static System.Void BuildingTool::CheckOverlayAlpha(BuildingInfo info, System.Single& alpha) IL_0630: ldloc.s 25 (BuildingManager) IL_0632: ldfld Array16`1 BuildingManager::m_buildings IL_0637: ldfld Building[] Array16`1::m_buffer IL_063C: ldloc.s 33 (System.UInt16) IL_063E: ldelema Building IL_0643: ldfld System.UInt16 Building::m_subBuilding IL_0648: stloc.s 33 (System.UInt16) IL_064A: ldloc.s 30 (System.Int32) IL_064C: ldc.i4.1 IL_064D: add IL_064E: dup IL_064F: stloc.s 30 (System.Int32) IL_0651: ldc.i4 49152 IL_0656: ble => Label56 IL_065B: ldc.i4.1 IL_065C: ldstr "Invalid list detected!\n" IL_0661: call static System.String System.Environment::get_StackTrace() IL_0666: call static System.String System.String::Concat(System.String str0, System.String str1) IL_066B: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_0670: br => Label57 IL_0675: Label55 IL_0675: Label56 IL_0675: ldloc.s 33 (System.UInt16) IL_0677: brtrue => Label58 IL_067C: Label57 IL_067C: ldloca.s 27 (UnityEngine.Color) IL_067E: dup IL_067F: ldfld System.Single UnityEngine.Color::a IL_0684: ldloc.s 28 (System.Single) IL_0686: mul IL_0687: stfld System.Single UnityEngine.Color::a IL_068C: ldloc.s 25 (BuildingManager) IL_068E: ldfld Array16`1 BuildingManager::m_buildings IL_0693: ldfld Building[] Array16`1::m_buffer IL_0698: ldloc.s 23 (System.UInt16) IL_069A: ldelema Building IL_069F: call System.Int32 Building::get_Length() IL_06A4: stloc.s 34 (System.Int32) IL_06A6: ldloc.s 25 (BuildingManager) IL_06A8: ldfld Array16`1 BuildingManager::m_buildings IL_06AD: ldfld Building[] Array16`1::m_buffer IL_06B2: ldloc.s 23 (System.UInt16) IL_06B4: ldelema Building IL_06B9: ldfld UnityEngine.Vector3 Building::m_position IL_06BE: stloc.s 35 (UnityEngine.Vector3) IL_06C0: ldloc.s 25 (BuildingManager) IL_06C2: ldfld Array16`1 BuildingManager::m_buildings IL_06C7: ldfld Building[] Array16`1::m_buffer IL_06CC: ldloc.s 23 (System.UInt16) IL_06CE: ldelema Building IL_06D3: ldfld System.Single Building::m_angle IL_06D8: stloc.s 36 (System.Single) IL_06DA: ldarg.1 IL_06DB: ldloc.s 26 (BuildingInfo) IL_06DD: ldloc.s 34 (System.Int32) IL_06DF: ldloc.s 35 (UnityEngine.Vector3) IL_06E1: ldloc.s 36 (System.Single) IL_06E3: ldloc.s 27 (UnityEngine.Color) IL_06E5: ldc.i4.0 IL_06E6: call static System.Void BuildingTool::RenderOverlay(CameraInfo cameraInfo, BuildingInfo info, System.Int32 length, UnityEngine.Vector3 position, System.Single angle, UnityEngine.Color color, System.Boolean radius) IL_06EB: ldloc.s 25 (BuildingManager) IL_06ED: ldfld Array16`1 BuildingManager::m_buildings IL_06F2: ldfld Building[] Array16`1::m_buffer IL_06F7: ldloc.s 23 (System.UInt16) IL_06F9: ldelema Building IL_06FE: ldfld System.UInt16 Building::m_netNode IL_0703: stloc.s 29 (System.UInt16) IL_0705: ldc.i4.0 IL_0706: stloc.s 30 (System.Int32) IL_0708: br => Label59 IL_070D: Label67 IL_070D: ldc.i4.0 IL_070E: stloc.s 37 (System.Int32) IL_0710: br => Label60 IL_0715: Label64 IL_0715: ldloc.s 24 (NetManager) IL_0717: ldfld Array16`1 NetManager::m_nodes IL_071C: ldfld NetNode[] Array16`1::m_buffer IL_0721: ldloc.s 29 (System.UInt16) IL_0723: ldelema NetNode IL_0728: ldloc.s 37 (System.Int32) IL_072A: call System.UInt16 NetNode::GetSegment(System.Int32 index) IL_072F: stloc.s 38 (System.UInt16) IL_0731: ldloc.s 38 (System.UInt16) IL_0733: brfalse => Label61 IL_0738: ldloc.s 24 (NetManager) IL_073A: ldfld Array16`1 NetManager::m_segments IL_073F: ldfld NetSegment[] Array16`1::m_buffer IL_0744: ldloc.s 38 (System.UInt16) IL_0746: ldelema NetSegment IL_074B: ldfld System.UInt16 NetSegment::m_startNode IL_0750: ldloc.s 29 (System.UInt16) IL_0752: bne.un => Label62 IL_0757: ldloc.s 24 (NetManager) IL_0759: ldfld Array16`1 NetManager::m_segments IL_075E: ldfld NetSegment[] Array16`1::m_buffer IL_0763: ldloc.s 38 (System.UInt16) IL_0765: ldelema NetSegment IL_076A: ldfld Flags NetSegment::m_flags IL_076F: ldc.i4.s 32 IL_0771: and IL_0772: brfalse => Label63 IL_0777: ldarg.1 IL_0778: ldloc.s 24 (NetManager) IL_077A: ldfld Array16`1 NetManager::m_segments IL_077F: ldfld NetSegment[] Array16`1::m_buffer IL_0784: ldloc.s 38 (System.UInt16) IL_0786: ldelema NetSegment IL_078B: ldloc.s 27 (UnityEngine.Color) IL_078D: ldloc.s 27 (UnityEngine.Color) IL_078F: call static System.Void NetTool::RenderOverlay(CameraInfo cameraInfo, NetSegment& segment, UnityEngine.Color importantColor, UnityEngine.Color nonImportantColor) IL_0794: Label61 IL_0794: Label62 IL_0794: Label63 IL_0794: ldloc.s 37 (System.Int32) IL_0796: ldc.i4.1 IL_0797: add IL_0798: stloc.s 37 (System.Int32) IL_079A: Label60 IL_079A: ldloc.s 37 (System.Int32) IL_079C: ldc.i4.8 IL_079D: blt => Label64 IL_07A2: ldloc.s 24 (NetManager) IL_07A4: ldfld Array16`1 NetManager::m_nodes IL_07A9: ldfld NetNode[] Array16`1::m_buffer IL_07AE: ldloc.s 29 (System.UInt16) IL_07B0: ldelema NetNode IL_07B5: ldfld System.UInt16 NetNode::m_nextBuildingNode IL_07BA: stloc.s 29 (System.UInt16) IL_07BC: ldloc.s 30 (System.Int32) IL_07BE: ldc.i4.1 IL_07BF: add IL_07C0: dup IL_07C1: stloc.s 30 (System.Int32) IL_07C3: ldc.i4 32768 IL_07C8: ble => Label65 IL_07CD: ldc.i4.1 IL_07CE: ldstr "Invalid list detected!\n" IL_07D3: call static System.String System.Environment::get_StackTrace() IL_07D8: call static System.String System.String::Concat(System.String str0, System.String str1) IL_07DD: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_07E2: br => Label66 IL_07E7: Label59 IL_07E7: Label65 IL_07E7: ldloc.s 29 (System.UInt16) IL_07E9: brtrue => Label67 IL_07EE: Label66 IL_07EE: ldloc.s 25 (BuildingManager) IL_07F0: ldfld Array16`1 BuildingManager::m_buildings IL_07F5: ldfld Building[] Array16`1::m_buffer IL_07FA: ldloc.s 23 (System.UInt16) IL_07FC: ldelema Building IL_0801: ldfld System.UInt16 Building::m_subBuilding IL_0806: stloc.s 33 (System.UInt16) IL_0808: ldc.i4.0 IL_0809: stloc.s 30 (System.Int32) IL_080B: br => Label68 IL_0810: Label71 IL_0810: ldloc.s 25 (BuildingManager) IL_0812: ldfld Array16`1 BuildingManager::m_buildings IL_0817: ldfld Building[] Array16`1::m_buffer IL_081C: ldloc.s 33 (System.UInt16) IL_081E: ldelema Building IL_0823: call BuildingInfo Building::get_Info() IL_0828: stloc.s 39 (BuildingInfo) IL_082A: ldloc.s 25 (BuildingManager) IL_082C: ldfld Array16`1 BuildingManager::m_buildings IL_0831: ldfld Building[] Array16`1::m_buffer IL_0836: ldloc.s 33 (System.UInt16) IL_0838: ldelema Building IL_083D: call System.Int32 Building::get_Length() IL_0842: stloc.s 40 (System.Int32) IL_0844: ldloc.s 25 (BuildingManager) IL_0846: ldfld Array16`1 BuildingManager::m_buildings IL_084B: ldfld Building[] Array16`1::m_buffer IL_0850: ldloc.s 33 (System.UInt16) IL_0852: ldelema Building IL_0857: ldfld UnityEngine.Vector3 Building::m_position IL_085C: stloc.s 41 (UnityEngine.Vector3) IL_085E: ldloc.s 25 (BuildingManager) IL_0860: ldfld Array16`1 BuildingManager::m_buildings IL_0865: ldfld Building[] Array16`1::m_buffer IL_086A: ldloc.s 33 (System.UInt16) IL_086C: ldelema Building IL_0871: ldfld System.Single Building::m_angle IL_0876: stloc.s 42 (System.Single) IL_0878: ldarg.1 IL_0879: ldloc.s 39 (BuildingInfo) IL_087B: ldloc.s 40 (System.Int32) IL_087D: ldloc.s 41 (UnityEngine.Vector3) IL_087F: ldloc.s 42 (System.Single) IL_0881: ldloc.s 27 (UnityEngine.Color) IL_0883: ldc.i4.0 IL_0884: call static System.Void BuildingTool::RenderOverlay(CameraInfo cameraInfo, BuildingInfo info, System.Int32 length, UnityEngine.Vector3 position, System.Single angle, UnityEngine.Color color, System.Boolean radius) IL_0889: ldloc.s 25 (BuildingManager) IL_088B: ldfld Array16`1 BuildingManager::m_buildings IL_0890: ldfld Building[] Array16`1::m_buffer IL_0895: ldloc.s 33 (System.UInt16) IL_0897: ldelema Building IL_089C: ldfld System.UInt16 Building::m_subBuilding IL_08A1: stloc.s 33 (System.UInt16) IL_08A3: ldloc.s 30 (System.Int32) IL_08A5: ldc.i4.1 IL_08A6: add IL_08A7: dup IL_08A8: stloc.s 30 (System.Int32) IL_08AA: ldc.i4 49152 IL_08AF: ble => Label69 IL_08B4: ldc.i4.1 IL_08B5: ldstr "Invalid list detected!\n" IL_08BA: call static System.String System.Environment::get_StackTrace() IL_08BF: call static System.String System.String::Concat(System.String str0, System.String str1) IL_08C4: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_08C9: br => Label70 IL_08CE: Label68 IL_08CE: Label69 IL_08CE: ldloc.s 33 (System.UInt16) IL_08D0: brtrue => Label71 IL_08D5: Label70 IL_08D5: br => Label72 IL_08DA: Label30 IL_08DA: ldloca.s 0 (InstanceID) IL_08DC: call System.UInt16 InstanceID::get_NetSegment() IL_08E1: stloc.s 43 (System.UInt16) IL_08E3: ldloca.s 1 (InstanceID) IL_08E5: call System.UInt16 InstanceID::get_NetSegment() IL_08EA: stloc.s 44 (System.UInt16) IL_08EC: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_08F1: stloc.s 45 (NetManager) IL_08F3: ldarg.0 IL_08F4: ldc.i4.0 IL_08F5: ldarg.0 IL_08F6: ldfld ToolErrors DefaultTool::m_selectErrors IL_08FB: ldc.i4.0 IL_08FC: conv.i8 IL_08FD: ceq IL_08FF: ldc.i4.0 IL_0900: ceq IL_0902: call UnityEngine.Color ToolBase::GetToolColor(System.Boolean warning, System.Boolean error) IL_0907: stloc.s 46 (UnityEngine.Color) IL_0909: ldc.r4 1 IL_090E: stloc.s 47 (System.Single) IL_0910: ldarg.0 IL_0911: ldloca.s 48 (System.Boolean) IL_0913: callvirt virtual Flags DefaultTool::GetSegmentIgnoreFlags(System.Boolean& nameOnly) IL_0918: pop IL_0919: ldloc.s 48 (System.Boolean) IL_091B: brfalse => Label73 IL_0920: call static RenderManager ColossalFramework.Singleton`1::get_instance() IL_0925: stloc.s 49 (RenderManager) IL_0927: ldloc.s 49 (RenderManager) IL_0929: ldc.i4 49152 IL_092E: ldloc.s 43 (System.UInt16) IL_0930: add IL_0931: ldloca.s 50 (System.UInt32) IL_0933: callvirt System.Boolean RenderManager::GetInstanceIndex(System.UInt32 holder, System.UInt32& instanceIndex) IL_0938: brfalse => Label74 IL_093D: ldloc.s 49 (RenderManager) IL_093F: ldfld Instance[] RenderManager::m_instances IL_0944: ldloc.s 50 (System.UInt32) IL_0946: conv.u IL_0947: ldelema RenderManager+Instance IL_094C: ldfld NameData Instance::m_nameData IL_0951: stloc.s 51 (InstanceManager+NameData) IL_0953: ldloc.s 49 (RenderManager) IL_0955: ldfld Instance[] RenderManager::m_instances IL_095A: ldloc.s 50 (System.UInt32) IL_095C: conv.u IL_095D: ldelema RenderManager+Instance IL_0962: ldfld UnityEngine.Vector3 Instance::m_position IL_0967: stloc.s 52 (UnityEngine.Vector3) IL_0969: ldloc.s 49 (RenderManager) IL_096B: ldfld Instance[] RenderManager::m_instances IL_0970: ldloc.s 50 (System.UInt32) IL_0972: conv.u IL_0973: ldelema RenderManager+Instance IL_0978: ldfld UnityEngine.Matrix4x4 Instance::m_dataMatrix2 IL_097D: stloc.s 53 (UnityEngine.Matrix4x4) IL_097F: ldloc.s 52 (UnityEngine.Vector3) IL_0981: ldarg.1 IL_0982: ldfld UnityEngine.Vector3 CameraInfo::m_position IL_0987: call static System.Single UnityEngine.Vector3::Distance(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_098C: stloc.s 54 (System.Single) IL_098E: ldloc.s 51 (InstanceManager+NameData) IL_0990: brfalse => Label75 IL_0995: ldloc.s 54 (System.Single) IL_0997: ldc.r4 1000 IL_099C: bge.un => Label76 IL_09A1: ldloc.s 45 (NetManager) IL_09A3: ldfld Array16`1 NetManager::m_segments IL_09A8: ldfld NetSegment[] Array16`1::m_buffer IL_09AD: ldloc.s 43 (System.UInt16) IL_09AF: ldelema NetSegment IL_09B4: call NetInfo NetSegment::get_Info() IL_09B9: stloc.s 55 (NetInfo) IL_09BB: ldloca.s 56 (ColossalFramework.Math.Bezier3) IL_09BD: initobj ColossalFramework.Math.Bezier3 IL_09C3: ldloca.s 56 (ColossalFramework.Math.Bezier3) IL_09C5: ldloc.s 45 (NetManager) IL_09C7: ldfld Array16`1 NetManager::m_nodes IL_09CC: ldfld NetNode[] Array16`1::m_buffer IL_09D1: ldloc.s 45 (NetManager) IL_09D3: ldfld Array16`1 NetManager::m_segments IL_09D8: ldfld NetSegment[] Array16`1::m_buffer IL_09DD: ldloc.s 43 (System.UInt16) IL_09DF: ldelema NetSegment IL_09E4: ldfld System.UInt16 NetSegment::m_startNode IL_09E9: ldelema NetNode IL_09EE: ldfld UnityEngine.Vector3 NetNode::m_position IL_09F3: stfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a IL_09F8: ldloca.s 56 (ColossalFramework.Math.Bezier3) IL_09FA: ldloc.s 45 (NetManager) IL_09FC: ldfld Array16`1 NetManager::m_nodes IL_0A01: ldfld NetNode[] Array16`1::m_buffer IL_0A06: ldloc.s 45 (NetManager) IL_0A08: ldfld Array16`1 NetManager::m_segments IL_0A0D: ldfld NetSegment[] Array16`1::m_buffer IL_0A12: ldloc.s 43 (System.UInt16) IL_0A14: ldelema NetSegment IL_0A19: ldfld System.UInt16 NetSegment::m_endNode IL_0A1E: ldelema NetNode IL_0A23: ldfld UnityEngine.Vector3 NetNode::m_position IL_0A28: stfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::d IL_0A2D: ldloc.s 55 (NetInfo) IL_0A2F: ldfld NetAI NetInfo::m_netAI IL_0A34: callvirt virtual System.Single NetAI::GetSnapElevation() IL_0A39: stloc.s 57 (System.Single) IL_0A3B: ldloca.s 56 (ColossalFramework.Math.Bezier3) IL_0A3D: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a IL_0A42: dup IL_0A43: ldfld System.Single UnityEngine.Vector3::y IL_0A48: ldloc.s 57 (System.Single) IL_0A4A: add IL_0A4B: stfld System.Single UnityEngine.Vector3::y IL_0A50: ldloca.s 56 (ColossalFramework.Math.Bezier3) IL_0A52: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::d IL_0A57: dup IL_0A58: ldfld System.Single UnityEngine.Vector3::y IL_0A5D: ldloc.s 57 (System.Single) IL_0A5F: add IL_0A60: stfld System.Single UnityEngine.Vector3::y IL_0A65: ldloca.s 56 (ColossalFramework.Math.Bezier3) IL_0A67: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a IL_0A6C: ldloc.s 45 (NetManager) IL_0A6E: ldfld Array16`1 NetManager::m_segments IL_0A73: ldfld NetSegment[] Array16`1::m_buffer IL_0A78: ldloc.s 43 (System.UInt16) IL_0A7A: ldelema NetSegment IL_0A7F: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_0A84: ldloca.s 56 (ColossalFramework.Math.Bezier3) IL_0A86: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::d IL_0A8B: ldloc.s 45 (NetManager) IL_0A8D: ldfld Array16`1 NetManager::m_segments IL_0A92: ldfld NetSegment[] Array16`1::m_buffer IL_0A97: ldloc.s 43 (System.UInt16) IL_0A99: ldelema NetSegment IL_0A9E: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0AA3: ldc.i4.1 IL_0AA4: ldc.i4.1 IL_0AA5: ldloca.s 56 (ColossalFramework.Math.Bezier3) IL_0AA7: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::b IL_0AAC: ldloca.s 56 (ColossalFramework.Math.Bezier3) IL_0AAE: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::c IL_0AB3: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0AB8: ldc.r4 1 IL_0ABD: ldloca.s 53 (UnityEngine.Matrix4x4) IL_0ABF: ldfld System.Single UnityEngine.Matrix4x4::m33 IL_0AC4: ldloca.s 53 (UnityEngine.Matrix4x4) IL_0AC6: ldfld System.Single UnityEngine.Matrix4x4::m30 IL_0ACB: sub IL_0ACC: call static System.Single UnityEngine.Mathf::Abs(System.Single f) IL_0AD1: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0AD6: stloc.s 58 (System.Single) IL_0AD8: ldloc.s 54 (System.Single) IL_0ADA: ldc.r4 0.0002 IL_0ADF: mul IL_0AE0: ldc.r4 0.05 IL_0AE5: ldc.r4 1 IL_0AEA: ldloc.s 54 (System.Single) IL_0AEC: ldc.r4 0.001 IL_0AF1: mul IL_0AF2: add IL_0AF3: div IL_0AF4: add IL_0AF5: stloc.s 59 (System.Single) IL_0AF7: ldloc.s 51 (InstanceManager+NameData) IL_0AF9: ldfld UnityEngine.Vector2 NameData::m_size IL_0AFE: stloc.s 60 (UnityEngine.Vector2) IL_0B00: ldloca.s 60 (UnityEngine.Vector2) IL_0B02: dup IL_0B03: ldfld System.Single UnityEngine.Vector2::x IL_0B08: ldc.r4 20 IL_0B0D: add IL_0B0E: stfld System.Single UnityEngine.Vector2::x IL_0B13: ldloca.s 60 (UnityEngine.Vector2) IL_0B15: dup IL_0B16: ldfld System.Single UnityEngine.Vector2::y IL_0B1B: ldc.r4 10 IL_0B20: add IL_0B21: stfld System.Single UnityEngine.Vector2::y IL_0B26: ldloc.s 60 (UnityEngine.Vector2) IL_0B28: ldloc.s 59 (System.Single) IL_0B2A: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(UnityEngine.Vector2 a, System.Single d) IL_0B2F: stloc.s 60 (UnityEngine.Vector2) IL_0B31: ldc.r4 0 IL_0B36: ldc.r4 0.5 IL_0B3B: ldloca.s 60 (UnityEngine.Vector2) IL_0B3D: ldfld System.Single UnityEngine.Vector2::x IL_0B42: ldloc.s 58 (System.Single) IL_0B44: div IL_0B45: ldc.r4 0.5 IL_0B4A: mul IL_0B4B: sub IL_0B4C: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0B51: stloc.s 61 (System.Single) IL_0B53: ldc.r4 1 IL_0B58: ldc.r4 0.5 IL_0B5D: ldloca.s 60 (UnityEngine.Vector2) IL_0B5F: ldfld System.Single UnityEngine.Vector2::x IL_0B64: ldloc.s 58 (System.Single) IL_0B66: div IL_0B67: ldc.r4 0.5 IL_0B6C: mul IL_0B6D: add IL_0B6E: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0B73: stloc.s 62 (System.Single) IL_0B75: ldloca.s 56 (ColossalFramework.Math.Bezier3) IL_0B77: ldloc.s 61 (System.Single) IL_0B79: ldloc.s 62 (System.Single) IL_0B7B: call ColossalFramework.Math.Bezier3 ColossalFramework.Math.Bezier3::Cut(System.Single t0, System.Single t1) IL_0B80: stloc.s 56 (ColossalFramework.Math.Bezier3) IL_0B82: ldloca.s 56 (ColossalFramework.Math.Bezier3) IL_0B84: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a IL_0B89: ldfld System.Single UnityEngine.Vector3::y IL_0B8E: ldloca.s 56 (ColossalFramework.Math.Bezier3) IL_0B90: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::d IL_0B95: ldfld System.Single UnityEngine.Vector3::y IL_0B9A: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0B9F: stloc.s 63 (System.Single) IL_0BA1: ldloca.s 56 (ColossalFramework.Math.Bezier3) IL_0BA3: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a IL_0BA8: ldfld System.Single UnityEngine.Vector3::y IL_0BAD: ldloca.s 56 (ColossalFramework.Math.Bezier3) IL_0BAF: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::d IL_0BB4: ldfld System.Single UnityEngine.Vector3::y IL_0BB9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0BBE: stloc.s 64 (System.Single) IL_0BC0: ldloca.s 60 (UnityEngine.Vector2) IL_0BC2: ldfld System.Single UnityEngine.Vector2::x IL_0BC7: ldc.r4 10 IL_0BCC: add IL_0BCD: ldloca.s 60 (UnityEngine.Vector2) IL_0BCF: ldfld System.Single UnityEngine.Vector2::y IL_0BD4: ldc.r4 10 IL_0BD9: add IL_0BDA: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0BDF: ldc.r4 0.5 IL_0BE4: mul IL_0BE5: stloc.s 65 (System.Single) IL_0BE7: ldloc.s 47 (System.Single) IL_0BE9: ldc.r4 2 IL_0BEE: ldc.r4 1 IL_0BF3: ldloc.s 65 (System.Single) IL_0BF5: call static System.Single UnityEngine.Mathf::Sqrt(System.Single f) IL_0BFA: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0BFF: div IL_0C00: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0C05: stloc.s 47 (System.Single) IL_0C07: ldloca.s 46 (UnityEngine.Color) IL_0C09: dup IL_0C0A: ldfld System.Single UnityEngine.Color::a IL_0C0F: ldloc.s 47 (System.Single) IL_0C11: mul IL_0C12: stfld System.Single UnityEngine.Color::a IL_0C17: call static ToolManager ColossalFramework.Singleton`1::get_instance() IL_0C1C: ldflda DrawCallData SimulationManagerBase`2::m_drawCallData IL_0C21: dup IL_0C22: ldfld System.Int32 DrawCallData::m_overlayCalls IL_0C27: ldc.i4.1 IL_0C28: add IL_0C29: stfld System.Int32 DrawCallData::m_overlayCalls IL_0C2E: call static RenderManager ColossalFramework.Singleton`1::get_instance() IL_0C33: callvirt OverlayEffect RenderManager::get_OverlayEffect() IL_0C38: ldarg.1 IL_0C39: ldloc.s 46 (UnityEngine.Color) IL_0C3B: ldloc.s 56 (ColossalFramework.Math.Bezier3) IL_0C3D: ldloca.s 60 (UnityEngine.Vector2) IL_0C3F: ldfld System.Single UnityEngine.Vector2::y IL_0C44: ldloca.s 60 (UnityEngine.Vector2) IL_0C46: ldfld System.Single UnityEngine.Vector2::y IL_0C4B: ldc.r4 0.5 IL_0C50: mul IL_0C51: ldloca.s 60 (UnityEngine.Vector2) IL_0C53: ldfld System.Single UnityEngine.Vector2::y IL_0C58: ldc.r4 0.5 IL_0C5D: mul IL_0C5E: ldloc.s 63 (System.Single) IL_0C60: ldloc.s 64 (System.Single) IL_0C62: ldc.i4.1 IL_0C63: ldc.i4.1 IL_0C64: callvirt System.Void OverlayEffect::DrawBezier(CameraInfo cameraInfo, UnityEngine.Color color, ColossalFramework.Math.Bezier3 bezier, System.Single size, System.Single cutStart, System.Single cutEnd, System.Single minY, System.Single maxY, System.Boolean renderLimits, System.Boolean alphaBlend) IL_0C69: Label74 IL_0C69: Label75 IL_0C69: Label76 IL_0C69: br => Label77 IL_0C6E: Label73 IL_0C6E: ldloc.s 45 (NetManager) IL_0C70: ldfld Array16`1 NetManager::m_segments IL_0C75: ldfld NetSegment[] Array16`1::m_buffer IL_0C7A: ldloc.s 43 (System.UInt16) IL_0C7C: ldelema NetSegment IL_0C81: ldloca.s 47 (System.Single) IL_0C83: call static System.Void NetTool::CheckOverlayAlpha(NetSegment& segment, System.Single& alpha) IL_0C88: ldloc.s 44 (System.UInt16) IL_0C8A: brfalse => Label78 IL_0C8F: ldloc.s 45 (NetManager) IL_0C91: ldfld Array16`1 NetManager::m_segments IL_0C96: ldfld NetSegment[] Array16`1::m_buffer IL_0C9B: ldloc.s 44 (System.UInt16) IL_0C9D: ldelema NetSegment IL_0CA2: ldloca.s 47 (System.Single) IL_0CA4: call static System.Void NetTool::CheckOverlayAlpha(NetSegment& segment, System.Single& alpha) IL_0CA9: Label78 IL_0CA9: ldloca.s 46 (UnityEngine.Color) IL_0CAB: dup IL_0CAC: ldfld System.Single UnityEngine.Color::a IL_0CB1: ldloc.s 47 (System.Single) IL_0CB3: mul IL_0CB4: stfld System.Single UnityEngine.Color::a IL_0CB9: ldloc.s 45 (NetManager) IL_0CBB: callvirt NetAdjust NetManager::get_NetAdjust() IL_0CC0: ldnull IL_0CC1: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_0CC6: brfalse => Label79 IL_0CCB: ldloc.s 45 (NetManager) IL_0CCD: callvirt NetAdjust NetManager::get_NetAdjust() IL_0CD2: ldarg.1 IL_0CD3: ldloc.s 43 (System.UInt16) IL_0CD5: ldloc.s 46 (UnityEngine.Color) IL_0CD7: ldarg.0 IL_0CD8: ldfld System.Int32 DefaultTool::m_subHoverIndex IL_0CDD: callvirt System.Boolean NetAdjust::RenderOverlay(CameraInfo cameraInfo, System.UInt16 segment, UnityEngine.Color color, System.Int32 subIndex) IL_0CE2: brfalse => Label80 IL_0CE7: br => Label81 IL_0CEC: Label79 IL_0CEC: Label80 IL_0CEC: ldarg.1 IL_0CED: ldloc.s 45 (NetManager) IL_0CEF: ldfld Array16`1 NetManager::m_segments IL_0CF4: ldfld NetSegment[] Array16`1::m_buffer IL_0CF9: ldloc.s 43 (System.UInt16) IL_0CFB: ldelema NetSegment IL_0D00: ldloc.s 46 (UnityEngine.Color) IL_0D02: ldloc.s 46 (UnityEngine.Color) IL_0D04: call static System.Void NetTool::RenderOverlay(CameraInfo cameraInfo, NetSegment& segment, UnityEngine.Color importantColor, UnityEngine.Color nonImportantColor) IL_0D09: ldloc.s 44 (System.UInt16) IL_0D0B: brfalse => Label82 IL_0D10: ldarg.1 IL_0D11: ldloc.s 45 (NetManager) IL_0D13: ldfld Array16`1 NetManager::m_segments IL_0D18: ldfld NetSegment[] Array16`1::m_buffer IL_0D1D: ldloc.s 44 (System.UInt16) IL_0D1F: ldelema NetSegment IL_0D24: ldloc.s 46 (UnityEngine.Color) IL_0D26: ldloc.s 46 (UnityEngine.Color) IL_0D28: call static System.Void NetTool::RenderOverlay(CameraInfo cameraInfo, NetSegment& segment, UnityEngine.Color importantColor, UnityEngine.Color nonImportantColor) IL_0D2D: Label77 IL_0D2D: Label82 IL_0D2D: br => Label83 IL_0D32: Label35 IL_0D32: ldloca.s 0 (InstanceID) IL_0D34: call System.UInt32 InstanceID::get_Tree() IL_0D39: stloc.s 66 (System.UInt32) IL_0D3B: call static TreeManager ColossalFramework.Singleton`1::get_instance() IL_0D40: stloc.s 67 (TreeManager) IL_0D42: ldloc.s 67 (TreeManager) IL_0D44: ldfld Array32`1 TreeManager::m_trees IL_0D49: ldfld TreeInstance[] Array32`1::m_buffer IL_0D4E: ldloc.s 66 (System.UInt32) IL_0D50: conv.u IL_0D51: ldelema TreeInstance IL_0D56: call TreeInfo TreeInstance::get_Info() IL_0D5B: stloc.s 68 (TreeInfo) IL_0D5D: ldloc.s 67 (TreeManager) IL_0D5F: ldfld Array32`1 TreeManager::m_trees IL_0D64: ldfld TreeInstance[] Array32`1::m_buffer IL_0D69: ldloc.s 66 (System.UInt32) IL_0D6B: conv.u IL_0D6C: ldelema TreeInstance IL_0D71: call UnityEngine.Vector3 TreeInstance::get_Position() IL_0D76: stloc.s 69 (UnityEngine.Vector3) IL_0D78: ldloca.s 70 (ColossalFramework.Math.Randomizer) IL_0D7A: ldloc.s 66 (System.UInt32) IL_0D7C: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed) IL_0D81: ldloc.s 68 (TreeInfo) IL_0D83: ldfld System.Single TreeInfo::m_minScale IL_0D88: ldloca.s 70 (ColossalFramework.Math.Randomizer) IL_0D8A: ldc.i4 10000 IL_0D8F: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0D94: conv.r4 IL_0D95: ldloc.s 68 (TreeInfo) IL_0D97: ldfld System.Single TreeInfo::m_maxScale IL_0D9C: ldloc.s 68 (TreeInfo) IL_0D9E: ldfld System.Single TreeInfo::m_minScale IL_0DA3: sub IL_0DA4: mul IL_0DA5: ldc.r4 0.0001 IL_0DAA: mul IL_0DAB: add IL_0DAC: stloc.s 71 (System.Single) IL_0DAE: ldarg.0 IL_0DAF: ldc.i4.0 IL_0DB0: ldarg.0 IL_0DB1: ldfld ToolErrors DefaultTool::m_selectErrors IL_0DB6: ldc.i4.0 IL_0DB7: conv.i8 IL_0DB8: ceq IL_0DBA: ldc.i4.0 IL_0DBB: ceq IL_0DBD: call UnityEngine.Color ToolBase::GetToolColor(System.Boolean warning, System.Boolean error) IL_0DC2: stloc.s 72 (UnityEngine.Color) IL_0DC4: ldc.r4 1 IL_0DC9: stloc.s 73 (System.Single) IL_0DCB: ldloc.s 68 (TreeInfo) IL_0DCD: ldloc.s 71 (System.Single) IL_0DCF: ldloca.s 73 (System.Single) IL_0DD1: call static System.Void TreeTool::CheckOverlayAlpha(TreeInfo info, System.Single scale, System.Single& alpha) IL_0DD6: ldloca.s 72 (UnityEngine.Color) IL_0DD8: dup IL_0DD9: ldfld System.Single UnityEngine.Color::a IL_0DDE: ldloc.s 73 (System.Single) IL_0DE0: mul IL_0DE1: stfld System.Single UnityEngine.Color::a IL_0DE6: ldarg.1 IL_0DE7: ldloc.s 68 (TreeInfo) IL_0DE9: ldloc.s 69 (UnityEngine.Vector3) IL_0DEB: ldloc.s 71 (System.Single) IL_0DED: ldloc.s 72 (UnityEngine.Color) IL_0DEF: call static System.Void TreeTool::RenderOverlay(CameraInfo cameraInfo, TreeInfo info, UnityEngine.Vector3 position, System.Single scale, UnityEngine.Color color) IL_0DF4: br => Label84 IL_0DF9: Label34 IL_0DF9: ldloca.s 0 (InstanceID) IL_0DFB: call System.UInt16 InstanceID::get_Prop() IL_0E00: stloc.s 74 (System.UInt16) IL_0E02: call static PropManager ColossalFramework.Singleton`1::get_instance() IL_0E07: stloc.s 75 (PropManager) IL_0E09: ldloc.s 75 (PropManager) IL_0E0B: ldfld Array16`1 PropManager::m_props IL_0E10: ldfld PropInstance[] Array16`1::m_buffer IL_0E15: ldloc.s 74 (System.UInt16) IL_0E17: ldelema PropInstance IL_0E1C: call PropInfo PropInstance::get_Info() IL_0E21: stloc.s 76 (PropInfo) IL_0E23: ldloc.s 75 (PropManager) IL_0E25: ldfld Array16`1 PropManager::m_props IL_0E2A: ldfld PropInstance[] Array16`1::m_buffer IL_0E2F: ldloc.s 74 (System.UInt16) IL_0E31: ldelema PropInstance IL_0E36: call UnityEngine.Vector3 PropInstance::get_Position() IL_0E3B: stloc.s 77 (UnityEngine.Vector3) IL_0E3D: ldloc.s 75 (PropManager) IL_0E3F: ldfld Array16`1 PropManager::m_props IL_0E44: ldfld PropInstance[] Array16`1::m_buffer IL_0E49: ldloc.s 74 (System.UInt16) IL_0E4B: ldelema PropInstance IL_0E50: call System.Single PropInstance::get_Angle() IL_0E55: stloc.s 78 (System.Single) IL_0E57: ldloca.s 79 (ColossalFramework.Math.Randomizer) IL_0E59: ldloc.s 74 (System.UInt16) IL_0E5B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0E60: ldloc.s 76 (PropInfo) IL_0E62: ldfld System.Single PropInfo::m_minScale IL_0E67: ldloca.s 79 (ColossalFramework.Math.Randomizer) IL_0E69: ldc.i4 10000 IL_0E6E: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0E73: conv.r4 IL_0E74: ldloc.s 76 (PropInfo) IL_0E76: ldfld System.Single PropInfo::m_maxScale IL_0E7B: ldloc.s 76 (PropInfo) IL_0E7D: ldfld System.Single PropInfo::m_minScale IL_0E82: sub IL_0E83: mul IL_0E84: ldc.r4 0.0001 IL_0E89: mul IL_0E8A: add IL_0E8B: stloc.s 80 (System.Single) IL_0E8D: ldarg.0 IL_0E8E: ldc.i4.0 IL_0E8F: ldarg.0 IL_0E90: ldfld ToolErrors DefaultTool::m_selectErrors IL_0E95: ldc.i4.0 IL_0E96: conv.i8 IL_0E97: ceq IL_0E99: ldc.i4.0 IL_0E9A: ceq IL_0E9C: call UnityEngine.Color ToolBase::GetToolColor(System.Boolean warning, System.Boolean error) IL_0EA1: stloc.s 81 (UnityEngine.Color) IL_0EA3: ldc.r4 1 IL_0EA8: stloc.s 82 (System.Single) IL_0EAA: ldloc.s 76 (PropInfo) IL_0EAC: ldloc.s 80 (System.Single) IL_0EAE: ldloca.s 82 (System.Single) IL_0EB0: call static System.Void PropTool::CheckOverlayAlpha(PropInfo info, System.Single scale, System.Single& alpha) IL_0EB5: ldloca.s 81 (UnityEngine.Color) IL_0EB7: dup IL_0EB8: ldfld System.Single UnityEngine.Color::a IL_0EBD: ldloc.s 82 (System.Single) IL_0EBF: mul IL_0EC0: stfld System.Single UnityEngine.Color::a IL_0EC5: ldarg.1 IL_0EC6: ldloc.s 76 (PropInfo) IL_0EC8: ldloc.s 77 (UnityEngine.Vector3) IL_0ECA: ldloc.s 80 (System.Single) IL_0ECC: ldloc.s 78 (System.Single) IL_0ECE: ldloc.s 81 (UnityEngine.Color) IL_0ED0: call static System.Void PropTool::RenderOverlay(CameraInfo cameraInfo, PropInfo info, UnityEngine.Vector3 position, System.Single scale, System.Single angle, UnityEngine.Color color) IL_0ED5: br => Label85 IL_0EDA: Label26 IL_0EDA: ldloca.s 0 (InstanceID) IL_0EDC: call System.UInt16 InstanceID::get_Vehicle() IL_0EE1: stloc.s 83 (System.UInt16) IL_0EE3: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_0EE8: stloc.s 84 (VehicleManager) IL_0EEA: ldarg.0 IL_0EEB: ldc.i4.0 IL_0EEC: ldarg.0 IL_0EED: ldfld ToolErrors DefaultTool::m_selectErrors IL_0EF2: ldc.i4.0 IL_0EF3: conv.i8 IL_0EF4: ceq IL_0EF6: ldc.i4.0 IL_0EF7: ceq IL_0EF9: call UnityEngine.Color ToolBase::GetToolColor(System.Boolean warning, System.Boolean error) IL_0EFE: stloc.s 85 (UnityEngine.Color) IL_0F00: ldc.r4 1 IL_0F05: stloc.s 86 (System.Single) IL_0F07: ldloc.s 84 (VehicleManager) IL_0F09: ldfld Array16`1 VehicleManager::m_vehicles IL_0F0E: ldfld Vehicle[] Array16`1::m_buffer IL_0F13: ldloc.s 83 (System.UInt16) IL_0F15: ldelema Vehicle IL_0F1A: ldloca.s 86 (System.Single) IL_0F1C: call System.Void Vehicle::CheckOverlayAlpha(System.Single& alpha) IL_0F21: ldloca.s 85 (UnityEngine.Color) IL_0F23: dup IL_0F24: ldfld System.Single UnityEngine.Color::a IL_0F29: ldloc.s 86 (System.Single) IL_0F2B: mul IL_0F2C: stfld System.Single UnityEngine.Color::a IL_0F31: ldloc.s 84 (VehicleManager) IL_0F33: ldfld Array16`1 VehicleManager::m_vehicles IL_0F38: ldfld Vehicle[] Array16`1::m_buffer IL_0F3D: ldloc.s 83 (System.UInt16) IL_0F3F: ldelema Vehicle IL_0F44: ldarg.1 IL_0F45: ldloc.s 83 (System.UInt16) IL_0F47: ldloc.s 85 (UnityEngine.Color) IL_0F49: call System.Void Vehicle::RenderOverlay(CameraInfo cameraInfo, System.UInt16 vehicleID, UnityEngine.Color color) IL_0F4E: br => Label86 IL_0F53: Label31 IL_0F53: ldloca.s 0 (InstanceID) IL_0F55: call System.UInt16 InstanceID::get_ParkedVehicle() IL_0F5A: stloc.s 87 (System.UInt16) IL_0F5C: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_0F61: stloc.s 88 (VehicleManager) IL_0F63: ldarg.0 IL_0F64: ldc.i4.0 IL_0F65: ldarg.0 IL_0F66: ldfld ToolErrors DefaultTool::m_selectErrors IL_0F6B: ldc.i4.0 IL_0F6C: conv.i8 IL_0F6D: ceq IL_0F6F: ldc.i4.0 IL_0F70: ceq IL_0F72: call UnityEngine.Color ToolBase::GetToolColor(System.Boolean warning, System.Boolean error) IL_0F77: stloc.s 89 (UnityEngine.Color) IL_0F79: ldc.r4 1 IL_0F7E: stloc.s 90 (System.Single) IL_0F80: ldloc.s 88 (VehicleManager) IL_0F82: ldfld Array16`1 VehicleManager::m_parkedVehicles IL_0F87: ldfld VehicleParked[] Array16`1::m_buffer IL_0F8C: ldloc.s 87 (System.UInt16) IL_0F8E: ldelema VehicleParked IL_0F93: ldloca.s 90 (System.Single) IL_0F95: call System.Void VehicleParked::CheckOverlayAlpha(System.Single& alpha) IL_0F9A: ldloca.s 89 (UnityEngine.Color) IL_0F9C: dup IL_0F9D: ldfld System.Single UnityEngine.Color::a IL_0FA2: ldloc.s 90 (System.Single) IL_0FA4: mul IL_0FA5: stfld System.Single UnityEngine.Color::a IL_0FAA: ldloc.s 88 (VehicleManager) IL_0FAC: ldfld Array16`1 VehicleManager::m_parkedVehicles IL_0FB1: ldfld VehicleParked[] Array16`1::m_buffer IL_0FB6: ldloc.s 87 (System.UInt16) IL_0FB8: ldelema VehicleParked IL_0FBD: ldarg.1 IL_0FBE: ldloc.s 87 (System.UInt16) IL_0FC0: ldloc.s 89 (UnityEngine.Color) IL_0FC2: call System.Void VehicleParked::RenderOverlay(CameraInfo cameraInfo, System.UInt16 vehicleID, UnityEngine.Color color) IL_0FC7: br => Label87 IL_0FCC: Label33 IL_0FCC: ldloca.s 0 (InstanceID) IL_0FCE: call System.UInt16 InstanceID::get_CitizenInstance() IL_0FD3: stloc.s 91 (System.UInt16) IL_0FD5: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0FDA: stloc.s 92 (CitizenManager) IL_0FDC: ldarg.0 IL_0FDD: ldc.i4.0 IL_0FDE: ldarg.0 IL_0FDF: ldfld ToolErrors DefaultTool::m_selectErrors IL_0FE4: ldc.i4.0 IL_0FE5: conv.i8 IL_0FE6: ceq IL_0FE8: ldc.i4.0 IL_0FE9: ceq IL_0FEB: call UnityEngine.Color ToolBase::GetToolColor(System.Boolean warning, System.Boolean error) IL_0FF0: stloc.s 93 (UnityEngine.Color) IL_0FF2: ldc.r4 1 IL_0FF7: stloc.s 94 (System.Single) IL_0FF9: ldloc.s 92 (CitizenManager) IL_0FFB: ldfld Array16`1 CitizenManager::m_instances IL_1000: ldfld CitizenInstance[] Array16`1::m_buffer IL_1005: ldloc.s 91 (System.UInt16) IL_1007: ldelema CitizenInstance IL_100C: ldloca.s 94 (System.Single) IL_100E: call System.Void CitizenInstance::CheckOverlayAlpha(System.Single& alpha) IL_1013: ldloca.s 93 (UnityEngine.Color) IL_1015: dup IL_1016: ldfld System.Single UnityEngine.Color::a IL_101B: ldloc.s 94 (System.Single) IL_101D: mul IL_101E: stfld System.Single UnityEngine.Color::a IL_1023: ldloc.s 92 (CitizenManager) IL_1025: ldfld Array16`1 CitizenManager::m_instances IL_102A: ldfld CitizenInstance[] Array16`1::m_buffer IL_102F: ldloc.s 91 (System.UInt16) IL_1031: ldelema CitizenInstance IL_1036: ldarg.1 IL_1037: ldloc.s 91 (System.UInt16) IL_1039: ldloc.s 93 (UnityEngine.Color) IL_103B: call System.Void CitizenInstance::RenderOverlay(CameraInfo cameraInfo, System.UInt16 instanceID, UnityEngine.Color color) IL_1040: br => Label88 IL_1045: Label27 IL_1045: ldloca.s 0 (InstanceID) IL_1047: call System.Byte InstanceID::get_District() IL_104C: stloc.s 95 (System.Byte) IL_104E: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_1053: callvirt InfoMode InfoManager::get_CurrentMode() IL_1058: ldc.i4.s 12 IL_105A: beq => Label89 IL_105F: call static DistrictManager ColossalFramework.Singleton`1::get_instance() IL_1064: stloc.s 96 (DistrictManager) IL_1066: ldarg.0 IL_1067: ldc.i4.0 IL_1068: ldarg.0 IL_1069: ldfld ToolErrors DefaultTool::m_selectErrors IL_106E: ldc.i4.0 IL_106F: conv.i8 IL_1070: ceq IL_1072: ldc.i4.0 IL_1073: ceq IL_1075: call UnityEngine.Color ToolBase::GetToolColor(System.Boolean warning, System.Boolean error) IL_107A: stloc.s 97 (UnityEngine.Color) IL_107C: ldc.r4 1 IL_1081: stloc.s 98 (System.Single) IL_1083: ldloc.s 96 (DistrictManager) IL_1085: ldarg.1 IL_1086: ldloc.s 95 (System.Byte) IL_1088: ldloca.s 98 (System.Single) IL_108A: callvirt System.Void DistrictManager::CheckOverlayAlpha(CameraInfo cameraInfo, System.Byte district, System.Single& alpha) IL_108F: ldloca.s 97 (UnityEngine.Color) IL_1091: dup IL_1092: ldfld System.Single UnityEngine.Color::a IL_1097: ldloc.s 98 (System.Single) IL_1099: mul IL_109A: stfld System.Single UnityEngine.Color::a IL_109F: ldloc.s 96 (DistrictManager) IL_10A1: ldarg.1 IL_10A2: ldloc.s 95 (System.Byte) IL_10A4: ldloc.s 97 (UnityEngine.Color) IL_10A6: callvirt System.Void DistrictManager::RenderHighlight(CameraInfo cameraInfo, System.Byte district, UnityEngine.Color color) IL_10AB: Label89 IL_10AB: br => Label90 IL_10B0: Label44 IL_10B0: ldloca.s 0 (InstanceID) IL_10B2: call System.Byte InstanceID::get_Park() IL_10B7: stloc.s 99 (System.Byte) IL_10B9: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_10BE: callvirt InfoMode InfoManager::get_CurrentMode() IL_10C3: ldc.i4.s 12 IL_10C5: beq => Label91 IL_10CA: call static DistrictManager ColossalFramework.Singleton`1::get_instance() IL_10CF: stloc.s 100 (DistrictManager) IL_10D1: ldarg.0 IL_10D2: ldc.i4.0 IL_10D3: ldarg.0 IL_10D4: ldfld ToolErrors DefaultTool::m_selectErrors IL_10D9: ldc.i4.0 IL_10DA: conv.i8 IL_10DB: ceq IL_10DD: ldc.i4.0 IL_10DE: ceq IL_10E0: call UnityEngine.Color ToolBase::GetToolColor(System.Boolean warning, System.Boolean error) IL_10E5: stloc.s 101 (UnityEngine.Color) IL_10E7: ldc.r4 1 IL_10EC: stloc.s 102 (System.Single) IL_10EE: ldloc.s 100 (DistrictManager) IL_10F0: ldarg.1 IL_10F1: ldloc.s 99 (System.Byte) IL_10F3: ldloca.s 102 (System.Single) IL_10F5: callvirt System.Void DistrictManager::CheckParkOverlayAlpha(CameraInfo cameraInfo, System.Byte park, System.Single& alpha) IL_10FA: ldloca.s 101 (UnityEngine.Color) IL_10FC: dup IL_10FD: ldfld System.Single UnityEngine.Color::a IL_1102: ldloc.s 102 (System.Single) IL_1104: mul IL_1105: stfld System.Single UnityEngine.Color::a IL_110A: ldloc.s 100 (DistrictManager) IL_110C: ldarg.1 IL_110D: ldloc.s 99 (System.Byte) IL_110F: ldloc.s 101 (UnityEngine.Color) IL_1111: callvirt System.Void DistrictManager::RenderParkHighlight(CameraInfo cameraInfo, System.Byte park, UnityEngine.Color color) IL_1116: Label91 IL_1116: br => Label92 IL_111B: Label40 IL_111B: ldloca.s 0 (InstanceID) IL_111D: call System.UInt16 InstanceID::get_Disaster() IL_1122: stloc.s 103 (System.UInt16) IL_1124: call static DisasterManager ColossalFramework.Singleton`1::get_instance() IL_1129: stloc.s 104 (DisasterManager) IL_112B: ldloc.s 104 (DisasterManager) IL_112D: ldfld FastList`1 DisasterManager::m_disasters IL_1132: ldfld DisasterData[] FastList`1::m_buffer IL_1137: ldloc.s 103 (System.UInt16) IL_1139: ldelema DisasterData IL_113E: call DisasterInfo DisasterData::get_Info() IL_1143: stloc.s 105 (DisasterInfo) IL_1145: ldloc.s 104 (DisasterManager) IL_1147: ldfld FastList`1 DisasterManager::m_disasters IL_114C: ldfld DisasterData[] FastList`1::m_buffer IL_1151: ldloc.s 103 (System.UInt16) IL_1153: ldelema DisasterData IL_1158: ldfld UnityEngine.Vector3 DisasterData::m_targetPosition IL_115D: stloc.s 106 (UnityEngine.Vector3) IL_115F: ldloc.s 104 (DisasterManager) IL_1161: ldfld FastList`1 DisasterManager::m_disasters IL_1166: ldfld DisasterData[] FastList`1::m_buffer IL_116B: ldloc.s 103 (System.UInt16) IL_116D: ldelema DisasterData IL_1172: ldfld System.Single DisasterData::m_angle IL_1177: stloc.s 107 (System.Single) IL_1179: ldarg.0 IL_117A: ldc.i4.0 IL_117B: ldarg.0 IL_117C: ldfld ToolErrors DefaultTool::m_selectErrors IL_1181: ldc.i4.0 IL_1182: conv.i8 IL_1183: ceq IL_1185: ldc.i4.0 IL_1186: ceq IL_1188: call UnityEngine.Color ToolBase::GetToolColor(System.Boolean warning, System.Boolean error) IL_118D: stloc.s 108 (UnityEngine.Color) IL_118F: ldc.r4 1 IL_1194: stloc.s 109 (System.Single) IL_1196: ldloc.s 105 (DisasterInfo) IL_1198: ldloca.s 109 (System.Single) IL_119A: call static System.Void DisasterTool::CheckOverlayAlpha(DisasterInfo info, System.Single& alpha) IL_119F: ldloca.s 108 (UnityEngine.Color) IL_11A1: dup IL_11A2: ldfld System.Single UnityEngine.Color::a IL_11A7: ldloc.s 109 (System.Single) IL_11A9: mul IL_11AA: stfld System.Single UnityEngine.Color::a IL_11AF: ldarg.1 IL_11B0: ldloc.s 105 (DisasterInfo) IL_11B2: ldloc.s 106 (UnityEngine.Vector3) IL_11B4: ldloc.s 107 (System.Single) IL_11B6: ldloc.s 108 (UnityEngine.Color) IL_11B8: call static System.Void DisasterTool::RenderOverlay(CameraInfo cameraInfo, DisasterInfo info, UnityEngine.Vector3 position, System.Single angle, UnityEngine.Color color) IL_11BD: br => Label93 IL_11C2: Label28 IL_11C2: Label29 IL_11C2: Label32 IL_11C2: Label36 IL_11C2: Label37 IL_11C2: Label38 IL_11C2: Label39 IL_11C2: Label41 IL_11C2: Label42 IL_11C2: Label43 IL_11C2: Label45 IL_11C2: Label72 IL_11C2: Label81 IL_11C2: Label83 IL_11C2: Label84 IL_11C2: Label85 IL_11C2: Label86 IL_11C2: Label87 IL_11C2: Label88 IL_11C2: Label90 IL_11C2: Label92 IL_11C2: Label93 IL_11C2: ldarg.0 IL_11C3: ldarg.1 IL_11C4: call virtual System.Void ToolBase::RenderOverlay(CameraInfo cameraInfo) IL_11C9: // end original IL_11C9: Label94 IL_11C9: Label95 IL_11C9: Label96 IL_11C9: Label97 IL_11C9: ldarg 1 IL_11CD: call static System.Void TrafficManager.Patch._DefaultTool.RenderOverlayPatch::Postfix(CameraInfo cameraInfo) IL_11D2: ret DONE ### Patch: System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) ### Replacement: static System.Void CitizenManager::CitizenManager.ReleaseCitizen_Patch1(CitizenManager this, System.UInt32 citizen) IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: ldarg.0 IL_0003: ldfld Array32`1 CitizenManager::m_citizens IL_0008: ldfld Citizen[] Array32`1::m_buffer IL_000D: ldarg.1 IL_000E: conv.u IL_000F: ldelema Citizen IL_0014: call System.Void CitizenManager::ReleaseCitizenImplementation(System.UInt32 citizen, Citizen& data) IL_0019: // end original IL_0019: ldarg.0 IL_001A: ldarg 1 IL_001E: call static System.Void TrafficManager.Patch._CitizenManager.ReleaseCitizenPatch::Postfix(CitizenManager __instance, System.UInt32 citizen) IL_0023: ret DONE ### Patch: System.Void CitizenManager::ReleaseCitizenInstance(System.UInt16 instance) ### Replacement: static System.Void CitizenManager::CitizenManager.ReleaseCitizenInstance_Patch1(CitizenManager this, System.UInt16 instance) IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: ldarg.0 IL_0003: ldfld Array16`1 CitizenManager::m_instances IL_0008: ldfld CitizenInstance[] Array16`1::m_buffer IL_000D: ldarg.1 IL_000E: ldelema CitizenInstance IL_0013: call System.Void CitizenManager::ReleaseCitizenInstanceImplementation(System.UInt16 instance, CitizenInstance& data) IL_0018: // end original IL_0018: ldarg.0 IL_0019: ldarg 1 IL_001D: call static System.Void TrafficManager.Patch._CitizenManager.ReleaseCitizenInstancePatch::Postfix(CitizenManager __instance, System.UInt16 instance) IL_0022: ret DONE ### Patch: static System.Boolean TransportLineAI::StartPathFind(System.UInt16 segmentID, NetSegment& data, Service netService, Service netService2, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean skipQueue) ### Replacement: static System.Boolean TransportLineAI::TransportLineAI.StartPathFind_Patch0(System.UInt16 segmentID, NetSegment& data, Service netService, Service netService2, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean skipQueue) IL_0000: Local var 0: NetManager IL_0000: Local var 1: System.Int32 IL_0000: Local var 2: System.UInt16 IL_0000: Local var 3: System.Int32 IL_0000: Local var 4: System.UInt16 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: UnityEngine.Vector3 IL_0000: Local var 7: PathUnit/Position IL_0000: Local var 8: PathUnit/Position IL_0000: Local var 9: PathUnit/Position IL_0000: Local var 10: PathUnit/Position IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Single IL_0000: Local var 13: System.Single IL_0000: Local var 14: System.Single IL_0000: Local var 15: System.Boolean IL_0000: Local var 16: System.Boolean IL_0000: Local var 17: System.Boolean IL_0000: Local var 18: System.Boolean IL_0000: Local var 19: NetInfo/LaneType IL_0000: Local var 20: System.Single IL_0000: Local var 21: System.UInt32 IL_0000: // start original IL_0000: ldarg.1 IL_0001: ldfld System.UInt32 NetSegment::m_path IL_0006: brfalse => Label0 IL_000B: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_0010: ldarg.1 IL_0011: ldfld System.UInt32 NetSegment::m_path IL_0016: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit) IL_001B: ldarg.1 IL_001C: ldc.i4.0 IL_001D: stfld System.UInt32 NetSegment::m_path IL_0022: Label0 IL_0022: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0027: stloc.0 IL_0028: ldloc.0 IL_0029: ldfld Array16`1 NetManager::m_nodes IL_002E: ldfld NetNode[] Array16`1::m_buffer IL_0033: ldarg.1 IL_0034: ldfld System.UInt16 NetSegment::m_startNode IL_0039: ldelema NetNode IL_003E: ldfld Flags NetNode::m_flags IL_0043: ldc.i4 32768 IL_0048: and IL_0049: brfalse => Label1 IL_004E: ldc.i4.0 IL_004F: stloc.1 IL_0050: br => Label2 IL_0055: Label6 IL_0055: ldloc.0 IL_0056: ldfld Array16`1 NetManager::m_nodes IL_005B: ldfld NetNode[] Array16`1::m_buffer IL_0060: ldarg.1 IL_0061: ldfld System.UInt16 NetSegment::m_startNode IL_0066: ldelema NetNode IL_006B: ldloc.1 IL_006C: call System.UInt16 NetNode::GetSegment(System.Int32 index) IL_0071: stloc.2 IL_0072: ldloc.2 IL_0073: brfalse => Label3 IL_0078: ldloc.2 IL_0079: ldarg.0 IL_007A: beq => Label4 IL_007F: ldloc.0 IL_0080: ldfld Array16`1 NetManager::m_segments IL_0085: ldfld NetSegment[] Array16`1::m_buffer IL_008A: ldloc.2 IL_008B: ldelema NetSegment IL_0090: ldfld System.UInt32 NetSegment::m_path IL_0095: brfalse => Label5 IL_009A: ldc.i4.1 IL_009B: br => Label32 IL_00A0: Label3 IL_00A0: Label4 IL_00A0: Label5 IL_00A0: ldloc.1 IL_00A1: ldc.i4.1 IL_00A2: add IL_00A3: stloc.1 IL_00A4: Label2 IL_00A4: ldloc.1 IL_00A5: ldc.i4.8 IL_00A6: blt => Label6 IL_00AB: Label1 IL_00AB: ldloc.0 IL_00AC: ldfld Array16`1 NetManager::m_nodes IL_00B1: ldfld NetNode[] Array16`1::m_buffer IL_00B6: ldarg.1 IL_00B7: ldfld System.UInt16 NetSegment::m_endNode IL_00BC: ldelema NetNode IL_00C1: ldfld Flags NetNode::m_flags IL_00C6: ldc.i4 32768 IL_00CB: and IL_00CC: brfalse => Label7 IL_00D1: ldc.i4.0 IL_00D2: stloc.3 IL_00D3: br => Label8 IL_00D8: Label12 IL_00D8: ldloc.0 IL_00D9: ldfld Array16`1 NetManager::m_nodes IL_00DE: ldfld NetNode[] Array16`1::m_buffer IL_00E3: ldarg.1 IL_00E4: ldfld System.UInt16 NetSegment::m_endNode IL_00E9: ldelema NetNode IL_00EE: ldloc.3 IL_00EF: call System.UInt16 NetNode::GetSegment(System.Int32 index) IL_00F4: stloc.s 4 (System.UInt16) IL_00F6: ldloc.s 4 (System.UInt16) IL_00F8: brfalse => Label9 IL_00FD: ldloc.s 4 (System.UInt16) IL_00FF: ldarg.0 IL_0100: beq => Label10 IL_0105: ldloc.0 IL_0106: ldfld Array16`1 NetManager::m_segments IL_010B: ldfld NetSegment[] Array16`1::m_buffer IL_0110: ldloc.s 4 (System.UInt16) IL_0112: ldelema NetSegment IL_0117: ldfld System.UInt32 NetSegment::m_path IL_011C: brfalse => Label11 IL_0121: ldc.i4.1 IL_0122: br => Label33 IL_0127: Label9 IL_0127: Label10 IL_0127: Label11 IL_0127: ldloc.3 IL_0128: ldc.i4.1 IL_0129: add IL_012A: stloc.3 IL_012B: Label8 IL_012B: ldloc.3 IL_012C: ldc.i4.8 IL_012D: blt => Label12 IL_0132: Label7 IL_0132: ldloc.0 IL_0133: ldfld Array16`1 NetManager::m_nodes IL_0138: ldfld NetNode[] Array16`1::m_buffer IL_013D: ldarg.1 IL_013E: ldfld System.UInt16 NetSegment::m_startNode IL_0143: ldelema NetNode IL_0148: ldfld UnityEngine.Vector3 NetNode::m_position IL_014D: stloc.s 5 (UnityEngine.Vector3) IL_014F: ldloc.0 IL_0150: ldfld Array16`1 NetManager::m_nodes IL_0155: ldfld NetNode[] Array16`1::m_buffer IL_015A: ldarg.1 IL_015B: ldfld System.UInt16 NetSegment::m_endNode IL_0160: ldelema NetNode IL_0165: ldfld UnityEngine.Vector3 NetNode::m_position IL_016A: stloc.s 6 (UnityEngine.Vector3) IL_016C: ldloc.s 5 (UnityEngine.Vector3) IL_016E: ldarg.2 IL_016F: ldarg.3 IL_0170: ldc.i4.2 IL_0171: ldc.i4.0 IL_0172: ldc.i4.0 IL_0173: conv.i8 IL_0174: ldarg.s 4 IL_0176: ldc.i4.1 IL_0177: ldc.i4.0 IL_0178: ldc.r4 32 IL_017D: ldloca.s 7 (PathUnit+Position) IL_017F: ldloca.s 8 (PathUnit+Position) IL_0181: ldloca.s 11 (System.Single) IL_0183: ldloca.s 12 (System.Single) IL_0185: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, Service service2, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, VehicleType stopType, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_018A: brtrue => Label13 IL_018F: ldarg.0 IL_0190: ldarg.1 IL_0191: call static System.Void TransportLineAI::CheckSegmentProblems(System.UInt16 segmentID, NetSegment& data) IL_0196: ldc.i4.1 IL_0197: br => Label34 IL_019C: Label13 IL_019C: ldloc.s 6 (UnityEngine.Vector3) IL_019E: ldarg.2 IL_019F: ldarg.3 IL_01A0: ldc.i4.2 IL_01A1: ldc.i4.0 IL_01A2: ldc.i4.0 IL_01A3: conv.i8 IL_01A4: ldarg.s 4 IL_01A6: ldc.i4.1 IL_01A7: ldc.i4.0 IL_01A8: ldc.r4 32 IL_01AD: ldloca.s 9 (PathUnit+Position) IL_01AF: ldloca.s 10 (PathUnit+Position) IL_01B1: ldloca.s 13 (System.Single) IL_01B3: ldloca.s 14 (System.Single) IL_01B5: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, Service service2, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, VehicleType stopType, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_01BA: brtrue => Label14 IL_01BF: ldarg.0 IL_01C0: ldarg.1 IL_01C1: call static System.Void TransportLineAI::CheckSegmentProblems(System.UInt16 segmentID, NetSegment& data) IL_01C6: ldc.i4.1 IL_01C7: br => Label35 IL_01CC: Label14 IL_01CC: ldloc.0 IL_01CD: ldfld Array16`1 NetManager::m_nodes IL_01D2: ldfld NetNode[] Array16`1::m_buffer IL_01D7: ldarg.1 IL_01D8: ldfld System.UInt16 NetSegment::m_startNode IL_01DD: ldelema NetNode IL_01E2: ldfld Flags NetNode::m_flags IL_01E7: ldc.i4 8192 IL_01EC: and IL_01ED: brfalse => Label15 IL_01F2: ldloca.s 8 (PathUnit+Position) IL_01F4: initobj PathUnit+Position IL_01FA: Label15 IL_01FA: ldloc.0 IL_01FB: ldfld Array16`1 NetManager::m_nodes IL_0200: ldfld NetNode[] Array16`1::m_buffer IL_0205: ldarg.1 IL_0206: ldfld System.UInt16 NetSegment::m_endNode IL_020B: ldelema NetNode IL_0210: ldfld Flags NetNode::m_flags IL_0215: ldc.i4 8192 IL_021A: and IL_021B: brfalse => Label16 IL_0220: ldloca.s 10 (PathUnit+Position) IL_0222: initobj PathUnit+Position IL_0228: Label16 IL_0228: ldarg.s 4 IL_022A: brfalse => Label17 IL_022F: ldloca.s 7 (PathUnit+Position) IL_0231: ldc.i4 128 IL_0236: stfld System.Byte Position::m_offset IL_023B: ldloca.s 8 (PathUnit+Position) IL_023D: ldc.i4 128 IL_0242: stfld System.Byte Position::m_offset IL_0247: ldloca.s 9 (PathUnit+Position) IL_0249: ldc.i4 128 IL_024E: stfld System.Byte Position::m_offset IL_0253: ldloca.s 10 (PathUnit+Position) IL_0255: ldc.i4 128 IL_025A: stfld System.Byte Position::m_offset IL_025F: br => Label18 IL_0264: Label17 IL_0264: ldloca.s 7 (PathUnit+Position) IL_0266: ldloca.s 7 (PathUnit+Position) IL_0268: ldfld System.Byte Position::m_offset IL_026D: ldc.i4.1 IL_026E: ldc.i4 254 IL_0273: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_0278: conv.u1 IL_0279: stfld System.Byte Position::m_offset IL_027E: ldloca.s 8 (PathUnit+Position) IL_0280: ldloca.s 8 (PathUnit+Position) IL_0282: ldfld System.Byte Position::m_offset IL_0287: ldc.i4.1 IL_0288: ldc.i4 254 IL_028D: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_0292: conv.u1 IL_0293: stfld System.Byte Position::m_offset IL_0298: ldloca.s 9 (PathUnit+Position) IL_029A: ldloca.s 9 (PathUnit+Position) IL_029C: ldfld System.Byte Position::m_offset IL_02A1: ldc.i4.1 IL_02A2: ldc.i4 254 IL_02A7: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_02AC: conv.u1 IL_02AD: stfld System.Byte Position::m_offset IL_02B2: ldloca.s 10 (PathUnit+Position) IL_02B4: ldloca.s 10 (PathUnit+Position) IL_02B6: ldfld System.Byte Position::m_offset IL_02BB: ldc.i4.1 IL_02BC: ldc.i4 254 IL_02C1: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_02C6: conv.u1 IL_02C7: stfld System.Byte Position::m_offset IL_02CC: Label18 IL_02CC: ldloca.s 7 (PathUnit+Position) IL_02CE: ldarg.s 4 IL_02D0: ldarg.s 5 IL_02D2: call static System.Boolean TransportLineAI::GetStopLane(Position& pos, VehicleType vehicleType, VehicleCategory vehicleCategory) IL_02D7: stloc.s 15 (System.Boolean) IL_02D9: ldloca.s 8 (PathUnit+Position) IL_02DB: ldarg.s 4 IL_02DD: ldarg.s 5 IL_02DF: call static System.Boolean TransportLineAI::GetStopLane(Position& pos, VehicleType vehicleType, VehicleCategory vehicleCategory) IL_02E4: stloc.s 16 (System.Boolean) IL_02E6: ldloca.s 9 (PathUnit+Position) IL_02E8: ldarg.s 4 IL_02EA: ldarg.s 5 IL_02EC: call static System.Boolean TransportLineAI::GetStopLane(Position& pos, VehicleType vehicleType, VehicleCategory vehicleCategory) IL_02F1: stloc.s 17 (System.Boolean) IL_02F3: ldloca.s 10 (PathUnit+Position) IL_02F5: ldarg.s 4 IL_02F7: ldarg.s 5 IL_02F9: call static System.Boolean TransportLineAI::GetStopLane(Position& pos, VehicleType vehicleType, VehicleCategory vehicleCategory) IL_02FE: stloc.s 18 (System.Boolean) IL_0300: ldloc.s 15 (System.Boolean) IL_0302: brtrue => Label19 IL_0307: ldloc.s 16 (System.Boolean) IL_0309: brfalse => Label20 IL_030E: Label19 IL_030E: ldloc.s 17 (System.Boolean) IL_0310: brtrue => Label21 IL_0315: ldloc.s 18 (System.Boolean) IL_0317: brtrue => Label22 IL_031C: Label20 IL_031C: ldarg.0 IL_031D: ldarg.1 IL_031E: call static System.Void TransportLineAI::CheckSegmentProblems(System.UInt16 segmentID, NetSegment& data) IL_0323: ldc.i4.1 IL_0324: br => Label36 IL_0329: Label21 IL_0329: Label22 IL_0329: ldsfld TrafficManager.Custom.PathFinding.CustomPathManager TrafficManager.Custom.PathFinding.CustomPathManager::_instance IL_032E: ldloca.s 21 IL_0330: ldloc.s 7 IL_0332: ldloc.s 8 IL_0334: ldloc.s 9 IL_0336: ldloc.s 10 IL_0338: ldarg.s 4 IL_033A: ldarg.s 5 IL_033C: ldarg.s 6 IL_033E: callvirt System.Boolean TrafficManager.Custom.PathFinding.CustomPathManager::CreateTransportLinePath(System.UInt32& path, Position startPosA, Position startPosB, Position endPosA, Position endPosB, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean skipQueue) IL_0343: brfalse => Label25 IL_0348: ldloca.s 7 (PathUnit+Position) IL_034A: ldfld System.UInt16 Position::m_segment IL_034F: brfalse => Label26 IL_0354: ldloca.s 8 (PathUnit+Position) IL_0356: ldfld System.UInt16 Position::m_segment IL_035B: brfalse => Label27 IL_0360: ldloc.0 IL_0361: ldfld Array16`1 NetManager::m_nodes IL_0366: ldfld NetNode[] Array16`1::m_buffer IL_036B: ldarg.1 IL_036C: ldfld System.UInt16 NetSegment::m_startNode IL_0371: ldelema NetNode IL_0376: dup IL_0377: ldfld Flags NetNode::m_flags IL_037C: ldc.i4 32768 IL_0381: or IL_0382: stfld Flags NetNode::m_flags IL_0387: br => Label28 IL_038C: Label26 IL_038C: Label27 IL_038C: ldloc.0 IL_038D: ldfld Array16`1 NetManager::m_nodes IL_0392: ldfld NetNode[] Array16`1::m_buffer IL_0397: ldarg.1 IL_0398: ldfld System.UInt16 NetSegment::m_startNode IL_039D: ldelema NetNode IL_03A2: dup IL_03A3: ldfld Flags NetNode::m_flags IL_03A8: ldc.i4 -32769 IL_03AD: and IL_03AE: stfld Flags NetNode::m_flags IL_03B3: Label28 IL_03B3: ldloca.s 9 (PathUnit+Position) IL_03B5: ldfld System.UInt16 Position::m_segment IL_03BA: brfalse => Label29 IL_03BF: ldloca.s 10 (PathUnit+Position) IL_03C1: ldfld System.UInt16 Position::m_segment IL_03C6: brfalse => Label30 IL_03CB: ldloc.0 IL_03CC: ldfld Array16`1 NetManager::m_nodes IL_03D1: ldfld NetNode[] Array16`1::m_buffer IL_03D6: ldarg.1 IL_03D7: ldfld System.UInt16 NetSegment::m_endNode IL_03DC: ldelema NetNode IL_03E1: dup IL_03E2: ldfld Flags NetNode::m_flags IL_03E7: ldc.i4 32768 IL_03EC: or IL_03ED: stfld Flags NetNode::m_flags IL_03F2: br => Label31 IL_03F7: Label29 IL_03F7: Label30 IL_03F7: ldloc.0 IL_03F8: ldfld Array16`1 NetManager::m_nodes IL_03FD: ldfld NetNode[] Array16`1::m_buffer IL_0402: ldarg.1 IL_0403: ldfld System.UInt16 NetSegment::m_endNode IL_0408: ldelema NetNode IL_040D: dup IL_040E: ldfld Flags NetNode::m_flags IL_0413: ldc.i4 -32769 IL_0418: and IL_0419: stfld Flags NetNode::m_flags IL_041E: Label31 IL_041E: ldarg.1 IL_041F: ldloc.s 21 (System.UInt32) IL_0421: stfld System.UInt32 NetSegment::m_path IL_0426: ldarg.1 IL_0427: dup IL_0428: ldfld Flags NetSegment::m_flags IL_042D: ldc.i4 256 IL_0432: or IL_0433: stfld Flags NetSegment::m_flags IL_0438: ldc.i4.0 IL_0439: br => Label37 IL_043E: Label25 IL_043E: ldarg.0 IL_043F: ldarg.1 IL_0440: call static System.Void TransportLineAI::CheckSegmentProblems(System.UInt16 segmentID, NetSegment& data) IL_0445: ldc.i4.1 IL_0446: // end original IL_0446: Label32 IL_0446: Label33 IL_0446: Label34 IL_0446: Label35 IL_0446: Label36 IL_0446: Label37 IL_0446: ret DONE ### Patch: virtual System.Void RoadBaseAI::ClickNodeButton(System.UInt16 nodeID, NetNode& data, System.Int32 index) ### Replacement: static System.Void RoadBaseAI::RoadBaseAI.ClickNodeButton_Patch0(RoadBaseAI this, System.UInt16 nodeID, NetNode& data, System.Int32 index) IL_0000: Local var 0: System.UInt16 IL_0000: Local var 1: NetManager IL_0000: Local var 2: NetInfo IL_0000: Local var 3: System.Boolean IL_0000: Local var 4: NetSegment/Flags IL_0000: // start original IL_0000: ldarg.2 IL_0001: ldfld Flags NetNode::m_flags IL_0006: ldc.i4 128 IL_000B: and IL_000C: brfalse => Label0 IL_0011: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0016: callvirt InfoMode InfoManager::get_CurrentMode() IL_001B: ldc.i4.s 30 IL_001D: bne.un => Label1 IL_0022: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0027: callvirt SubInfoMode InfoManager::get_CurrentSubMode() IL_002C: ldc.i4.1 IL_002D: bne.un => Label2 IL_0032: ldarg.3 IL_0033: ldc.i4.m1 IL_0034: bne.un => Label3 IL_0039: ldarg.1 IL_003A: call static System.Void TrafficManager.Patch._RoadBaseAI.ClickNodeButtonPatch::ToggleTrafficLight(System.UInt16 nodeId) IL_003F: ldarg.0 IL_0040: ldarg.1 IL_0041: ldarg.2 IL_0042: callvirt virtual System.Void NetAI::UpdateNodeFlags(System.UInt16 nodeID, NetNode& data) IL_0047: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_004C: ldfld NetNodeInstanceGuide NetManager::m_yieldLights IL_0051: callvirt virtual System.Void GuideTriggerBase::Disable() IL_0056: br => Label4 IL_005B: Label3 IL_005B: ldarg.3 IL_005C: ldc.i4.1 IL_005D: blt => Label5 IL_0062: ldarg.3 IL_0063: ldc.i4.8 IL_0064: bgt => Label6 IL_0069: ldarg.2 IL_006A: ldfld Flags NetNode::m_flags IL_006F: ldc.i4 25165824 IL_0074: and IL_0075: brtrue => Label7 IL_007A: ldarg.2 IL_007B: ldarg.3 IL_007C: ldc.i4.1 IL_007D: sub IL_007E: call System.UInt16 NetNode::GetSegment(System.Int32 index) IL_0083: stloc.0 IL_0084: ldloc.0 IL_0085: brfalse => Label8 IL_008A: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_008F: stloc.1 IL_0090: ldloc.1 IL_0091: ldfld Array16`1 NetManager::m_segments IL_0096: ldfld NetSegment[] Array16`1::m_buffer IL_009B: ldloc.0 IL_009C: ldelema NetSegment IL_00A1: call NetInfo NetSegment::get_Info() IL_00A6: stloc.2 IL_00A7: ldloc.2 IL_00A8: ldfld VehicleType NetInfo::m_vehicleTypes IL_00AD: ldc.i4 65601 IL_00B2: and IL_00B3: brfalse => Label9 IL_00B8: ldloc.1 IL_00B9: ldfld Array16`1 NetManager::m_segments IL_00BE: ldfld NetSegment[] Array16`1::m_buffer IL_00C3: ldloc.0 IL_00C4: ldelema NetSegment IL_00C9: ldfld System.UInt16 NetSegment::m_startNode IL_00CE: ldarg.1 IL_00CF: ceq IL_00D1: stloc.3 IL_00D2: ldloc.3 IL_00D3: brfalse => Label10 IL_00D8: ldc.i4 1073741824 IL_00DD: br => Label11 IL_00E2: Label10 IL_00E2: ldc.i4 -2147483648 IL_00E7: Label11 IL_00E7: stloc.s 4 (NetSegment+Flags) IL_00E9: ldloc.1 IL_00EA: ldfld Array16`1 NetManager::m_segments IL_00EF: ldfld NetSegment[] Array16`1::m_buffer IL_00F4: ldloc.0 IL_00F5: ldelema NetSegment IL_00FA: dup IL_00FB: ldfld Flags NetSegment::m_flags IL_0100: ldloc.s 4 (NetSegment+Flags) IL_0102: xor IL_0103: stfld Flags NetSegment::m_flags IL_0108: ldloc.1 IL_0109: ldfld Array16`1 NetManager::m_segments IL_010E: ldfld NetSegment[] Array16`1::m_buffer IL_0113: ldloc.0 IL_0114: ldelema NetSegment IL_0119: ldloc.0 IL_011A: ldc.i4.1 IL_011B: call System.Void NetSegment::UpdateLanes(System.UInt16 segmentID, System.Boolean loading) IL_0120: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0125: ldfld NetNodeInstanceGuide NetManager::m_yieldLights IL_012A: callvirt virtual System.Void GuideTriggerBase::Disable() IL_012F: // end original IL_012F: Label0 IL_012F: Label1 IL_012F: Label2 IL_012F: Label4 IL_012F: Label5 IL_012F: Label6 IL_012F: Label7 IL_012F: Label8 IL_012F: Label9 IL_012F: ret DONE ### Patch: static System.Void RoadBaseAI::GetTrafficLightNodeState(System.UInt16 nodeID, NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, FlagsLong& flags, UnityEngine.Color& color) ### Replacement: static System.Void RoadBaseAI::RoadBaseAI.GetTrafficLightNodeState_Patch1(System.UInt16 nodeID, NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, FlagsLong& flags, UnityEngine.Color& color) IL_0000: Local var 0: RoadBaseAI/TrafficLightState IL_0000: Local var 1: RoadBaseAI/TrafficLightState IL_0000: Local var 2: System.UInt32 IL_0000: Local var 3: System.UInt32 IL_0000: Local var 4: System.UInt32 IL_0000: Local var 5: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 5 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 5 (System.Boolean) IL_000E: ldloc 5 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 0 IL_001B: ldarg 1 IL_001F: ldarg 2 IL_0023: ldarg 3 IL_0027: ldarg 4 IL_002B: ldarg 5 IL_002F: call static System.Boolean TrafficManager.Patch._RoadBaseAI.GetTrafficLightNodeStatePatch::Prefix(System.UInt16 nodeID, NetNode& nodeData, System.UInt16 segmentID, NetSegment& segmentData, Flags& flags, UnityEngine.Color& color) IL_0034: stloc 5 (System.Boolean) IL_0038: Label1 IL_0038: nop IL_0039: ldloc 5 (System.Boolean) IL_003D: brfalse => Label0 IL_0042: // start original IL_0042: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0047: ldfld System.UInt32 SimulationManager::m_referenceFrameIndex IL_004C: ldc.i4.s 15 IL_004E: sub IL_004F: stloc.2 IL_0050: ldarg.0 IL_0051: ldc.i4.8 IL_0052: shl IL_0053: ldc.i4 32768 IL_0058: div.un IL_0059: stloc.3 IL_005A: ldloc.2 IL_005B: ldloc.3 IL_005C: sub IL_005D: ldc.i4 255 IL_0062: and IL_0063: stloc.s 4 (System.UInt32) IL_0065: ldarg.0 IL_0066: ldarg.3 IL_0067: ldloc.2 IL_0068: ldloc.3 IL_0069: sub IL_006A: ldloca.s 0 (RoadBaseAI+TrafficLightState) IL_006C: ldloca.s 1 (RoadBaseAI+TrafficLightState) IL_006E: call static System.Void RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData, System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState& pedestrianLightState) IL_0073: ldarg.s 5 IL_0075: ldc.r4 0.5 IL_007A: stfld System.Single UnityEngine.Color::a IL_007F: ldloc.0 IL_0080: switch => Labels2,3,4,5 IL_0095: br => Label6 IL_009A: Label2 IL_009A: ldarg.s 5 IL_009C: ldc.r4 1 IL_00A1: stfld System.Single UnityEngine.Color::g IL_00A6: br => Label7 IL_00AB: Label3 IL_00AB: ldloc.s 4 (System.UInt32) IL_00AD: ldc.i4.s 45 IL_00AF: bge.un => Label8 IL_00B4: ldarg.s 5 IL_00B6: ldc.r4 0 IL_00BB: stfld System.Single UnityEngine.Color::g IL_00C0: br => Label9 IL_00C5: Label8 IL_00C5: ldloc.s 4 (System.UInt32) IL_00C7: ldc.i4.s 60 IL_00C9: bge.un => Label10 IL_00CE: ldarg.s 5 IL_00D0: ldc.r4 1 IL_00D5: stfld System.Single UnityEngine.Color::r IL_00DA: br => Label11 IL_00DF: Label10 IL_00DF: ldarg.s 5 IL_00E1: ldc.r4 1 IL_00E6: stfld System.Single UnityEngine.Color::g IL_00EB: Label9 IL_00EB: Label11 IL_00EB: br => Label12 IL_00F0: Label4 IL_00F0: ldarg.s 5 IL_00F2: ldc.r4 0 IL_00F7: stfld System.Single UnityEngine.Color::g IL_00FC: br => Label13 IL_0101: Label5 IL_0101: ldloc.s 4 (System.UInt32) IL_0103: ldc.i4.s 45 IL_0105: bge.un => Label14 IL_010A: ldarg.s 5 IL_010C: ldc.r4 1 IL_0111: stfld System.Single UnityEngine.Color::r IL_0116: br => Label15 IL_011B: Label14 IL_011B: ldarg.s 5 IL_011D: ldc.r4 0 IL_0122: stfld System.Single UnityEngine.Color::g IL_0127: Label15 IL_0127: br => Label16 IL_012C: Label6 IL_012C: Label7 IL_012C: Label12 IL_012C: Label13 IL_012C: Label16 IL_012C: ldloc.1 IL_012D: switch => Labels17,18,19,20 IL_0142: br => Label21 IL_0147: Label17 IL_0147: ldarg.s 5 IL_0149: ldc.r4 1 IL_014E: stfld System.Single UnityEngine.Color::b IL_0153: br => Label22 IL_0158: Label18 IL_0158: ldloc.s 4 (System.UInt32) IL_015A: ldc.i4.s 45 IL_015C: bge.un => Label23 IL_0161: ldarg.s 5 IL_0163: ldc.r4 0 IL_0168: stfld System.Single UnityEngine.Color::b IL_016D: br => Label24 IL_0172: Label23 IL_0172: ldarg.s 5 IL_0174: ldc.r4 1 IL_0179: stfld System.Single UnityEngine.Color::b IL_017E: Label24 IL_017E: br => Label25 IL_0183: Label19 IL_0183: ldarg.s 5 IL_0185: ldc.r4 0 IL_018A: stfld System.Single UnityEngine.Color::b IL_018F: br => Label26 IL_0194: Label20 IL_0194: ldloc.s 4 (System.UInt32) IL_0196: ldc.i4.s 45 IL_0198: bge.un => Label27 IL_019D: ldloc.s 4 (System.UInt32) IL_019F: ldc.i4.8 IL_01A0: div.un IL_01A1: ldc.i4.1 IL_01A2: and IL_01A3: ldc.i4.1 IL_01A4: bne.un => Label28 IL_01A9: ldarg.s 5 IL_01AB: ldc.r4 1 IL_01B0: stfld System.Single UnityEngine.Color::b IL_01B5: Label28 IL_01B5: br => Label29 IL_01BA: Label27 IL_01BA: ldarg.s 5 IL_01BC: ldc.r4 0 IL_01C1: stfld System.Single UnityEngine.Color::b IL_01C6: Label29 IL_01C6: br => Label30 IL_01CB: // end original IL_01CB: Label21 IL_01CB: Label22 IL_01CB: Label25 IL_01CB: Label26 IL_01CB: Label30 IL_01CB: Label0 IL_01CB: ret DONE ### Patch: virtual System.Void RoadBaseAI::UpdateNode(System.UInt16 nodeID, NetNode& data) ### Replacement: static System.Void RoadBaseAI::RoadBaseAI.UpdateNode_Patch1(RoadBaseAI this, System.UInt16 nodeID, NetNode& data) IL_0000: Local var 0: Notification/ProblemStruct IL_0000: Local var 1: System.Int32 IL_0000: Local var 2: System.Int32 IL_0000: Local var 3: BuildingManager IL_0000: Local var 4: System.Int32 IL_0000: Local var 5: NetManager IL_0000: Local var 6: System.Int32 IL_0000: Local var 7: System.UInt16 IL_0000: Local var 8: System.Int32 IL_0000: Local var 9: System.Int32 IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.UInt16 IL_0000: Local var 12: System.Int32 IL_0000: Local var 13: System.Int32 IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: ldarg.2 IL_0003: call virtual System.Void NetAI::UpdateNode(System.UInt16 nodeID, NetNode& data) IL_0008: ldarg.2 IL_0009: ldfld ProblemStruct NetNode::m_problems IL_000E: ldc.i8 72057602627866624 IL_0017: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_001C: call static ProblemStruct Notification::RemoveProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0021: stloc.0 IL_0022: ldc.i4.0 IL_0023: stloc.1 IL_0024: ldc.i4.0 IL_0025: stloc.2 IL_0026: ldarg.2 IL_0027: ldarg.1 IL_0028: ldc.i4.0 IL_0029: ldc.i4.s 33 IL_002B: ldc.i4.1 IL_002C: ldc.i4.m1 IL_002D: conv.i8 IL_002E: ldc.i4.1 IL_002F: ldloca.s 1 (System.Int32) IL_0031: ldloca.s 2 (System.Int32) IL_0033: call System.Void NetNode::CountLanes(System.UInt16 nodeID, System.UInt16 ignoreSegment, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, System.Boolean onePerSegment, System.Int32& forward, System.Int32& backward) IL_0038: ldarg.2 IL_0039: ldfld Flags NetNode::m_flags IL_003E: ldc.i4 1024 IL_0043: and IL_0044: brfalse => Label0 IL_0049: ldarg.2 IL_004A: ldfld System.UInt16 NetNode::m_building IL_004F: brfalse => Label1 IL_0054: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0059: stloc.3 IL_005A: ldloc.1 IL_005B: brfalse => Label2 IL_0060: ldloc.3 IL_0061: ldfld Array16`1 BuildingManager::m_buildings IL_0066: ldfld Building[] Array16`1::m_buffer IL_006B: ldarg.2 IL_006C: ldfld System.UInt16 NetNode::m_building IL_0071: ldelema Building IL_0076: dup IL_0077: ldfld Flags Building::m_flags IL_007C: ldc.i4 128 IL_0081: or IL_0082: stfld Flags Building::m_flags IL_0087: br => Label3 IL_008C: Label2 IL_008C: ldloc.3 IL_008D: ldfld Array16`1 BuildingManager::m_buildings IL_0092: ldfld Building[] Array16`1::m_buffer IL_0097: ldarg.2 IL_0098: ldfld System.UInt16 NetNode::m_building IL_009D: ldelema Building IL_00A2: dup IL_00A3: ldfld Flags Building::m_flags IL_00A8: ldc.i4 -129 IL_00AD: and IL_00AE: stfld Flags Building::m_flags IL_00B3: Label3 IL_00B3: ldloc.2 IL_00B4: brfalse => Label4 IL_00B9: ldloc.3 IL_00BA: ldfld Array16`1 BuildingManager::m_buildings IL_00BF: ldfld Building[] Array16`1::m_buffer IL_00C4: ldarg.2 IL_00C5: ldfld System.UInt16 NetNode::m_building IL_00CA: ldelema Building IL_00CF: dup IL_00D0: ldfld Flags Building::m_flags IL_00D5: ldc.i4.s 64 IL_00D7: or IL_00D8: stfld Flags Building::m_flags IL_00DD: br => Label5 IL_00E2: Label4 IL_00E2: ldloc.3 IL_00E3: ldfld Array16`1 BuildingManager::m_buildings IL_00E8: ldfld Building[] Array16`1::m_buffer IL_00ED: ldarg.2 IL_00EE: ldfld System.UInt16 NetNode::m_building IL_00F3: ldelema Building IL_00F8: dup IL_00F9: ldfld Flags Building::m_flags IL_00FE: ldc.i4.s -65 IL_0100: and IL_0101: stfld Flags Building::m_flags IL_0106: Label5 IL_0106: br => Label6 IL_010B: Label0 IL_010B: Label1 IL_010B: ldloc.1 IL_010C: brfalse => Label7 IL_0111: ldloc.2 IL_0112: brfalse => Label8 IL_0117: Label7 IL_0117: ldloc.1 IL_0118: brtrue => Label9 IL_011D: ldloc.2 IL_011E: brfalse => Label10 IL_0123: Label8 IL_0123: ldloc.0 IL_0124: ldc.i4 4096 IL_0129: conv.i8 IL_012A: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_012F: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0134: stloc.0 IL_0135: Label6 IL_0135: Label9 IL_0135: Label10 IL_0135: ldloc.1 IL_0136: ldc.i4.1 IL_0137: bne.un => Label11 IL_013C: ldarg.2 IL_013D: dup IL_013E: ldfld Flags NetNode::m_flags IL_0143: ldc.i4 4194304 IL_0148: or IL_0149: stfld Flags NetNode::m_flags IL_014E: br => Label12 IL_0153: Label11 IL_0153: ldarg.2 IL_0154: dup IL_0155: ldfld Flags NetNode::m_flags IL_015A: ldc.i4 -4194305 IL_015F: and IL_0160: stfld Flags NetNode::m_flags IL_0165: Label12 IL_0165: ldloc.2 IL_0166: ldc.i4.1 IL_0167: bne.un => Label13 IL_016C: ldarg.2 IL_016D: dup IL_016E: ldfld Flags NetNode::m_flags IL_0173: ldc.i4 16777216 IL_0178: or IL_0179: stfld Flags NetNode::m_flags IL_017E: br => Label14 IL_0183: Label13 IL_0183: ldarg.2 IL_0184: dup IL_0185: ldfld Flags NetNode::m_flags IL_018A: ldc.i4 -16777217 IL_018F: and IL_0190: stfld Flags NetNode::m_flags IL_0195: Label14 IL_0195: ldarg.2 IL_0196: ldfld Flags NetNode::m_flags IL_019B: ldc.i4 262144 IL_01A0: and IL_01A1: brtrue => Label15 IL_01A6: ldc.i4.0 IL_01A7: stloc.s 4 (System.Int32) IL_01A9: ldc.i4.0 IL_01AA: stloc.1 IL_01AB: ldc.i4.0 IL_01AC: stloc.2 IL_01AD: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_01B2: stloc.s 5 (NetManager) IL_01B4: ldc.i4.0 IL_01B5: stloc.s 6 (System.Int32) IL_01B7: br => Label16 IL_01BC: Label24 IL_01BC: ldarg.2 IL_01BD: ldloc.s 6 (System.Int32) IL_01BF: call System.UInt16 NetNode::GetSegment(System.Int32 index) IL_01C4: stloc.s 7 (System.UInt16) IL_01C6: ldloc.s 7 (System.UInt16) IL_01C8: brfalse => Label17 IL_01CD: ldc.i4.0 IL_01CE: stloc.s 8 (System.Int32) IL_01D0: ldc.i4.0 IL_01D1: stloc.s 9 (System.Int32) IL_01D3: ldloc.s 5 (NetManager) IL_01D5: ldfld Array16`1 NetManager::m_segments IL_01DA: ldfld NetSegment[] Array16`1::m_buffer IL_01DF: ldloc.s 7 (System.UInt16) IL_01E1: ldelema NetSegment IL_01E6: ldloc.s 7 (System.UInt16) IL_01E8: ldc.i4.s 33 IL_01EA: ldc.i4.s 64 IL_01EC: ldc.i4.m1 IL_01ED: conv.i8 IL_01EE: ldloca.s 8 (System.Int32) IL_01F0: ldloca.s 9 (System.Int32) IL_01F2: call System.Void NetSegment::CountLanes(System.UInt16 segmentID, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, System.Int32& forward, System.Int32& backward) IL_01F7: ldloc.s 8 (System.Int32) IL_01F9: brtrue => Label18 IL_01FE: ldloc.s 9 (System.Int32) IL_0200: brfalse => Label19 IL_0205: Label18 IL_0205: ldloc.s 4 (System.Int32) IL_0207: ldc.i4.1 IL_0208: add IL_0209: stloc.s 4 (System.Int32) IL_020B: ldloc.s 8 (System.Int32) IL_020D: brfalse => Label20 IL_0212: ldc.i4.1 IL_0213: stloc.s 8 (System.Int32) IL_0215: Label20 IL_0215: ldloc.s 9 (System.Int32) IL_0217: brfalse => Label21 IL_021C: ldc.i4.1 IL_021D: stloc.s 9 (System.Int32) IL_021F: Label21 IL_021F: ldloc.s 5 (NetManager) IL_0221: ldfld Array16`1 NetManager::m_segments IL_0226: ldfld NetSegment[] Array16`1::m_buffer IL_022B: ldloc.s 7 (System.UInt16) IL_022D: ldelema NetSegment IL_0232: ldfld System.UInt16 NetSegment::m_endNode IL_0237: ldarg.1 IL_0238: bne.un => Label22 IL_023D: ldloc.1 IL_023E: ldloc.s 9 (System.Int32) IL_0240: add IL_0241: stloc.1 IL_0242: ldloc.2 IL_0243: ldloc.s 8 (System.Int32) IL_0245: add IL_0246: stloc.2 IL_0247: br => Label23 IL_024C: Label22 IL_024C: ldloc.1 IL_024D: ldloc.s 8 (System.Int32) IL_024F: add IL_0250: stloc.1 IL_0251: ldloc.2 IL_0252: ldloc.s 9 (System.Int32) IL_0254: add IL_0255: stloc.2 IL_0256: Label17 IL_0256: Label19 IL_0256: Label23 IL_0256: ldloc.s 6 (System.Int32) IL_0258: ldc.i4.1 IL_0259: add IL_025A: stloc.s 6 (System.Int32) IL_025C: Label16 IL_025C: ldloc.s 6 (System.Int32) IL_025E: ldc.i4.8 IL_025F: blt => Label24 IL_0264: ldloc.1 IL_0265: brfalse => Label25 IL_026A: ldloc.2 IL_026B: brfalse => Label26 IL_0270: Label25 IL_0270: ldloc.1 IL_0271: brtrue => Label27 IL_0276: ldloc.2 IL_0277: brtrue => Label28 IL_027C: Label27 IL_027C: ldloc.s 4 (System.Int32) IL_027E: ldc.i4.1 IL_027F: bne.un => Label29 IL_0284: Label26 IL_0284: Label28 IL_0284: ldloc.0 IL_0285: ldc.i8 8589934592 IL_028E: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0293: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0298: stloc.0 IL_0299: Label29 IL_0299: ldc.i4.0 IL_029A: stloc.s 4 (System.Int32) IL_029C: ldc.i4.0 IL_029D: stloc.1 IL_029E: ldc.i4.0 IL_029F: stloc.2 IL_02A0: ldc.i4.0 IL_02A1: stloc.s 10 (System.Int32) IL_02A3: br => Label30 IL_02A8: Label38 IL_02A8: ldarg.2 IL_02A9: ldloc.s 10 (System.Int32) IL_02AB: call System.UInt16 NetNode::GetSegment(System.Int32 index) IL_02B0: stloc.s 11 (System.UInt16) IL_02B2: ldloc.s 11 (System.UInt16) IL_02B4: brfalse => Label31 IL_02B9: ldc.i4.0 IL_02BA: stloc.s 12 (System.Int32) IL_02BC: ldc.i4.0 IL_02BD: stloc.s 13 (System.Int32) IL_02BF: ldloc.s 5 (NetManager) IL_02C1: ldfld Array16`1 NetManager::m_segments IL_02C6: ldfld NetSegment[] Array16`1::m_buffer IL_02CB: ldloc.s 11 (System.UInt16) IL_02CD: ldelema NetSegment IL_02D2: ldloc.s 11 (System.UInt16) IL_02D4: ldc.i4.s 33 IL_02D6: ldc.i4 65536 IL_02DB: ldc.i4.m1 IL_02DC: conv.i8 IL_02DD: ldloca.s 12 (System.Int32) IL_02DF: ldloca.s 13 (System.Int32) IL_02E1: call System.Void NetSegment::CountLanes(System.UInt16 segmentID, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, System.Int32& forward, System.Int32& backward) IL_02E6: ldloc.s 12 (System.Int32) IL_02E8: brtrue => Label32 IL_02ED: ldloc.s 13 (System.Int32) IL_02EF: brfalse => Label33 IL_02F4: Label32 IL_02F4: ldloc.s 4 (System.Int32) IL_02F6: ldc.i4.1 IL_02F7: add IL_02F8: stloc.s 4 (System.Int32) IL_02FA: ldloc.s 12 (System.Int32) IL_02FC: brfalse => Label34 IL_0301: ldc.i4.1 IL_0302: stloc.s 12 (System.Int32) IL_0304: Label34 IL_0304: ldloc.s 13 (System.Int32) IL_0306: brfalse => Label35 IL_030B: ldc.i4.1 IL_030C: stloc.s 13 (System.Int32) IL_030E: Label35 IL_030E: ldloc.s 5 (NetManager) IL_0310: ldfld Array16`1 NetManager::m_segments IL_0315: ldfld NetSegment[] Array16`1::m_buffer IL_031A: ldloc.s 11 (System.UInt16) IL_031C: ldelema NetSegment IL_0321: ldfld System.UInt16 NetSegment::m_endNode IL_0326: ldarg.1 IL_0327: bne.un => Label36 IL_032C: ldloc.1 IL_032D: ldloc.s 13 (System.Int32) IL_032F: add IL_0330: stloc.1 IL_0331: ldloc.2 IL_0332: ldloc.s 12 (System.Int32) IL_0334: add IL_0335: stloc.2 IL_0336: br => Label37 IL_033B: Label36 IL_033B: ldloc.1 IL_033C: ldloc.s 12 (System.Int32) IL_033E: add IL_033F: stloc.1 IL_0340: ldloc.2 IL_0341: ldloc.s 13 (System.Int32) IL_0343: add IL_0344: stloc.2 IL_0345: Label31 IL_0345: Label33 IL_0345: Label37 IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldc.i4.1 IL_0348: add IL_0349: stloc.s 10 (System.Int32) IL_034B: Label30 IL_034B: ldloc.s 10 (System.Int32) IL_034D: ldc.i4.8 IL_034E: blt => Label38 IL_0353: ldloc.1 IL_0354: brfalse => Label39 IL_0359: ldloc.2 IL_035A: brfalse => Label40 IL_035F: Label39 IL_035F: ldloc.1 IL_0360: brtrue => Label41 IL_0365: ldloc.2 IL_0366: brtrue => Label42 IL_036B: Label41 IL_036B: ldloc.s 4 (System.Int32) IL_036D: ldc.i4.1 IL_036E: bne.un => Label43 IL_0373: Label40 IL_0373: Label42 IL_0373: ldloc.0 IL_0374: ldc.i8 72057594037927936 IL_037D: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0382: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0387: stloc.0 IL_0388: Label15 IL_0388: Label43 IL_0388: ldarg.2 IL_0389: ldloc.0 IL_038A: stfld ProblemStruct NetNode::m_problems IL_038F: ldarg.2 IL_0390: call FlagsLong NetNode::get_flags() IL_0395: ldc.i8 4294967296 IL_039E: and IL_039F: ldc.i4.0 IL_03A0: conv.i8 IL_03A1: beq => Label44 IL_03A6: ldarg.1 IL_03A7: ldarg.2 IL_03A8: call static System.Void PedestrianZoneRoadAI::UpdateBollards(System.UInt16 nodeID, NetNode& nodeData) IL_03AD: // end original IL_03AD: Label44 IL_03AD: ldarg 1 IL_03B1: ldarg 2 IL_03B5: call static System.Void TrafficManager.Patch._RoadBaseAI.UpdateNodePatch::Postfix(System.UInt16 nodeID, NetNode& data) IL_03BA: ret DONE ### Patch: virtual System.Void RoadBaseAI::UpdateLanes(System.UInt16 segmentID, NetSegment& data, System.Boolean loading) ### Replacement: static System.Void RoadBaseAI::RoadBaseAI.UpdateLanes_Patch1(RoadBaseAI this, System.UInt16 segmentID, NetSegment& data, System.Boolean loading) IL_0000: Local var 0: NetManager IL_0000: Local var 1: System.Boolean IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: UnityEngine.Vector3 IL_0000: Local var 7: UnityEngine.Vector3 IL_0000: Local var 8: UnityEngine.Vector3 IL_0000: Local var 9: UnityEngine.Vector3 IL_0000: Local var 10: System.Boolean IL_0000: Local var 11: System.Boolean IL_0000: Local var 12: System.Int32 IL_0000: Local var 13: System.Int32 IL_0000: Local var 14: System.Int32 IL_0000: Local var 15: System.Int32 IL_0000: Local var 16: System.Int32 IL_0000: Local var 17: System.Int32 IL_0000: Local var 18: System.Boolean IL_0000: Local var 19: System.Boolean IL_0000: Local var 20: System.Int32 IL_0000: Local var 21: System.Int32 IL_0000: Local var 22: System.Int32 IL_0000: Local var 23: System.Int32 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Int32 IL_0000: Local var 26: System.Boolean IL_0000: Local var 27: System.Boolean IL_0000: Local var 28: NetLane/Flags IL_0000: Local var 29: System.Single IL_0000: Local var 30: System.Single IL_0000: Local var 31: System.UInt32 IL_0000: Local var 32: System.UInt32 IL_0000: Local var 33: System.Int32 IL_0000: Local var 34: NetInfo/Lane IL_0000: Local var 35: System.Single IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: UnityEngine.Vector3 IL_0000: Local var 41: UnityEngine.Vector3 IL_0000: Local var 42: NetLane/Flags IL_0000: Local var 43: NetLane/Flags IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Int32 IL_0000: Local var 46: System.Boolean IL_0000: Local var 47: System.Int32 IL_0000: Local var 48: System.Int32 IL_0000: Local var 49: System.Int32 IL_0000: Local var 50: System.Int32 IL_0000: Local var 51: System.Int32 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Int32 IL_0000: Local var 56: System.Int32 IL_0000: Local var 57: System.Int32 IL_0000: Local var 58: System.Int32 IL_0000: Local var 59: System.Int32 IL_0000: Local var 60: System.Int32 IL_0000: Local var 61: System.Int32 IL_0000: Local var 62: System.Int32 IL_0000: Local var 63: System.Int32 IL_0000: Local var 64: System.Boolean IL_0000: Local var 65: System.Int32 IL_0000: Local var 66: NetLane/Flags IL_0000: Local var 67: System.Int32 IL_0000: Local var 68: UnityEngine.Vector3 IL_0000: Local var 69: System.Int32 IL_0000: Local var 70: UnityEngine.Vector3 IL_0000: Local var 71: System.Int32 IL_0000: Local var 72: UnityEngine.Vector3 IL_0000: Local var 73: System.Int32 IL_0000: Local var 74: UnityEngine.Vector3 IL_0000: Local var 75: System.Int32 IL_0000: Local var 76: System.Int32 IL_0000: Local var 77: System.UInt16 IL_0000: Local var 78: System.Int32 IL_0000: Local var 79: NetInfo IL_0000: Local var 80: UnityEngine.Vector3 IL_0000: Local var 81: System.Single IL_0000: Local var 82: UnityEngine.Vector3 IL_0000: Local var 83: UnityEngine.Vector3 IL_0000: Local var 84: UnityEngine.Vector3 IL_0000: Local var 85: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_000B: ldfld SimulationMetaData SimulationManager::m_metaData IL_0010: ldfld MetaBool SimulationMetaData::m_invertTraffic IL_0015: ldc.i4.2 IL_0016: ceq IL_0018: stloc.1 IL_0019: ldarg.2 IL_001A: ldarg.1 IL_001B: ldc.i4.1 IL_001C: ldc.i4.1 IL_001D: ldc.i4.1 IL_001E: ldloca.s 2 (UnityEngine.Vector3) IL_0020: ldloca.s 6 (UnityEngine.Vector3) IL_0022: ldloca.s 10 (System.Boolean) IL_0024: call System.Void NetSegment::CalculateCorner(System.UInt16 segmentID, System.Boolean heightOffset, System.Boolean start, System.Boolean leftSide, UnityEngine.Vector3& cornerPos, UnityEngine.Vector3& cornerDirection, System.Boolean& smooth) IL_0029: ldarg.2 IL_002A: ldarg.1 IL_002B: ldc.i4.1 IL_002C: ldc.i4.0 IL_002D: ldc.i4.1 IL_002E: ldloca.s 5 (UnityEngine.Vector3) IL_0030: ldloca.s 9 (UnityEngine.Vector3) IL_0032: ldloca.s 11 (System.Boolean) IL_0034: call System.Void NetSegment::CalculateCorner(System.UInt16 segmentID, System.Boolean heightOffset, System.Boolean start, System.Boolean leftSide, UnityEngine.Vector3& cornerPos, UnityEngine.Vector3& cornerDirection, System.Boolean& smooth) IL_0039: ldarg.2 IL_003A: ldarg.1 IL_003B: ldc.i4.1 IL_003C: ldc.i4.1 IL_003D: ldc.i4.0 IL_003E: ldloca.s 3 (UnityEngine.Vector3) IL_0040: ldloca.s 7 (UnityEngine.Vector3) IL_0042: ldloca.s 10 (System.Boolean) IL_0044: call System.Void NetSegment::CalculateCorner(System.UInt16 segmentID, System.Boolean heightOffset, System.Boolean start, System.Boolean leftSide, UnityEngine.Vector3& cornerPos, UnityEngine.Vector3& cornerDirection, System.Boolean& smooth) IL_0049: ldarg.2 IL_004A: ldarg.1 IL_004B: ldc.i4.1 IL_004C: ldc.i4.0 IL_004D: ldc.i4.0 IL_004E: ldloca.s 4 (UnityEngine.Vector3) IL_0050: ldloca.s 8 (UnityEngine.Vector3) IL_0052: ldloca.s 11 (System.Boolean) IL_0054: call System.Void NetSegment::CalculateCorner(System.UInt16 segmentID, System.Boolean heightOffset, System.Boolean start, System.Boolean leftSide, UnityEngine.Vector3& cornerPos, UnityEngine.Vector3& cornerDirection, System.Boolean& smooth) IL_0059: ldarg.2 IL_005A: ldfld Flags NetSegment::m_flags IL_005F: ldc.i4.s 16 IL_0061: and IL_0062: brfalse => Label0 IL_0067: ldarg.2 IL_0068: ldloca.s 3 (UnityEngine.Vector3) IL_006A: ldfld System.Single UnityEngine.Vector3::z IL_006F: ldloca.s 2 (UnityEngine.Vector3) IL_0071: ldfld System.Single UnityEngine.Vector3::z IL_0076: sub IL_0077: ldloca.s 3 (UnityEngine.Vector3) IL_0079: ldfld System.Single UnityEngine.Vector3::x IL_007E: ldloca.s 2 (UnityEngine.Vector3) IL_0080: ldfld System.Single UnityEngine.Vector3::x IL_0085: sub IL_0086: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_008B: ldc.r4 40.74366 IL_0090: mul IL_0091: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_0096: ldc.i4 255 IL_009B: and IL_009C: conv.u1 IL_009D: stfld System.Byte NetSegment::m_cornerAngleStart IL_00A2: ldarg.2 IL_00A3: ldloca.s 5 (UnityEngine.Vector3) IL_00A5: ldfld System.Single UnityEngine.Vector3::z IL_00AA: ldloca.s 4 (UnityEngine.Vector3) IL_00AC: ldfld System.Single UnityEngine.Vector3::z IL_00B1: sub IL_00B2: ldloca.s 5 (UnityEngine.Vector3) IL_00B4: ldfld System.Single UnityEngine.Vector3::x IL_00B9: ldloca.s 4 (UnityEngine.Vector3) IL_00BB: ldfld System.Single UnityEngine.Vector3::x IL_00C0: sub IL_00C1: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_00C6: ldc.r4 40.74366 IL_00CB: mul IL_00CC: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00D1: ldc.i4 255 IL_00D6: and IL_00D7: conv.u1 IL_00D8: stfld System.Byte NetSegment::m_cornerAngleEnd IL_00DD: br => Label1 IL_00E2: Label0 IL_00E2: ldarg.2 IL_00E3: ldloca.s 2 (UnityEngine.Vector3) IL_00E5: ldfld System.Single UnityEngine.Vector3::z IL_00EA: ldloca.s 3 (UnityEngine.Vector3) IL_00EC: ldfld System.Single UnityEngine.Vector3::z IL_00F1: sub IL_00F2: ldloca.s 2 (UnityEngine.Vector3) IL_00F4: ldfld System.Single UnityEngine.Vector3::x IL_00F9: ldloca.s 3 (UnityEngine.Vector3) IL_00FB: ldfld System.Single UnityEngine.Vector3::x IL_0100: sub IL_0101: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0106: ldc.r4 40.74366 IL_010B: mul IL_010C: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_0111: ldc.i4 255 IL_0116: and IL_0117: conv.u1 IL_0118: stfld System.Byte NetSegment::m_cornerAngleStart IL_011D: ldarg.2 IL_011E: ldloca.s 4 (UnityEngine.Vector3) IL_0120: ldfld System.Single UnityEngine.Vector3::z IL_0125: ldloca.s 5 (UnityEngine.Vector3) IL_0127: ldfld System.Single UnityEngine.Vector3::z IL_012C: sub IL_012D: ldloca.s 4 (UnityEngine.Vector3) IL_012F: ldfld System.Single UnityEngine.Vector3::x IL_0134: ldloca.s 5 (UnityEngine.Vector3) IL_0136: ldfld System.Single UnityEngine.Vector3::x IL_013B: sub IL_013C: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0141: ldc.r4 40.74366 IL_0146: mul IL_0147: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_014C: ldc.i4 255 IL_0151: and IL_0152: conv.u1 IL_0153: stfld System.Byte NetSegment::m_cornerAngleEnd IL_0158: Label1 IL_0158: ldc.i4.0 IL_0159: stloc.s 12 (System.Int32) IL_015B: ldc.i4.0 IL_015C: stloc.s 13 (System.Int32) IL_015E: ldc.i4.0 IL_015F: stloc.s 14 (System.Int32) IL_0161: ldc.i4.0 IL_0162: stloc.s 15 (System.Int32) IL_0164: ldc.i4.0 IL_0165: stloc.s 16 (System.Int32) IL_0167: ldc.i4.0 IL_0168: stloc.s 17 (System.Int32) IL_016A: ldc.i4.0 IL_016B: stloc.s 18 (System.Boolean) IL_016D: ldc.i4.0 IL_016E: stloc.s 19 (System.Boolean) IL_0170: ldloc.0 IL_0171: ldfld Array16`1 NetManager::m_nodes IL_0176: ldfld NetNode[] Array16`1::m_buffer IL_017B: ldarg.2 IL_017C: ldfld System.UInt16 NetSegment::m_endNode IL_0181: ldelema NetNode IL_0186: ldarg.2 IL_0187: ldfld System.UInt16 NetSegment::m_endNode IL_018C: ldarg.1 IL_018D: ldc.i4.1 IL_018E: ldc.i4.s 33 IL_0190: ldc.i4.1 IL_0191: ldc.i4.m1 IL_0192: conv.i8 IL_0193: ldarg.2 IL_0194: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0199: call static UnityEngine.Vector3 UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a) IL_019E: ldc.i4.0 IL_019F: ldloca.s 12 (System.Int32) IL_01A1: ldloca.s 13 (System.Int32) IL_01A3: ldloca.s 14 (System.Int32) IL_01A5: ldloca.s 15 (System.Int32) IL_01A7: ldloca.s 16 (System.Int32) IL_01A9: ldloca.s 17 (System.Int32) IL_01AB: call System.Void NetNode::CountLanes(System.UInt16 nodeID, System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, UnityEngine.Vector3 direction, System.Boolean strictCheck, System.Int32& left, System.Int32& forward, System.Int32& right, System.Int32& left2, System.Int32& forward2, System.Int32& right2) IL_01B0: ldloc.0 IL_01B1: ldfld Array16`1 NetManager::m_nodes IL_01B6: ldfld NetNode[] Array16`1::m_buffer IL_01BB: ldarg.2 IL_01BC: ldfld System.UInt16 NetSegment::m_endNode IL_01C1: ldelema NetNode IL_01C6: ldfld Flags NetNode::m_flags IL_01CB: ldc.i4 1136 IL_01D0: and IL_01D1: brfalse => Label2 IL_01D6: ldloc.s 12 (System.Int32) IL_01D8: ldloc.s 13 (System.Int32) IL_01DA: add IL_01DB: ldloc.s 14 (System.Int32) IL_01DD: add IL_01DE: brtrue => Label3 IL_01E3: ldc.i4.1 IL_01E4: stloc.s 19 (System.Boolean) IL_01E6: br => Label4 IL_01EB: Label3 IL_01EB: ldc.i4.1 IL_01EC: stloc.s 18 (System.Boolean) IL_01EE: Label2 IL_01EE: Label4 IL_01EE: ldc.i4.0 IL_01EF: stloc.s 20 (System.Int32) IL_01F1: ldc.i4.0 IL_01F2: stloc.s 21 (System.Int32) IL_01F4: ldc.i4.0 IL_01F5: stloc.s 22 (System.Int32) IL_01F7: ldc.i4.0 IL_01F8: stloc.s 23 (System.Int32) IL_01FA: ldc.i4.0 IL_01FB: stloc.s 24 (System.Int32) IL_01FD: ldc.i4.0 IL_01FE: stloc.s 25 (System.Int32) IL_0200: ldc.i4.0 IL_0201: stloc.s 26 (System.Boolean) IL_0203: ldc.i4.0 IL_0204: stloc.s 27 (System.Boolean) IL_0206: ldloc.0 IL_0207: ldfld Array16`1 NetManager::m_nodes IL_020C: ldfld NetNode[] Array16`1::m_buffer IL_0211: ldarg.2 IL_0212: ldfld System.UInt16 NetSegment::m_startNode IL_0217: ldelema NetNode IL_021C: ldarg.2 IL_021D: ldfld System.UInt16 NetSegment::m_startNode IL_0222: ldarg.1 IL_0223: ldc.i4.1 IL_0224: ldc.i4.s 33 IL_0226: ldc.i4.1 IL_0227: ldc.i4.m1 IL_0228: conv.i8 IL_0229: ldarg.2 IL_022A: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_022F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a) IL_0234: ldc.i4.0 IL_0235: ldloca.s 20 (System.Int32) IL_0237: ldloca.s 21 (System.Int32) IL_0239: ldloca.s 22 (System.Int32) IL_023B: ldloca.s 23 (System.Int32) IL_023D: ldloca.s 24 (System.Int32) IL_023F: ldloca.s 25 (System.Int32) IL_0241: call System.Void NetNode::CountLanes(System.UInt16 nodeID, System.UInt16 ignoreSegment, Direction directions, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, UnityEngine.Vector3 direction, System.Boolean strictCheck, System.Int32& left, System.Int32& forward, System.Int32& right, System.Int32& left2, System.Int32& forward2, System.Int32& right2) IL_0246: ldloc.0 IL_0247: ldfld Array16`1 NetManager::m_nodes IL_024C: ldfld NetNode[] Array16`1::m_buffer IL_0251: ldarg.2 IL_0252: ldfld System.UInt16 NetSegment::m_startNode IL_0257: ldelema NetNode IL_025C: ldfld Flags NetNode::m_flags IL_0261: ldc.i4 1136 IL_0266: and IL_0267: brfalse => Label5 IL_026C: ldloc.s 20 (System.Int32) IL_026E: ldloc.s 21 (System.Int32) IL_0270: add IL_0271: ldloc.s 22 (System.Int32) IL_0273: add IL_0274: brtrue => Label6 IL_0279: ldc.i4.1 IL_027A: stloc.s 27 (System.Boolean) IL_027C: br => Label7 IL_0281: Label6 IL_0281: ldc.i4.1 IL_0282: stloc.s 26 (System.Boolean) IL_0284: Label5 IL_0284: Label7 IL_0284: ldc.i4.0 IL_0285: stloc.s 28 (NetLane+Flags) IL_0287: ldloc.s 15 (System.Int32) IL_0289: brfalse => Label8 IL_028E: ldloc.s 12 (System.Int32) IL_0290: brtrue => Label9 IL_0295: ldloc.s 28 (NetLane+Flags) IL_0297: ldarg.2 IL_0298: ldfld Flags NetSegment::m_flags IL_029D: ldc.i4.s 16 IL_029F: and IL_02A0: brfalse => Label10 IL_02A5: ldc.i4 4096 IL_02AA: br => Label11 IL_02AF: Label10 IL_02AF: ldc.i4 16384 IL_02B4: Label11 IL_02B4: or IL_02B5: stloc.s 28 (NetLane+Flags) IL_02B7: Label8 IL_02B7: Label9 IL_02B7: ldloc.s 17 (System.Int32) IL_02B9: brfalse => Label12 IL_02BE: ldloc.s 14 (System.Int32) IL_02C0: brtrue => Label13 IL_02C5: ldloc.s 28 (NetLane+Flags) IL_02C7: ldarg.2 IL_02C8: ldfld Flags NetSegment::m_flags IL_02CD: ldc.i4.s 16 IL_02CF: and IL_02D0: brfalse => Label14 IL_02D5: ldc.i4 8192 IL_02DA: br => Label15 IL_02DF: Label14 IL_02DF: ldc.i4 32768 IL_02E4: Label15 IL_02E4: or IL_02E5: stloc.s 28 (NetLane+Flags) IL_02E7: Label12 IL_02E7: Label13 IL_02E7: ldloc.s 23 (System.Int32) IL_02E9: brfalse => Label16 IL_02EE: ldloc.s 20 (System.Int32) IL_02F0: brtrue => Label17 IL_02F5: ldloc.s 28 (NetLane+Flags) IL_02F7: ldarg.2 IL_02F8: ldfld Flags NetSegment::m_flags IL_02FD: ldc.i4.s 16 IL_02FF: and IL_0300: brfalse => Label18 IL_0305: ldc.i4 16384 IL_030A: br => Label19 IL_030F: Label18 IL_030F: ldc.i4 4096 IL_0314: Label19 IL_0314: or IL_0315: stloc.s 28 (NetLane+Flags) IL_0317: Label16 IL_0317: Label17 IL_0317: ldloc.s 25 (System.Int32) IL_0319: brfalse => Label20 IL_031E: ldloc.s 22 (System.Int32) IL_0320: brtrue => Label21 IL_0325: ldloc.s 28 (NetLane+Flags) IL_0327: ldarg.2 IL_0328: ldfld Flags NetSegment::m_flags IL_032D: ldc.i4.s 16 IL_032F: and IL_0330: brfalse => Label22 IL_0335: ldc.i4 32768 IL_033A: br => Label23 IL_033F: Label22 IL_033F: ldc.i4 8192 IL_0344: Label23 IL_0344: or IL_0345: stloc.s 28 (NetLane+Flags) IL_0347: Label20 IL_0347: Label21 IL_0347: ldarg.2 IL_0348: ldfld Flags NetSegment::m_flags IL_034D: ldc.i4 1073741824 IL_0352: and IL_0353: brfalse => Label24 IL_0358: ldloc.s 28 (NetLane+Flags) IL_035A: ldarg.2 IL_035B: ldfld Flags NetSegment::m_flags IL_0360: ldc.i4.s 16 IL_0362: and IL_0363: brfalse => Label25 IL_0368: ldc.i4 2048 IL_036D: br => Label26 IL_0372: Label25 IL_0372: ldc.i4 1024 IL_0377: Label26 IL_0377: or IL_0378: stloc.s 28 (NetLane+Flags) IL_037A: Label24 IL_037A: ldarg.2 IL_037B: ldfld Flags NetSegment::m_flags IL_0380: ldc.i4 -2147483648 IL_0385: and IL_0386: brfalse => Label27 IL_038B: ldloc.s 28 (NetLane+Flags) IL_038D: ldarg.2 IL_038E: ldfld Flags NetSegment::m_flags IL_0393: ldc.i4.s 16 IL_0395: and IL_0396: brfalse => Label28 IL_039B: ldc.i4 1024 IL_03A0: br => Label29 IL_03A5: Label28 IL_03A5: ldc.i4 2048 IL_03AA: Label29 IL_03AA: or IL_03AB: stloc.s 28 (NetLane+Flags) IL_03AD: Label27 IL_03AD: ldc.r4 0 IL_03B2: stloc.s 29 (System.Single) IL_03B4: ldc.r4 0 IL_03B9: stloc.s 30 (System.Single) IL_03BB: ldc.i4.0 IL_03BC: stloc.s 31 (System.UInt32) IL_03BE: ldarg.2 IL_03BF: ldfld System.UInt32 NetSegment::m_lanes IL_03C4: stloc.s 32 (System.UInt32) IL_03C6: ldc.i4.0 IL_03C7: stloc.s 33 (System.Int32) IL_03C9: br => Label30 IL_03CE: Label107 IL_03CE: ldloc.s 32 (System.UInt32) IL_03D0: brtrue => Label31 IL_03D5: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_03DA: ldloca.s 32 (System.UInt32) IL_03DC: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_03E1: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_03E6: ldarg.1 IL_03E7: ldc.i4.1 IL_03E8: callvirt System.Boolean NetManager::CreateLanes(System.UInt32& firstLane, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segment, System.Int32 count) IL_03ED: brfalse => Label32 IL_03F2: ldloc.s 31 (System.UInt32) IL_03F4: brfalse => Label33 IL_03F9: ldloc.0 IL_03FA: ldfld Array32`1 NetManager::m_lanes IL_03FF: ldfld NetLane[] Array32`1::m_buffer IL_0404: ldloc.s 31 (System.UInt32) IL_0406: conv.u IL_0407: ldelema NetLane IL_040C: ldloc.s 32 (System.UInt32) IL_040E: stfld System.UInt32 NetLane::m_nextLane IL_0413: br => Label34 IL_0418: Label33 IL_0418: ldarg.2 IL_0419: ldloc.s 32 (System.UInt32) IL_041B: stfld System.UInt32 NetSegment::m_lanes IL_0420: Label34 IL_0420: br => Label35 IL_0425: Label32 IL_0425: br => Label36 IL_042A: Label31 IL_042A: Label35 IL_042A: ldarg.0 IL_042B: ldfld NetInfo NetAI::m_info IL_0430: ldfld Lane[] NetInfo::m_lanes IL_0435: ldloc.s 33 (System.Int32) IL_0437: ldelem.ref IL_0438: stloc.s 34 (NetInfo+Lane) IL_043A: ldloc.s 34 (NetInfo+Lane) IL_043C: ldfld System.Single Lane::m_position IL_0441: ldarg.0 IL_0442: ldfld NetInfo NetAI::m_info IL_0447: ldfld System.Single NetInfo::m_halfWidth IL_044C: ldc.r4 2 IL_0451: mul IL_0452: div IL_0453: ldc.r4 0.5 IL_0458: add IL_0459: stloc.s 35 (System.Single) IL_045B: ldarg.2 IL_045C: ldfld Flags NetSegment::m_flags IL_0461: ldc.i4.s 16 IL_0463: and IL_0464: brfalse => Label37 IL_0469: ldc.r4 1 IL_046E: ldloc.s 35 (System.Single) IL_0470: sub IL_0471: stloc.s 35 (System.Single) IL_0473: Label37 IL_0473: ldloc.2 IL_0474: ldloc.3 IL_0475: ldloc.2 IL_0476: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_047B: ldloc.s 35 (System.Single) IL_047D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0482: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0487: stloc.s 36 (UnityEngine.Vector3) IL_0489: ldloc.s 6 (UnityEngine.Vector3) IL_048B: ldloc.s 7 (UnityEngine.Vector3) IL_048D: ldloc.s 35 (System.Single) IL_048F: call static UnityEngine.Vector3 UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b, System.Single t) IL_0494: stloc.s 37 (UnityEngine.Vector3) IL_0496: ldloc.s 4 (UnityEngine.Vector3) IL_0498: ldloc.s 5 (UnityEngine.Vector3) IL_049A: ldloc.s 4 (UnityEngine.Vector3) IL_049C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04A1: ldloc.s 35 (System.Single) IL_04A3: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04A8: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04AD: stloc.s 38 (UnityEngine.Vector3) IL_04AF: ldloc.s 8 (UnityEngine.Vector3) IL_04B1: ldloc.s 9 (UnityEngine.Vector3) IL_04B3: ldloc.s 35 (System.Single) IL_04B5: call static UnityEngine.Vector3 UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b, System.Single t) IL_04BA: stloc.s 39 (UnityEngine.Vector3) IL_04BC: ldloca.s 36 (UnityEngine.Vector3) IL_04BE: dup IL_04BF: ldfld System.Single UnityEngine.Vector3::y IL_04C4: ldloc.s 34 (NetInfo+Lane) IL_04C6: ldfld System.Single Lane::m_verticalOffset IL_04CB: add IL_04CC: stfld System.Single UnityEngine.Vector3::y IL_04D1: ldloca.s 38 (UnityEngine.Vector3) IL_04D3: dup IL_04D4: ldfld System.Single UnityEngine.Vector3::y IL_04D9: ldloc.s 34 (NetInfo+Lane) IL_04DB: ldfld System.Single Lane::m_verticalOffset IL_04E0: add IL_04E1: stfld System.Single UnityEngine.Vector3::y IL_04E6: ldloc.s 36 (UnityEngine.Vector3) IL_04E8: ldloc.s 37 (UnityEngine.Vector3) IL_04EA: ldloc.s 38 (UnityEngine.Vector3) IL_04EC: ldloc.s 39 (UnityEngine.Vector3) IL_04EE: ldloc.s 10 (System.Boolean) IL_04F0: ldloc.s 11 (System.Boolean) IL_04F2: ldloca.s 40 (UnityEngine.Vector3) IL_04F4: ldloca.s 41 (UnityEngine.Vector3) IL_04F6: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04FB: ldloc.0 IL_04FC: ldfld Array32`1 NetManager::m_lanes IL_0501: ldfld NetLane[] Array32`1::m_buffer IL_0506: ldloc.s 32 (System.UInt32) IL_0508: conv.u IL_0509: ldelema NetLane IL_050E: ldfld System.UInt16 NetLane::m_flags IL_0513: stloc.s 42 (NetLane+Flags) IL_0515: ldloc.s 28 (NetLane+Flags) IL_0517: stloc.s 43 (NetLane+Flags) IL_0519: ldloc.s 42 (NetLane+Flags) IL_051B: ldc.i4 -64753 IL_0520: and IL_0521: stloc.s 42 (NetLane+Flags) IL_0523: ldloc.s 34 (NetInfo+Lane) IL_0525: ldfld Direction Lane::m_finalDirection IL_052A: ldc.i4.3 IL_052B: and IL_052C: conv.u1 IL_052D: ldc.i4.2 IL_052E: bne.un => Label38 IL_0533: ldloc.s 43 (NetLane+Flags) IL_0535: ldc.i4 -2049 IL_053A: and IL_053B: stloc.s 43 (NetLane+Flags) IL_053D: Label38 IL_053D: ldloc.s 34 (NetInfo+Lane) IL_053F: ldfld Direction Lane::m_finalDirection IL_0544: ldc.i4.3 IL_0545: and IL_0546: conv.u1 IL_0547: ldc.i4.1 IL_0548: bne.un => Label39 IL_054D: ldloc.s 43 (NetLane+Flags) IL_054F: ldc.i4 -1025 IL_0554: and IL_0555: stloc.s 43 (NetLane+Flags) IL_0557: Label39 IL_0557: ldloc.s 34 (NetInfo+Lane) IL_0559: ldfld VehicleType Lane::m_vehicleType IL_055E: ldc.i4 2048 IL_0563: and IL_0564: brfalse => Label40 IL_0569: ldloc.s 43 (NetLane+Flags) IL_056B: ldc.i4 -3073 IL_0570: and IL_0571: stloc.s 43 (NetLane+Flags) IL_0573: Label40 IL_0573: ldloc.s 42 (NetLane+Flags) IL_0575: ldloc.s 43 (NetLane+Flags) IL_0577: or IL_0578: stloc.s 42 (NetLane+Flags) IL_057A: ldloc.1 IL_057B: brfalse => Label41 IL_0580: ldloc.s 42 (NetLane+Flags) IL_0582: ldc.i4.4 IL_0583: or IL_0584: stloc.s 42 (NetLane+Flags) IL_0586: br => Label42 IL_058B: Label41 IL_058B: ldloc.s 42 (NetLane+Flags) IL_058D: ldc.i4.s -5 IL_058F: and IL_0590: stloc.s 42 (NetLane+Flags) IL_0592: Label42 IL_0592: ldc.i4.0 IL_0593: stloc.s 44 (System.Int32) IL_0595: ldc.i4 255 IL_059A: stloc.s 45 (System.Int32) IL_059C: ldloc.s 34 (NetInfo+Lane) IL_059E: ldfld LaneType Lane::m_laneType IL_05A3: ldc.i4.s 33 IL_05A5: and IL_05A6: conv.u1 IL_05A7: brfalse => Label43 IL_05AC: ldloc.s 34 (NetInfo+Lane) IL_05AE: ldfld Direction Lane::m_finalDirection IL_05B3: ldc.i4.1 IL_05B4: and IL_05B5: conv.u1 IL_05B6: ldc.i4.0 IL_05B7: ceq IL_05B9: ldc.i4.0 IL_05BA: ceq IL_05BC: ldarg.2 IL_05BD: ldfld Flags NetSegment::m_flags IL_05C2: ldc.i4.s 16 IL_05C4: and IL_05C5: ldc.i4.0 IL_05C6: ceq IL_05C8: ceq IL_05CA: stloc.s 46 (System.Boolean) IL_05CC: ldloc.s 46 (System.Boolean) IL_05CE: brfalse => Label44 IL_05D3: ldloc.s 12 (System.Int32) IL_05D5: stloc.s 47 (System.Int32) IL_05D7: ldloc.s 13 (System.Int32) IL_05D9: stloc.s 48 (System.Int32) IL_05DB: ldloc.s 14 (System.Int32) IL_05DD: stloc.s 49 (System.Int32) IL_05DF: br => Label45 IL_05E4: Label44 IL_05E4: ldloc.s 20 (System.Int32) IL_05E6: stloc.s 47 (System.Int32) IL_05E8: ldloc.s 21 (System.Int32) IL_05EA: stloc.s 48 (System.Int32) IL_05EC: ldloc.s 22 (System.Int32) IL_05EE: stloc.s 49 (System.Int32) IL_05F0: Label45 IL_05F0: ldloc.s 34 (NetInfo+Lane) IL_05F2: ldfld Direction Lane::m_finalDirection IL_05F7: ldc.i4.1 IL_05F8: and IL_05F9: conv.u1 IL_05FA: brfalse => Label46 IL_05FF: ldloc.s 34 (NetInfo+Lane) IL_0601: ldfld System.Int32 Lane::m_similarLaneIndex IL_0606: stloc.s 50 (System.Int32) IL_0608: ldloc.s 34 (NetInfo+Lane) IL_060A: ldfld System.Int32 Lane::m_similarLaneCount IL_060F: ldloc.s 34 (NetInfo+Lane) IL_0611: ldfld System.Int32 Lane::m_similarLaneIndex IL_0616: sub IL_0617: ldc.i4.1 IL_0618: sub IL_0619: stloc.s 51 (System.Int32) IL_061B: br => Label47 IL_0620: Label46 IL_0620: ldloc.s 34 (NetInfo+Lane) IL_0622: ldfld System.Int32 Lane::m_similarLaneCount IL_0627: ldloc.s 34 (NetInfo+Lane) IL_0629: ldfld System.Int32 Lane::m_similarLaneIndex IL_062E: sub IL_062F: ldc.i4.1 IL_0630: sub IL_0631: stloc.s 50 (System.Int32) IL_0633: ldloc.s 34 (NetInfo+Lane) IL_0635: ldfld System.Int32 Lane::m_similarLaneIndex IL_063A: stloc.s 51 (System.Int32) IL_063C: Label47 IL_063C: ldloc.s 47 (System.Int32) IL_063E: ldloc.s 48 (System.Int32) IL_0640: add IL_0641: ldloc.s 49 (System.Int32) IL_0643: add IL_0644: stloc.s 52 (System.Int32) IL_0646: ldc.i4 255 IL_064B: stloc.s 44 (System.Int32) IL_064D: ldc.i4.0 IL_064E: stloc.s 45 (System.Int32) IL_0650: ldloc.s 52 (System.Int32) IL_0652: brfalse => Label48 IL_0657: ldloc.s 34 (NetInfo+Lane) IL_0659: callvirt VehicleCategory Lane::get_vehicleCategory() IL_065E: ldc.i8 90194313256 IL_0667: and IL_0668: ldc.i4.0 IL_0669: conv.i8 IL_066A: beq => Label49 IL_066F: ldloc.s 34 (NetInfo+Lane) IL_0671: callvirt VehicleCategory Lane::get_vehicleCategory() IL_0676: ldc.i8 -90194313257 IL_067F: and IL_0680: ldc.i4.0 IL_0681: conv.i8 IL_0682: bne.un => Label50 IL_0687: ldloc.s 47 (System.Int32) IL_0689: ldc.i4.0 IL_068A: ble => Label51 IL_068F: ldloc.s 42 (NetLane+Flags) IL_0691: ldc.i4.s 32 IL_0693: or IL_0694: stloc.s 42 (NetLane+Flags) IL_0696: Label51 IL_0696: ldloc.s 49 (System.Int32) IL_0698: ldc.i4.0 IL_0699: ble => Label52 IL_069E: ldloc.s 42 (NetLane+Flags) IL_06A0: ldc.i4.s 64 IL_06A2: or IL_06A3: stloc.s 42 (NetLane+Flags) IL_06A5: Label52 IL_06A5: ldloc.s 48 (System.Int32) IL_06A7: ldc.i4.0 IL_06A8: ble => Label53 IL_06AD: ldloc.s 42 (NetLane+Flags) IL_06AF: ldc.i4.s 16 IL_06B1: or IL_06B2: stloc.s 42 (NetLane+Flags) IL_06B4: Label53 IL_06B4: ldloc.s 34 (NetInfo+Lane) IL_06B6: ldfld System.Int32 Lane::m_similarLaneCount IL_06BB: ldloc.s 52 (System.Int32) IL_06BD: ble => Label54 IL_06C2: ldloc.s 52 (System.Int32) IL_06C4: ldc.i4.0 IL_06C5: ble => Label55 IL_06CA: ldloc.s 42 (NetLane+Flags) IL_06CC: ldc.i4 128 IL_06D1: or IL_06D2: stloc.s 42 (NetLane+Flags) IL_06D4: Label54 IL_06D4: Label55 IL_06D4: ldarg.0 IL_06D5: ldfld System.Boolean RoadBaseAI::m_highwayRules IL_06DA: brfalse => Label56 IL_06DF: ldloc.s 42 (NetLane+Flags) IL_06E1: ldc.i4.s 96 IL_06E3: and IL_06E4: ldc.i4.s 32 IL_06E6: bne.un => Label57 IL_06EB: ldloc.s 42 (NetLane+Flags) IL_06ED: ldc.i4.s 16 IL_06EF: and IL_06F0: brfalse => Label58 IL_06F5: ldloc.s 48 (System.Int32) IL_06F7: ldc.i4.2 IL_06F8: blt => Label59 IL_06FD: ldloc.s 47 (System.Int32) IL_06FF: ldc.i4.1 IL_0700: bne.un => Label60 IL_0705: Label58 IL_0705: ldloc.s 45 (System.Int32) IL_0707: ldloc.s 44 (System.Int32) IL_0709: ldc.i4.1 IL_070A: add IL_070B: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0710: stloc.s 45 (System.Int32) IL_0712: Label59 IL_0712: Label60 IL_0712: br => Label61 IL_0717: Label57 IL_0717: ldloc.s 42 (NetLane+Flags) IL_0719: ldc.i4.s 96 IL_071B: and IL_071C: ldc.i4.s 64 IL_071E: bne.un => Label62 IL_0723: ldloc.s 42 (NetLane+Flags) IL_0725: ldc.i4.s 16 IL_0727: and IL_0728: brfalse => Label63 IL_072D: ldloc.s 48 (System.Int32) IL_072F: ldc.i4.2 IL_0730: blt => Label64 IL_0735: ldloc.s 49 (System.Int32) IL_0737: ldc.i4.1 IL_0738: bne.un => Label65 IL_073D: Label63 IL_073D: ldloc.s 44 (System.Int32) IL_073F: ldloc.s 45 (System.Int32) IL_0741: ldc.i4.1 IL_0742: sub IL_0743: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0748: stloc.s 44 (System.Int32) IL_074A: Label56 IL_074A: Label61 IL_074A: Label62 IL_074A: Label64 IL_074A: Label65 IL_074A: br => Label66 IL_074F: Label49 IL_074F: Label50 IL_074F: ldloc.s 34 (NetInfo+Lane) IL_0751: ldfld System.Int32 Lane::m_similarLaneCount IL_0756: ldloc.s 52 (System.Int32) IL_0758: ble => Label67 IL_075D: ldloc.s 52 (System.Int32) IL_075F: ldc.i4.0 IL_0760: ble => Label68 IL_0765: ldloc.s 52 (System.Int32) IL_0767: ldloc.s 50 (System.Int32) IL_0769: mul IL_076A: ldloc.s 34 (NetInfo+Lane) IL_076C: ldfld System.Int32 Lane::m_similarLaneCount IL_0771: div IL_0772: stloc.s 44 (System.Int32) IL_0774: ldloc.s 52 (System.Int32) IL_0776: ldloc.s 52 (System.Int32) IL_0778: ldloc.s 51 (System.Int32) IL_077A: mul IL_077B: ldloc.s 34 (NetInfo+Lane) IL_077D: ldfld System.Int32 Lane::m_similarLaneCount IL_0782: div IL_0783: sub IL_0784: stloc.s 45 (System.Int32) IL_0786: ldloc.s 42 (NetLane+Flags) IL_0788: ldc.i4 128 IL_078D: or IL_078E: stloc.s 42 (NetLane+Flags) IL_0790: ldloc.s 44 (System.Int32) IL_0792: ldloc.s 47 (System.Int32) IL_0794: bge => Label69 IL_0799: ldloc.s 42 (NetLane+Flags) IL_079B: ldc.i4.s 32 IL_079D: or IL_079E: stloc.s 42 (NetLane+Flags) IL_07A0: Label69 IL_07A0: ldloc.s 52 (System.Int32) IL_07A2: ldloc.s 45 (System.Int32) IL_07A4: sub IL_07A5: ldloc.s 49 (System.Int32) IL_07A7: bge => Label70 IL_07AC: ldloc.s 42 (NetLane+Flags) IL_07AE: ldc.i4.s 64 IL_07B0: or IL_07B1: stloc.s 42 (NetLane+Flags) IL_07B3: Label70 IL_07B3: ldloc.s 48 (System.Int32) IL_07B5: brfalse => Label71 IL_07BA: ldloc.s 44 (System.Int32) IL_07BC: ldloc.s 47 (System.Int32) IL_07BE: ldloc.s 48 (System.Int32) IL_07C0: add IL_07C1: bge => Label72 IL_07C6: ldloc.s 45 (System.Int32) IL_07C8: ldloc.s 47 (System.Int32) IL_07CA: ble => Label73 IL_07CF: ldloc.s 42 (NetLane+Flags) IL_07D1: ldc.i4.s 16 IL_07D3: or IL_07D4: stloc.s 42 (NetLane+Flags) IL_07D6: Label71 IL_07D6: Label72 IL_07D6: Label73 IL_07D6: br => Label74 IL_07DB: Label67 IL_07DB: Label68 IL_07DB: ldloc.s 34 (NetInfo+Lane) IL_07DD: ldfld System.Int32 Lane::m_similarLaneCount IL_07E2: ldloc.s 52 (System.Int32) IL_07E4: blt => Label75 IL_07E9: ldloc.s 47 (System.Int32) IL_07EB: stloc.s 53 (System.Int32) IL_07ED: ldloc.s 49 (System.Int32) IL_07EF: stloc.s 54 (System.Int32) IL_07F1: br => Label76 IL_07F6: Label75 IL_07F6: ldloc.s 47 (System.Int32) IL_07F8: ldloc.s 34 (NetInfo+Lane) IL_07FA: ldfld System.Int32 Lane::m_similarLaneCount IL_07FF: mul IL_0800: ldloc.s 52 (System.Int32) IL_0802: ldloc.s 48 (System.Int32) IL_0804: ldc.i4.1 IL_0805: shr IL_0806: add IL_0807: div IL_0808: stloc.s 53 (System.Int32) IL_080A: ldloc.s 49 (System.Int32) IL_080C: ldloc.s 34 (NetInfo+Lane) IL_080E: ldfld System.Int32 Lane::m_similarLaneCount IL_0813: mul IL_0814: ldloc.s 52 (System.Int32) IL_0816: ldloc.s 48 (System.Int32) IL_0818: ldc.i4.1 IL_0819: shr IL_081A: add IL_081B: div IL_081C: stloc.s 54 (System.Int32) IL_081E: Label76 IL_081E: ldloc.s 53 (System.Int32) IL_0820: stloc.s 55 (System.Int32) IL_0822: ldloc.s 34 (NetInfo+Lane) IL_0824: ldfld System.Int32 Lane::m_similarLaneCount IL_0829: ldloc.s 53 (System.Int32) IL_082B: sub IL_082C: ldloc.s 54 (System.Int32) IL_082E: sub IL_082F: stloc.s 56 (System.Int32) IL_0831: ldloc.s 54 (System.Int32) IL_0833: stloc.s 57 (System.Int32) IL_0835: ldloc.s 56 (System.Int32) IL_0837: ldc.i4.0 IL_0838: ble => Label77 IL_083D: ldloc.s 47 (System.Int32) IL_083F: ldloc.s 53 (System.Int32) IL_0841: ble => Label78 IL_0846: ldloc.s 55 (System.Int32) IL_0848: ldc.i4.1 IL_0849: add IL_084A: stloc.s 55 (System.Int32) IL_084C: Label78 IL_084C: ldloc.s 49 (System.Int32) IL_084E: ldloc.s 54 (System.Int32) IL_0850: ble => Label79 IL_0855: ldloc.s 57 (System.Int32) IL_0857: ldc.i4.1 IL_0858: add IL_0859: stloc.s 57 (System.Int32) IL_085B: Label77 IL_085B: Label79 IL_085B: ldloc.s 50 (System.Int32) IL_085D: ldloc.s 55 (System.Int32) IL_085F: bge => Label80 IL_0864: ldloc.s 50 (System.Int32) IL_0866: ldloc.s 47 (System.Int32) IL_0868: mul IL_0869: ldloc.s 55 (System.Int32) IL_086B: add IL_086C: ldc.i4.1 IL_086D: sub IL_086E: ldloc.s 55 (System.Int32) IL_0870: div IL_0871: stloc.s 58 (System.Int32) IL_0873: ldloc.s 50 (System.Int32) IL_0875: ldc.i4.1 IL_0876: add IL_0877: ldloc.s 47 (System.Int32) IL_0879: mul IL_087A: ldloc.s 55 (System.Int32) IL_087C: add IL_087D: ldc.i4.1 IL_087E: sub IL_087F: ldloc.s 55 (System.Int32) IL_0881: div IL_0882: stloc.s 59 (System.Int32) IL_0884: ldloc.s 59 (System.Int32) IL_0886: ldloc.s 58 (System.Int32) IL_0888: ble => Label81 IL_088D: ldloc.s 42 (NetLane+Flags) IL_088F: ldc.i4.s 32 IL_0891: or IL_0892: stloc.s 42 (NetLane+Flags) IL_0894: ldloc.s 44 (System.Int32) IL_0896: ldloc.s 58 (System.Int32) IL_0898: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_089D: stloc.s 44 (System.Int32) IL_089F: ldloc.s 45 (System.Int32) IL_08A1: ldloc.s 59 (System.Int32) IL_08A3: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_08A8: stloc.s 45 (System.Int32) IL_08AA: Label80 IL_08AA: Label81 IL_08AA: ldloc.s 50 (System.Int32) IL_08AC: ldloc.s 53 (System.Int32) IL_08AE: blt => Label82 IL_08B3: ldloc.s 51 (System.Int32) IL_08B5: ldloc.s 54 (System.Int32) IL_08B7: blt => Label83 IL_08BC: ldloc.s 48 (System.Int32) IL_08BE: brfalse => Label84 IL_08C3: ldloc.s 34 (NetInfo+Lane) IL_08C5: ldfld System.Int32 Lane::m_similarLaneCount IL_08CA: ldloc.s 52 (System.Int32) IL_08CC: ble => Label85 IL_08D1: ldloc.s 53 (System.Int32) IL_08D3: ldc.i4.1 IL_08D4: add IL_08D5: stloc.s 53 (System.Int32) IL_08D7: Label85 IL_08D7: ldloc.s 47 (System.Int32) IL_08D9: ldloc.s 50 (System.Int32) IL_08DB: ldloc.s 53 (System.Int32) IL_08DD: sub IL_08DE: ldloc.s 48 (System.Int32) IL_08E0: mul IL_08E1: ldloc.s 56 (System.Int32) IL_08E3: add IL_08E4: ldc.i4.1 IL_08E5: sub IL_08E6: ldloc.s 56 (System.Int32) IL_08E8: div IL_08E9: add IL_08EA: stloc.s 60 (System.Int32) IL_08EC: ldloc.s 47 (System.Int32) IL_08EE: ldloc.s 50 (System.Int32) IL_08F0: ldc.i4.1 IL_08F1: add IL_08F2: ldloc.s 53 (System.Int32) IL_08F4: sub IL_08F5: ldloc.s 48 (System.Int32) IL_08F7: mul IL_08F8: ldloc.s 56 (System.Int32) IL_08FA: add IL_08FB: ldc.i4.1 IL_08FC: sub IL_08FD: ldloc.s 56 (System.Int32) IL_08FF: div IL_0900: add IL_0901: stloc.s 61 (System.Int32) IL_0903: ldloc.s 61 (System.Int32) IL_0905: ldloc.s 60 (System.Int32) IL_0907: ble => Label86 IL_090C: ldloc.s 42 (NetLane+Flags) IL_090E: ldc.i4.s 16 IL_0910: or IL_0911: stloc.s 42 (NetLane+Flags) IL_0913: ldloc.s 44 (System.Int32) IL_0915: ldloc.s 60 (System.Int32) IL_0917: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_091C: stloc.s 44 (System.Int32) IL_091E: ldloc.s 45 (System.Int32) IL_0920: ldloc.s 61 (System.Int32) IL_0922: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0927: stloc.s 45 (System.Int32) IL_0929: Label82 IL_0929: Label83 IL_0929: Label84 IL_0929: Label86 IL_0929: ldloc.s 51 (System.Int32) IL_092B: ldloc.s 57 (System.Int32) IL_092D: bge => Label87 IL_0932: ldloc.s 52 (System.Int32) IL_0934: ldloc.s 51 (System.Int32) IL_0936: ldc.i4.1 IL_0937: add IL_0938: ldloc.s 49 (System.Int32) IL_093A: mul IL_093B: ldloc.s 57 (System.Int32) IL_093D: add IL_093E: ldc.i4.1 IL_093F: sub IL_0940: ldloc.s 57 (System.Int32) IL_0942: div IL_0943: sub IL_0944: stloc.s 62 (System.Int32) IL_0946: ldloc.s 52 (System.Int32) IL_0948: ldloc.s 51 (System.Int32) IL_094A: ldloc.s 49 (System.Int32) IL_094C: mul IL_094D: ldloc.s 57 (System.Int32) IL_094F: add IL_0950: ldc.i4.1 IL_0951: sub IL_0952: ldloc.s 57 (System.Int32) IL_0954: div IL_0955: sub IL_0956: stloc.s 63 (System.Int32) IL_0958: ldloc.s 63 (System.Int32) IL_095A: ldloc.s 62 (System.Int32) IL_095C: ble => Label88 IL_0961: ldloc.s 42 (NetLane+Flags) IL_0963: ldc.i4.s 64 IL_0965: or IL_0966: stloc.s 42 (NetLane+Flags) IL_0968: ldloc.s 44 (System.Int32) IL_096A: ldloc.s 62 (System.Int32) IL_096C: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0971: stloc.s 44 (System.Int32) IL_0973: ldloc.s 45 (System.Int32) IL_0975: ldloc.s 63 (System.Int32) IL_0977: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_097C: stloc.s 45 (System.Int32) IL_097E: Label87 IL_097E: Label88 IL_097E: ldarg.0 IL_097F: ldfld System.Boolean RoadBaseAI::m_highwayRules IL_0984: brfalse => Label89 IL_0989: ldloc.s 42 (NetLane+Flags) IL_098B: ldc.i4.s 96 IL_098D: and IL_098E: ldc.i4.s 32 IL_0990: bne.un => Label90 IL_0995: ldloc.s 42 (NetLane+Flags) IL_0997: ldc.i4.s 16 IL_0999: and IL_099A: brfalse => Label91 IL_099F: ldloc.s 48 (System.Int32) IL_09A1: ldc.i4.2 IL_09A2: blt => Label92 IL_09A7: ldloc.s 47 (System.Int32) IL_09A9: ldc.i4.1 IL_09AA: bne.un => Label93 IL_09AF: Label91 IL_09AF: ldloc.s 45 (System.Int32) IL_09B1: ldloc.s 44 (System.Int32) IL_09B3: ldc.i4.1 IL_09B4: add IL_09B5: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_09BA: stloc.s 45 (System.Int32) IL_09BC: Label92 IL_09BC: Label93 IL_09BC: br => Label94 IL_09C1: Label90 IL_09C1: ldloc.s 42 (NetLane+Flags) IL_09C3: ldc.i4.s 96 IL_09C5: and IL_09C6: ldc.i4.s 64 IL_09C8: bne.un => Label95 IL_09CD: ldloc.s 42 (NetLane+Flags) IL_09CF: ldc.i4.s 16 IL_09D1: and IL_09D2: brfalse => Label96 IL_09D7: ldloc.s 48 (System.Int32) IL_09D9: ldc.i4.2 IL_09DA: blt => Label97 IL_09DF: ldloc.s 49 (System.Int32) IL_09E1: ldc.i4.1 IL_09E2: bne.un => Label98 IL_09E7: Label96 IL_09E7: ldloc.s 44 (System.Int32) IL_09E9: ldloc.s 45 (System.Int32) IL_09EB: ldc.i4.1 IL_09EC: sub IL_09ED: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_09F2: stloc.s 44 (System.Int32) IL_09F4: Label48 IL_09F4: Label66 IL_09F4: Label74 IL_09F4: Label89 IL_09F4: Label94 IL_09F4: Label95 IL_09F4: Label97 IL_09F4: Label98 IL_09F4: ldloc.s 46 (System.Boolean) IL_09F6: brfalse => Label99 IL_09FB: ldloc.s 18 (System.Boolean) IL_09FD: brfalse => Label100 IL_0A02: ldloc.s 42 (NetLane+Flags) IL_0A04: ldc.i4.s -113 IL_0A06: and IL_0A07: stloc.s 42 (NetLane+Flags) IL_0A09: br => Label101 IL_0A0E: Label100 IL_0A0E: ldloc.s 19 (System.Boolean) IL_0A10: brfalse => Label102 IL_0A15: ldloc.s 42 (NetLane+Flags) IL_0A17: ldc.i4.s 16 IL_0A19: or IL_0A1A: stloc.s 42 (NetLane+Flags) IL_0A1C: Label101 IL_0A1C: Label102 IL_0A1C: br => Label103 IL_0A21: Label99 IL_0A21: ldloc.s 26 (System.Boolean) IL_0A23: brfalse => Label104 IL_0A28: ldloc.s 42 (NetLane+Flags) IL_0A2A: ldc.i4.s -113 IL_0A2C: and IL_0A2D: stloc.s 42 (NetLane+Flags) IL_0A2F: br => Label105 IL_0A34: Label104 IL_0A34: ldloc.s 27 (System.Boolean) IL_0A36: brfalse => Label106 IL_0A3B: ldloc.s 42 (NetLane+Flags) IL_0A3D: ldc.i4.s 16 IL_0A3F: or IL_0A40: stloc.s 42 (NetLane+Flags) IL_0A42: Label43 IL_0A42: Label103 IL_0A42: Label105 IL_0A42: Label106 IL_0A42: ldloc.0 IL_0A43: ldfld Array32`1 NetManager::m_lanes IL_0A48: ldfld NetLane[] Array32`1::m_buffer IL_0A4D: ldloc.s 32 (System.UInt32) IL_0A4F: conv.u IL_0A50: ldelema NetLane IL_0A55: ldloc.s 36 (UnityEngine.Vector3) IL_0A57: ldloc.s 40 (UnityEngine.Vector3) IL_0A59: ldloc.s 41 (UnityEngine.Vector3) IL_0A5B: ldloc.s 38 (UnityEngine.Vector3) IL_0A5D: newobj System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0A62: stfld ColossalFramework.Math.Bezier3 NetLane::m_bezier IL_0A67: ldloc.0 IL_0A68: ldfld Array32`1 NetManager::m_lanes IL_0A6D: ldfld NetLane[] Array32`1::m_buffer IL_0A72: ldloc.s 32 (System.UInt32) IL_0A74: conv.u IL_0A75: ldelema NetLane IL_0A7A: ldarg.1 IL_0A7B: stfld System.UInt16 NetLane::m_segment IL_0A80: ldloc.0 IL_0A81: ldfld Array32`1 NetManager::m_lanes IL_0A86: ldfld NetLane[] Array32`1::m_buffer IL_0A8B: ldloc.s 32 (System.UInt32) IL_0A8D: conv.u IL_0A8E: ldelema NetLane IL_0A93: ldloc.s 42 (NetLane+Flags) IL_0A95: conv.u2 IL_0A96: stfld System.UInt16 NetLane::m_flags IL_0A9B: ldloc.0 IL_0A9C: ldfld Array32`1 NetManager::m_lanes IL_0AA1: ldfld NetLane[] Array32`1::m_buffer IL_0AA6: ldloc.s 32 (System.UInt32) IL_0AA8: conv.u IL_0AA9: ldelema NetLane IL_0AAE: ldloc.s 44 (System.Int32) IL_0AB0: conv.u1 IL_0AB1: stfld System.Byte NetLane::m_firstTarget IL_0AB6: ldloc.0 IL_0AB7: ldfld Array32`1 NetManager::m_lanes IL_0ABC: ldfld NetLane[] Array32`1::m_buffer IL_0AC1: ldloc.s 32 (System.UInt32) IL_0AC3: conv.u IL_0AC4: ldelema NetLane IL_0AC9: ldloc.s 45 (System.Int32) IL_0ACB: conv.u1 IL_0ACC: stfld System.Byte NetLane::m_lastTarget IL_0AD1: ldloc.s 29 (System.Single) IL_0AD3: ldloc.0 IL_0AD4: ldfld Array32`1 NetManager::m_lanes IL_0AD9: ldfld NetLane[] Array32`1::m_buffer IL_0ADE: ldloc.s 32 (System.UInt32) IL_0AE0: conv.u IL_0AE1: ldelema NetLane IL_0AE6: call System.Single NetLane::UpdateLength() IL_0AEB: add IL_0AEC: stloc.s 29 (System.Single) IL_0AEE: ldloc.s 30 (System.Single) IL_0AF0: ldc.r4 1 IL_0AF5: add IL_0AF6: stloc.s 30 (System.Single) IL_0AF8: ldloc.s 32 (System.UInt32) IL_0AFA: stloc.s 31 (System.UInt32) IL_0AFC: ldloc.0 IL_0AFD: ldfld Array32`1 NetManager::m_lanes IL_0B02: ldfld NetLane[] Array32`1::m_buffer IL_0B07: ldloc.s 32 (System.UInt32) IL_0B09: conv.u IL_0B0A: ldelema NetLane IL_0B0F: ldfld System.UInt32 NetLane::m_nextLane IL_0B14: stloc.s 32 (System.UInt32) IL_0B16: ldloc.s 33 (System.Int32) IL_0B18: ldc.i4.1 IL_0B19: add IL_0B1A: stloc.s 33 (System.Int32) IL_0B1C: Label30 IL_0B1C: ldloc.s 33 (System.Int32) IL_0B1E: ldarg.0 IL_0B1F: ldfld NetInfo NetAI::m_info IL_0B24: ldfld Lane[] NetInfo::m_lanes IL_0B29: ldlen IL_0B2A: conv.i4 IL_0B2B: blt => Label107 IL_0B30: Label36 IL_0B30: ldloc.s 30 (System.Single) IL_0B32: ldc.r4 0 IL_0B37: beq => Label108 IL_0B3C: ldarg.2 IL_0B3D: ldloc.s 29 (System.Single) IL_0B3F: ldloc.s 30 (System.Single) IL_0B41: div IL_0B42: stfld System.Single NetSegment::m_averageLength IL_0B47: br => Label109 IL_0B4C: Label108 IL_0B4C: ldarg.2 IL_0B4D: ldc.r4 0 IL_0B52: stfld System.Single NetSegment::m_averageLength IL_0B57: Label109 IL_0B57: ldc.i4.0 IL_0B58: stloc.s 64 (System.Boolean) IL_0B5A: ldarg.2 IL_0B5B: ldfld System.Single NetSegment::m_averageLength IL_0B60: ldc.r4 11 IL_0B65: bge.un => Label110 IL_0B6A: ldloc.0 IL_0B6B: ldfld Array16`1 NetManager::m_nodes IL_0B70: ldfld NetNode[] Array16`1::m_buffer IL_0B75: ldarg.2 IL_0B76: ldfld System.UInt16 NetSegment::m_startNode IL_0B7B: ldelema NetNode IL_0B80: ldfld Flags NetNode::m_flags IL_0B85: ldc.i4 128 IL_0B8A: and IL_0B8B: brfalse => Label111 IL_0B90: ldloc.0 IL_0B91: ldfld Array16`1 NetManager::m_nodes IL_0B96: ldfld NetNode[] Array16`1::m_buffer IL_0B9B: ldarg.2 IL_0B9C: ldfld System.UInt16 NetSegment::m_endNode IL_0BA1: ldelema NetNode IL_0BA6: ldfld Flags NetNode::m_flags IL_0BAB: ldc.i4 128 IL_0BB0: and IL_0BB1: brfalse => Label112 IL_0BB6: ldc.i4.1 IL_0BB7: stloc.s 64 (System.Boolean) IL_0BB9: Label110 IL_0BB9: Label111 IL_0BB9: Label112 IL_0BB9: ldarg.2 IL_0BBA: ldfld System.UInt32 NetSegment::m_lanes IL_0BBF: stloc.s 32 (System.UInt32) IL_0BC1: ldc.i4.0 IL_0BC2: stloc.s 65 (System.Int32) IL_0BC4: br => Label113 IL_0BC9: Label116 IL_0BC9: ldloc.0 IL_0BCA: ldfld Array32`1 NetManager::m_lanes IL_0BCF: ldfld NetLane[] Array32`1::m_buffer IL_0BD4: ldloc.s 32 (System.UInt32) IL_0BD6: conv.u IL_0BD7: ldelema NetLane IL_0BDC: ldfld System.UInt16 NetLane::m_flags IL_0BE1: ldc.i4.s -9 IL_0BE3: and IL_0BE4: stloc.s 66 (NetLane+Flags) IL_0BE6: ldloc.s 64 (System.Boolean) IL_0BE8: brfalse => Label114 IL_0BED: ldloc.s 66 (NetLane+Flags) IL_0BEF: ldc.i4.8 IL_0BF0: or IL_0BF1: stloc.s 66 (NetLane+Flags) IL_0BF3: Label114 IL_0BF3: ldloc.0 IL_0BF4: ldfld Array32`1 NetManager::m_lanes IL_0BF9: ldfld NetLane[] Array32`1::m_buffer IL_0BFE: ldloc.s 32 (System.UInt32) IL_0C00: conv.u IL_0C01: ldelema NetLane IL_0C06: ldloc.s 66 (NetLane+Flags) IL_0C08: conv.u2 IL_0C09: stfld System.UInt16 NetLane::m_flags IL_0C0E: ldloc.0 IL_0C0F: ldfld Array32`1 NetManager::m_lanes IL_0C14: ldfld NetLane[] Array32`1::m_buffer IL_0C19: ldloc.s 32 (System.UInt32) IL_0C1B: conv.u IL_0C1C: ldelema NetLane IL_0C21: ldfld System.UInt32 NetLane::m_nextLane IL_0C26: stloc.s 32 (System.UInt32) IL_0C28: ldloc.s 65 (System.Int32) IL_0C2A: ldc.i4.1 IL_0C2B: add IL_0C2C: stloc.s 65 (System.Int32) IL_0C2E: Label113 IL_0C2E: ldloc.s 65 (System.Int32) IL_0C30: ldarg.0 IL_0C31: ldfld NetInfo NetAI::m_info IL_0C36: ldfld Lane[] NetInfo::m_lanes IL_0C3B: ldlen IL_0C3C: conv.i4 IL_0C3D: bge => Label115 IL_0C42: ldloc.s 32 (System.UInt32) IL_0C44: brtrue => Label116 IL_0C49: Label115 IL_0C49: ldarg.3 IL_0C4A: brtrue => Label117 IL_0C4F: ldarg.2 IL_0C50: ldflda UnityEngine.Bounds NetSegment::m_bounds IL_0C55: call UnityEngine.Vector3 UnityEngine.Bounds::get_min() IL_0C5A: stloc.s 68 (UnityEngine.Vector3) IL_0C5C: ldloca.s 68 (UnityEngine.Vector3) IL_0C5E: ldfld System.Single UnityEngine.Vector3::x IL_0C63: ldc.r4 16 IL_0C68: sub IL_0C69: ldc.r4 64 IL_0C6E: div IL_0C6F: ldc.r4 135 IL_0C74: add IL_0C75: conv.i4 IL_0C76: ldc.i4.0 IL_0C77: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0C7C: stloc.s 67 (System.Int32) IL_0C7E: ldarg.2 IL_0C7F: ldflda UnityEngine.Bounds NetSegment::m_bounds IL_0C84: call UnityEngine.Vector3 UnityEngine.Bounds::get_min() IL_0C89: stloc.s 70 (UnityEngine.Vector3) IL_0C8B: ldloca.s 70 (UnityEngine.Vector3) IL_0C8D: ldfld System.Single UnityEngine.Vector3::z IL_0C92: ldc.r4 16 IL_0C97: sub IL_0C98: ldc.r4 64 IL_0C9D: div IL_0C9E: ldc.r4 135 IL_0CA3: add IL_0CA4: conv.i4 IL_0CA5: ldc.i4.0 IL_0CA6: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0CAB: stloc.s 69 (System.Int32) IL_0CAD: ldarg.2 IL_0CAE: ldflda UnityEngine.Bounds NetSegment::m_bounds IL_0CB3: call UnityEngine.Vector3 UnityEngine.Bounds::get_max() IL_0CB8: stloc.s 72 (UnityEngine.Vector3) IL_0CBA: ldloca.s 72 (UnityEngine.Vector3) IL_0CBC: ldfld System.Single UnityEngine.Vector3::x IL_0CC1: ldc.r4 16 IL_0CC6: add IL_0CC7: ldc.r4 64 IL_0CCC: div IL_0CCD: ldc.r4 135 IL_0CD2: add IL_0CD3: conv.i4 IL_0CD4: ldc.i4 269 IL_0CD9: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0CDE: stloc.s 71 (System.Int32) IL_0CE0: ldarg.2 IL_0CE1: ldflda UnityEngine.Bounds NetSegment::m_bounds IL_0CE6: call UnityEngine.Vector3 UnityEngine.Bounds::get_max() IL_0CEB: stloc.s 74 (UnityEngine.Vector3) IL_0CED: ldloca.s 74 (UnityEngine.Vector3) IL_0CEF: ldfld System.Single UnityEngine.Vector3::z IL_0CF4: ldc.r4 16 IL_0CF9: add IL_0CFA: ldc.r4 64 IL_0CFF: div IL_0D00: ldc.r4 135 IL_0D05: add IL_0D06: conv.i4 IL_0D07: ldc.i4 269 IL_0D0C: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0D11: stloc.s 73 (System.Int32) IL_0D13: ldloc.s 69 (System.Int32) IL_0D15: stloc.s 75 (System.Int32) IL_0D17: br => Label118 IL_0D1C: Label126 IL_0D1C: ldloc.s 67 (System.Int32) IL_0D1E: stloc.s 76 (System.Int32) IL_0D20: br => Label119 IL_0D25: Label125 IL_0D25: ldloc.0 IL_0D26: ldfld System.UInt16[] NetManager::m_nodeGrid IL_0D2B: ldloc.s 75 (System.Int32) IL_0D2D: ldc.i4 270 IL_0D32: mul IL_0D33: ldloc.s 76 (System.Int32) IL_0D35: add IL_0D36: ldelem.u2 IL_0D37: stloc.s 77 (System.UInt16) IL_0D39: ldc.i4.0 IL_0D3A: stloc.s 78 (System.Int32) IL_0D3C: br => Label120 IL_0D41: Label124 IL_0D41: ldloc.0 IL_0D42: ldfld Array16`1 NetManager::m_nodes IL_0D47: ldfld NetNode[] Array16`1::m_buffer IL_0D4C: ldloc.s 77 (System.UInt16) IL_0D4E: ldelema NetNode IL_0D53: call NetInfo NetNode::get_Info() IL_0D58: stloc.s 79 (NetInfo) IL_0D5A: ldloc.0 IL_0D5B: ldfld Array16`1 NetManager::m_nodes IL_0D60: ldfld NetNode[] Array16`1::m_buffer IL_0D65: ldloc.s 77 (System.UInt16) IL_0D67: ldelema NetNode IL_0D6C: ldfld UnityEngine.Vector3 NetNode::m_position IL_0D71: stloc.s 80 (UnityEngine.Vector3) IL_0D73: ldarg.2 IL_0D74: ldflda UnityEngine.Bounds NetSegment::m_bounds IL_0D79: call UnityEngine.Vector3 UnityEngine.Bounds::get_min() IL_0D7E: stloc.s 82 (UnityEngine.Vector3) IL_0D80: ldloca.s 82 (UnityEngine.Vector3) IL_0D82: ldfld System.Single UnityEngine.Vector3::x IL_0D87: ldc.r4 16 IL_0D8C: sub IL_0D8D: ldloca.s 80 (UnityEngine.Vector3) IL_0D8F: ldfld System.Single UnityEngine.Vector3::x IL_0D94: sub IL_0D95: ldarg.2 IL_0D96: ldflda UnityEngine.Bounds NetSegment::m_bounds IL_0D9B: call UnityEngine.Vector3 UnityEngine.Bounds::get_min() IL_0DA0: stloc.s 83 (UnityEngine.Vector3) IL_0DA2: ldloca.s 83 (UnityEngine.Vector3) IL_0DA4: ldfld System.Single UnityEngine.Vector3::z IL_0DA9: ldc.r4 16 IL_0DAE: sub IL_0DAF: ldloca.s 80 (UnityEngine.Vector3) IL_0DB1: ldfld System.Single UnityEngine.Vector3::z IL_0DB6: sub IL_0DB7: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0DBC: ldloca.s 80 (UnityEngine.Vector3) IL_0DBE: ldfld System.Single UnityEngine.Vector3::x IL_0DC3: ldarg.2 IL_0DC4: ldflda UnityEngine.Bounds NetSegment::m_bounds IL_0DC9: call UnityEngine.Vector3 UnityEngine.Bounds::get_max() IL_0DCE: stloc.s 84 (UnityEngine.Vector3) IL_0DD0: ldloca.s 84 (UnityEngine.Vector3) IL_0DD2: ldfld System.Single UnityEngine.Vector3::x IL_0DD7: sub IL_0DD8: ldc.r4 16 IL_0DDD: sub IL_0DDE: ldloca.s 80 (UnityEngine.Vector3) IL_0DE0: ldfld System.Single UnityEngine.Vector3::z IL_0DE5: ldarg.2 IL_0DE6: ldflda UnityEngine.Bounds NetSegment::m_bounds IL_0DEB: call UnityEngine.Vector3 UnityEngine.Bounds::get_max() IL_0DF0: stloc.s 85 (UnityEngine.Vector3) IL_0DF2: ldloca.s 85 (UnityEngine.Vector3) IL_0DF4: ldfld System.Single UnityEngine.Vector3::z IL_0DF9: sub IL_0DFA: ldc.r4 16 IL_0DFF: sub IL_0E00: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0E05: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0E0A: stloc.s 81 (System.Single) IL_0E0C: ldloc.s 81 (System.Single) IL_0E0E: ldc.r4 0 IL_0E13: bge.un => Label121 IL_0E18: ldloc.s 79 (NetInfo) IL_0E1A: ldfld NetAI NetInfo::m_netAI IL_0E1F: ldloc.s 77 (System.UInt16) IL_0E21: ldloc.0 IL_0E22: ldfld Array16`1 NetManager::m_nodes IL_0E27: ldfld NetNode[] Array16`1::m_buffer IL_0E2C: ldloc.s 77 (System.UInt16) IL_0E2E: ldelema NetNode IL_0E33: callvirt virtual System.Void NetAI::NearbyLanesUpdated(System.UInt16 nodeID, NetNode& data) IL_0E38: Label121 IL_0E38: ldloc.0 IL_0E39: ldfld Array16`1 NetManager::m_nodes IL_0E3E: ldfld NetNode[] Array16`1::m_buffer IL_0E43: ldloc.s 77 (System.UInt16) IL_0E45: ldelema NetNode IL_0E4A: ldfld System.UInt16 NetNode::m_nextGridNode IL_0E4F: stloc.s 77 (System.UInt16) IL_0E51: ldloc.s 78 (System.Int32) IL_0E53: ldc.i4.1 IL_0E54: add IL_0E55: dup IL_0E56: stloc.s 78 (System.Int32) IL_0E58: ldc.i4 32768 IL_0E5D: blt => Label122 IL_0E62: ldc.i4.1 IL_0E63: ldstr "Invalid list detected!\n" IL_0E68: call static System.String System.Environment::get_StackTrace() IL_0E6D: call static System.String System.String::Concat(System.String str0, System.String str1) IL_0E72: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_0E77: br => Label123 IL_0E7C: Label120 IL_0E7C: Label122 IL_0E7C: ldloc.s 77 (System.UInt16) IL_0E7E: brtrue => Label124 IL_0E83: Label123 IL_0E83: ldloc.s 76 (System.Int32) IL_0E85: ldc.i4.1 IL_0E86: add IL_0E87: stloc.s 76 (System.Int32) IL_0E89: Label119 IL_0E89: ldloc.s 76 (System.Int32) IL_0E8B: ldloc.s 71 (System.Int32) IL_0E8D: ble => Label125 IL_0E92: ldloc.s 75 (System.Int32) IL_0E94: ldc.i4.1 IL_0E95: add IL_0E96: stloc.s 75 (System.Int32) IL_0E98: Label118 IL_0E98: ldloc.s 75 (System.Int32) IL_0E9A: ldloc.s 73 (System.Int32) IL_0E9C: ble => Label126 IL_0EA1: ldarg.0 IL_0EA2: ldfld NetInfo NetAI::m_info IL_0EA7: ldfld System.Boolean NetInfo::m_hasPedestrianLanes IL_0EAC: brfalse => Label127 IL_0EB1: ldarg.0 IL_0EB2: ldfld NetInfo NetAI::m_info IL_0EB7: ldfld System.Boolean NetInfo::m_hasForwardVehicleLanes IL_0EBC: brtrue => Label128 IL_0EC1: ldarg.0 IL_0EC2: ldfld NetInfo NetAI::m_info IL_0EC7: ldfld System.Boolean NetInfo::m_hasBackwardVehicleLanes IL_0ECC: brfalse => Label129 IL_0ED1: Label128 IL_0ED1: ldarg.1 IL_0ED2: ldarg.2 IL_0ED3: call static System.Void RoadBaseAI::CheckBuildings(System.UInt16 segmentID, NetSegment& data) IL_0ED8: // end original IL_0ED8: Label117 IL_0ED8: Label127 IL_0ED8: Label129 IL_0ED8: ldarg 1 IL_0EDC: call static System.Void TrafficManager.Patch._RoadBaseAI.UpdateLanesPatch::Postfix(System.UInt16 segmentID) IL_0EE1: ret DONE ### Patch: static System.Void RoadBaseAI::SetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData, System.UInt32 frame, TrafficLightState vehicleLightState, TrafficLightState pedestrianLightState, System.Boolean vehicles, System.Boolean pedestrians) ### Replacement: static System.Void RoadBaseAI::RoadBaseAI.SetTrafficLightState_Patch1(System.UInt16 nodeID, NetSegment& segmentData, System.UInt32 frame, TrafficLightState vehicleLightState, TrafficLightState pedestrianLightState, System.Boolean vehicles, System.Boolean pedestrians) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 1 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 1 (System.Boolean) IL_000E: ldloc 1 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 0 IL_001B: ldarg 1 IL_001F: ldarg 2 IL_0023: ldarg 3 IL_0027: ldarg 4 IL_002B: ldarg 5 IL_002F: ldarg 6 IL_0033: call static System.Boolean TrafficManager.Patch._RoadBaseAI.SetTrafficLightStatePatch::Prefix(System.UInt16 nodeID, NetSegment& segmentData, System.UInt32 frame, TrafficLightState vehicleLightState, TrafficLightState pedestrianLightState, System.Boolean vehicles, System.Boolean pedestrians) IL_0038: stloc 1 (System.Boolean) IL_003C: Label1 IL_003C: nop IL_003D: ldloc 1 (System.Boolean) IL_0041: brfalse => Label0 IL_0046: // start original IL_0046: ldarg.s 4 IL_0048: ldc.i4.2 IL_0049: shl IL_004A: ldarg.3 IL_004B: or IL_004C: stloc.0 IL_004D: ldarg.1 IL_004E: ldfld System.UInt16 NetSegment::m_startNode IL_0053: ldarg.0 IL_0054: bne.un => Label2 IL_0059: ldarg.2 IL_005A: ldc.i4.8 IL_005B: shr.un IL_005C: ldc.i4.1 IL_005D: and IL_005E: brtrue => Label3 IL_0063: ldarg.1 IL_0064: ldarg.1 IL_0065: ldfld System.Int32 NetSegment::m_trafficLightState0 IL_006A: ldc.i4.s -16 IL_006C: and IL_006D: ldloc.0 IL_006E: or IL_006F: stfld System.Int32 NetSegment::m_trafficLightState0 IL_0074: br => Label4 IL_0079: Label3 IL_0079: ldarg.1 IL_007A: ldarg.1 IL_007B: ldfld System.Int32 NetSegment::m_trafficLightState1 IL_0080: ldc.i4.s -16 IL_0082: and IL_0083: ldloc.0 IL_0084: or IL_0085: stfld System.Int32 NetSegment::m_trafficLightState1 IL_008A: Label4 IL_008A: ldarg.s 5 IL_008C: brfalse => Label5 IL_0091: ldarg.1 IL_0092: dup IL_0093: ldfld Flags NetSegment::m_flags IL_0098: ldc.i4 4096 IL_009D: or IL_009E: stfld Flags NetSegment::m_flags IL_00A3: br => Label6 IL_00A8: Label5 IL_00A8: ldarg.1 IL_00A9: dup IL_00AA: ldfld Flags NetSegment::m_flags IL_00AF: ldc.i4 -4097 IL_00B4: and IL_00B5: stfld Flags NetSegment::m_flags IL_00BA: Label6 IL_00BA: ldarg.s 6 IL_00BC: brfalse => Label7 IL_00C1: ldarg.1 IL_00C2: dup IL_00C3: ldfld Flags NetSegment::m_flags IL_00C8: ldc.i4 16384 IL_00CD: or IL_00CE: stfld Flags NetSegment::m_flags IL_00D3: br => Label8 IL_00D8: Label7 IL_00D8: ldarg.1 IL_00D9: dup IL_00DA: ldfld Flags NetSegment::m_flags IL_00DF: ldc.i4 -16385 IL_00E4: and IL_00E5: stfld Flags NetSegment::m_flags IL_00EA: Label8 IL_00EA: br => Label9 IL_00EF: Label2 IL_00EF: ldarg.2 IL_00F0: ldc.i4.8 IL_00F1: shr.un IL_00F2: ldc.i4.1 IL_00F3: and IL_00F4: brtrue => Label10 IL_00F9: ldarg.1 IL_00FA: ldarg.1 IL_00FB: ldfld System.Int32 NetSegment::m_trafficLightState0 IL_0100: ldc.i4 -241 IL_0105: and IL_0106: ldloc.0 IL_0107: ldc.i4.4 IL_0108: shl IL_0109: or IL_010A: stfld System.Int32 NetSegment::m_trafficLightState0 IL_010F: br => Label11 IL_0114: Label10 IL_0114: ldarg.1 IL_0115: ldarg.1 IL_0116: ldfld System.Int32 NetSegment::m_trafficLightState1 IL_011B: ldc.i4 -241 IL_0120: and IL_0121: ldloc.0 IL_0122: ldc.i4.4 IL_0123: shl IL_0124: or IL_0125: stfld System.Int32 NetSegment::m_trafficLightState1 IL_012A: Label11 IL_012A: ldarg.s 5 IL_012C: brfalse => Label12 IL_0131: ldarg.1 IL_0132: dup IL_0133: ldfld Flags NetSegment::m_flags IL_0138: ldc.i4 8192 IL_013D: or IL_013E: stfld Flags NetSegment::m_flags IL_0143: br => Label13 IL_0148: Label12 IL_0148: ldarg.1 IL_0149: dup IL_014A: ldfld Flags NetSegment::m_flags IL_014F: ldc.i4 -8193 IL_0154: and IL_0155: stfld Flags NetSegment::m_flags IL_015A: Label13 IL_015A: ldarg.s 6 IL_015C: brfalse => Label14 IL_0161: ldarg.1 IL_0162: dup IL_0163: ldfld Flags NetSegment::m_flags IL_0168: ldc.i4 32768 IL_016D: or IL_016E: stfld Flags NetSegment::m_flags IL_0173: br => Label15 IL_0178: Label14 IL_0178: ldarg.1 IL_0179: dup IL_017A: ldfld Flags NetSegment::m_flags IL_017F: ldc.i4 -32769 IL_0184: and IL_0185: stfld Flags NetSegment::m_flags IL_018A: // end original IL_018A: Label9 IL_018A: Label15 IL_018A: Label0 IL_018A: ret DONE ### Patch: virtual System.Void RoadBaseAI::SimulationStep(System.UInt16 segmentID, NetSegment& data) ### Replacement: static System.Void RoadBaseAI::RoadBaseAI.SimulationStep_Patch1(RoadBaseAI this, System.UInt16 segmentID, NetSegment& data) IL_0000: Local var 0: SimulationManager IL_0000: Local var 1: NetManager IL_0000: Local var 2: Notification/ProblemStruct IL_0000: Local var 3: System.Single IL_0000: Local var 4: System.UInt32 IL_0000: Local var 5: System.Int32 IL_0000: Local var 6: NetInfo/Lane IL_0000: Local var 7: System.Int32 IL_0000: Local var 8: System.Int32 IL_0000: Local var 9: System.UInt32 IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: UnityEngine.Vector3 IL_0000: Local var 12: UnityEngine.Vector3 IL_0000: Local var 13: UnityEngine.Vector3 IL_0000: Local var 14: System.Boolean IL_0000: Local var 15: System.Single IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: DistrictManager IL_0000: Local var 19: System.Byte IL_0000: Local var 20: DistrictPolicies/CityPlanning IL_0000: Local var 21: System.Int32 IL_0000: Local var 22: TransferManager/TransferOffer IL_0000: Local var 23: System.Int32 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Int32 IL_0000: Local var 27: System.Single IL_0000: Local var 28: System.Int32 IL_0000: Local var 29: System.Int32 IL_0000: Local var 30: TransferManager/TransferOffer IL_0000: Local var 31: InstanceID IL_0000: Local var 32: System.Int32 IL_0000: Local var 33: System.Int32 IL_0000: Local var 34: TransferManager/TransferOffer IL_0000: Local var 35: System.Int32 IL_0000: Local var 36: System.Single IL_0000: Local var 37: System.Int32 IL_0000: Local var 38: System.Int32 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: GuideController IL_0000: Local var 41: GuideController IL_0000: Local var 42: System.Int32 IL_0000: Local var 43: StatisticBase IL_0000: Local var 44: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 44 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 44 (System.Boolean) IL_000E: ldloc 44 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg.0 IL_0018: ldarg 1 IL_001C: ldarg 2 IL_0020: call static System.Void TrafficManager.Patch._RoadBaseAI.SegmentSimulationStepPatch::Prefix(RoadBaseAI __instance, System.UInt16 segmentID, NetSegment& data) IL_0025: Label1 IL_0025: nop IL_0026: ldloc 44 (System.Boolean) IL_002A: brfalse => Label0 IL_002F: // start original IL_002F: ldarg.0 IL_0030: ldarg.1 IL_0031: ldarg.2 IL_0032: call virtual System.Void PlayerNetAI::SimulationStep(System.UInt16 segmentID, NetSegment& data) IL_0037: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_003C: stloc.0 IL_003D: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0042: stloc.1 IL_0043: ldarg.2 IL_0044: ldfld ProblemStruct NetSegment::m_problems IL_0049: ldc.i4 805306368 IL_004E: conv.i8 IL_004F: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0054: call static ProblemStruct Notification::RemoveProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0059: stloc.2 IL_005A: ldarg.2 IL_005B: ldfld Flags NetSegment::m_flags IL_0060: ldc.i4 2048 IL_0065: and IL_0066: brfalse => Label2 IL_006B: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0070: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0075: ldc.i4.s 16 IL_0077: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_007C: brtrue => Label3 IL_0081: ldarg.2 IL_0082: dup IL_0083: ldfld Flags NetSegment::m_flags IL_0088: ldc.i4 -2049 IL_008D: and IL_008E: stfld Flags NetSegment::m_flags IL_0093: Label2 IL_0093: Label3 IL_0093: ldc.r4 0 IL_0098: stloc.3 IL_0099: ldarg.2 IL_009A: ldfld System.UInt32 NetSegment::m_lanes IL_009F: stloc.s 4 (System.UInt32) IL_00A1: ldc.i4.0 IL_00A2: stloc.s 5 (System.Int32) IL_00A4: br => Label4 IL_00A9: Label8 IL_00A9: ldarg.0 IL_00AA: ldfld NetInfo NetAI::m_info IL_00AF: ldfld Lane[] NetInfo::m_lanes IL_00B4: ldloc.s 5 (System.Int32) IL_00B6: ldelem.ref IL_00B7: stloc.s 6 (NetInfo+Lane) IL_00B9: ldloc.s 6 (NetInfo+Lane) IL_00BB: ldfld LaneType Lane::m_laneType IL_00C0: ldc.i4.s 33 IL_00C2: and IL_00C3: conv.u1 IL_00C4: brfalse => Label5 IL_00C9: ldloc.s 6 (NetInfo+Lane) IL_00CB: ldfld VehicleType Lane::m_vehicleType IL_00D0: ldc.i4.s -33 IL_00D2: and IL_00D3: brfalse => Label6 IL_00D8: ldloc.3 IL_00D9: ldloc.1 IL_00DA: ldfld Array32`1 NetManager::m_lanes IL_00DF: ldfld NetLane[] Array32`1::m_buffer IL_00E4: ldloc.s 4 (System.UInt32) IL_00E6: conv.u IL_00E7: ldelema NetLane IL_00EC: ldfld System.Single NetLane::m_length IL_00F1: add IL_00F2: stloc.3 IL_00F3: Label5 IL_00F3: Label6 IL_00F3: ldloc.1 IL_00F4: ldfld Array32`1 NetManager::m_lanes IL_00F9: ldfld NetLane[] Array32`1::m_buffer IL_00FE: ldloc.s 4 (System.UInt32) IL_0100: conv.u IL_0101: ldelema NetLane IL_0106: ldfld System.UInt32 NetLane::m_nextLane IL_010B: stloc.s 4 (System.UInt32) IL_010D: ldloc.s 5 (System.Int32) IL_010F: ldc.i4.1 IL_0110: add IL_0111: stloc.s 5 (System.Int32) IL_0113: Label4 IL_0113: ldloc.s 5 (System.Int32) IL_0115: ldarg.0 IL_0116: ldfld NetInfo NetAI::m_info IL_011B: ldfld Lane[] NetInfo::m_lanes IL_0120: ldlen IL_0121: conv.i4 IL_0122: bge => Label7 IL_0127: ldloc.s 4 (System.UInt32) IL_0129: brtrue => Label8 IL_012E: Label7 IL_012E: ldc.i4.0 IL_012F: stloc.s 7 (System.Int32) IL_0131: ldc.i4.0 IL_0132: stloc.s 8 (System.Int32) IL_0134: ldarg.2 IL_0135: ldfld System.UInt16 NetSegment::m_trafficBuffer IL_013A: ldc.i4 65535 IL_013F: bne.un => Label9 IL_0144: ldarg.2 IL_0145: ldfld Flags NetSegment::m_flags IL_014A: ldc.i4 2097152 IL_014F: and IL_0150: brtrue => Label10 IL_0155: ldarg.2 IL_0156: dup IL_0157: ldfld Flags NetSegment::m_flags IL_015C: ldc.i4 2097152 IL_0161: or IL_0162: stfld Flags NetSegment::m_flags IL_0167: ldarg.2 IL_0168: ldloc.0 IL_0169: dup IL_016A: ldfld System.UInt32 SimulationManager::m_currentBuildIndex IL_016F: dup IL_0170: stloc.s 9 (System.UInt32) IL_0172: ldc.i4.1 IL_0173: add IL_0174: stfld System.UInt32 SimulationManager::m_currentBuildIndex IL_0179: ldloc.s 9 (System.UInt32) IL_017B: stfld System.UInt32 NetSegment::m_modifiedIndex IL_0180: Label10 IL_0180: br => Label11 IL_0185: Label9 IL_0185: ldarg.2 IL_0186: dup IL_0187: ldfld Flags NetSegment::m_flags IL_018C: ldc.i4 -2097153 IL_0191: and IL_0192: stfld Flags NetSegment::m_flags IL_0197: ldloc.3 IL_0198: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_019D: ldc.i4.4 IL_019E: shl IL_019F: stloc.s 10 (System.Int32) IL_01A1: ldloc.s 10 (System.Int32) IL_01A3: brfalse => Label12 IL_01A8: ldarg.2 IL_01A9: ldfld System.UInt16 NetSegment::m_trafficBuffer IL_01AE: ldc.i4.s 100 IL_01B0: mul IL_01B1: ldloc.s 10 (System.Int32) IL_01B3: div IL_01B4: ldc.i4.s 100 IL_01B6: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_01BB: conv.u1 IL_01BC: stloc.s 7 (System.Int32) IL_01BE: ldarg.2 IL_01BF: ldfld System.UInt16 NetSegment::m_noiseBuffer IL_01C4: ldc.i4 250 IL_01C9: mul IL_01CA: ldloc.s 10 (System.Int32) IL_01CC: div IL_01CD: ldc.i4.s 100 IL_01CF: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_01D4: conv.u1 IL_01D5: stloc.s 8 (System.Int32) IL_01D7: Label11 IL_01D7: Label12 IL_01D7: ldarg.2 IL_01D8: ldc.i4.0 IL_01D9: stfld System.UInt16 NetSegment::m_trafficBuffer IL_01DE: ldarg.2 IL_01DF: ldc.i4.0 IL_01E0: stfld System.UInt16 NetSegment::m_noiseBuffer IL_01E5: ldloc.s 7 (System.Int32) IL_01E7: ldarg.2 IL_01E8: ldfld System.Byte NetSegment::m_trafficDensity IL_01ED: ble => Label13 IL_01F2: ldarg.2 IL_01F3: ldarg.2 IL_01F4: ldfld System.Byte NetSegment::m_trafficDensity IL_01F9: ldc.i4.5 IL_01FA: add IL_01FB: ldloc.s 7 (System.Int32) IL_01FD: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0202: conv.u1 IL_0203: stfld System.Byte NetSegment::m_trafficDensity IL_0208: br => Label14 IL_020D: Label13 IL_020D: ldloc.s 7 (System.Int32) IL_020F: ldarg.2 IL_0210: ldfld System.Byte NetSegment::m_trafficDensity IL_0215: bge => Label15 IL_021A: ldarg.2 IL_021B: ldarg.2 IL_021C: ldfld System.Byte NetSegment::m_trafficDensity IL_0221: ldc.i4.5 IL_0222: sub IL_0223: ldloc.s 7 (System.Int32) IL_0225: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_022A: conv.u1 IL_022B: stfld System.Byte NetSegment::m_trafficDensity IL_0230: Label14 IL_0230: Label15 IL_0230: ldloc.s 8 (System.Int32) IL_0232: ldarg.2 IL_0233: ldfld System.Byte NetSegment::m_noiseDensity IL_0238: ble => Label16 IL_023D: ldarg.2 IL_023E: ldarg.2 IL_023F: ldfld System.Byte NetSegment::m_noiseDensity IL_0244: ldc.i4.2 IL_0245: add IL_0246: ldloc.s 8 (System.Int32) IL_0248: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_024D: conv.u1 IL_024E: stfld System.Byte NetSegment::m_noiseDensity IL_0253: br => Label17 IL_0258: Label16 IL_0258: ldloc.s 8 (System.Int32) IL_025A: ldarg.2 IL_025B: ldfld System.Byte NetSegment::m_noiseDensity IL_0260: bge => Label18 IL_0265: ldarg.2 IL_0266: ldarg.2 IL_0267: ldfld System.Byte NetSegment::m_noiseDensity IL_026C: ldc.i4.2 IL_026D: sub IL_026E: ldloc.s 8 (System.Int32) IL_0270: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0275: conv.u1 IL_0276: stfld System.Byte NetSegment::m_noiseDensity IL_027B: Label17 IL_027B: Label18 IL_027B: ldloc.1 IL_027C: ldfld Array16`1 NetManager::m_nodes IL_0281: ldfld NetNode[] Array16`1::m_buffer IL_0286: ldarg.2 IL_0287: ldfld System.UInt16 NetSegment::m_startNode IL_028C: ldelema NetNode IL_0291: ldfld UnityEngine.Vector3 NetNode::m_position IL_0296: stloc.s 11 (UnityEngine.Vector3) IL_0298: ldloc.1 IL_0299: ldfld Array16`1 NetManager::m_nodes IL_029E: ldfld NetNode[] Array16`1::m_buffer IL_02A3: ldarg.2 IL_02A4: ldfld System.UInt16 NetSegment::m_endNode IL_02A9: ldelema NetNode IL_02AE: ldfld UnityEngine.Vector3 NetNode::m_position IL_02B3: stloc.s 12 (UnityEngine.Vector3) IL_02B5: ldloc.s 11 (UnityEngine.Vector3) IL_02B7: ldloc.s 12 (UnityEngine.Vector3) IL_02B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02BE: ldc.r4 0.5 IL_02C3: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_02C8: stloc.s 13 (UnityEngine.Vector3) IL_02CA: ldc.i4.0 IL_02CB: stloc.s 14 (System.Boolean) IL_02CD: ldarg.0 IL_02CE: ldfld NetInfo NetAI::m_info IL_02D3: ldfld Flags NetInfo::m_setVehicleFlags IL_02D8: ldc.i4 268435456 IL_02DD: and IL_02DE: brtrue => Label19 IL_02E3: call static TerrainManager ColossalFramework.Singleton`1::get_instance() IL_02E8: ldloc.s 13 (UnityEngine.Vector3) IL_02EA: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_02EF: callvirt System.Single TerrainManager::WaterLevel(UnityEngine.Vector2 position) IL_02F4: stloc.s 15 (System.Single) IL_02F6: ldloc.s 15 (System.Single) IL_02F8: ldloca.s 13 (UnityEngine.Vector3) IL_02FA: ldfld System.Single UnityEngine.Vector3::y IL_02FF: ldc.r4 1 IL_0304: add IL_0305: ble.un => Label20 IL_030A: ldloc.s 15 (System.Single) IL_030C: ldc.r4 0 IL_0311: ble.un => Label21 IL_0316: ldc.i4.1 IL_0317: stloc.s 14 (System.Boolean) IL_0319: ldarg.2 IL_031A: dup IL_031B: ldfld Flags NetSegment::m_flags IL_0320: ldc.i4 4194304 IL_0325: or IL_0326: stfld Flags NetSegment::m_flags IL_032B: ldloc.2 IL_032C: ldc.i8 4611686018695823360 IL_0335: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_033A: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_033F: stloc.2 IL_0340: ldarg.2 IL_0341: ldflda UnityEngine.Bounds NetSegment::m_bounds IL_0346: call UnityEngine.Vector3 UnityEngine.Bounds::get_min() IL_034B: stloc.s 16 (UnityEngine.Vector3) IL_034D: ldarg.2 IL_034E: ldflda UnityEngine.Bounds NetSegment::m_bounds IL_0353: call UnityEngine.Vector3 UnityEngine.Bounds::get_max() IL_0358: stloc.s 17 (UnityEngine.Vector3) IL_035A: ldloca.s 16 (UnityEngine.Vector3) IL_035C: ldfld System.Single UnityEngine.Vector3::x IL_0361: ldloca.s 16 (UnityEngine.Vector3) IL_0363: ldfld System.Single UnityEngine.Vector3::z IL_0368: ldloca.s 17 (UnityEngine.Vector3) IL_036A: ldfld System.Single UnityEngine.Vector3::x IL_036F: ldloca.s 17 (UnityEngine.Vector3) IL_0371: ldfld System.Single UnityEngine.Vector3::z IL_0376: call static System.Void RoadBaseAI::FloodParkedCars(System.Single minX, System.Single minZ, System.Single maxX, System.Single maxZ) IL_037B: br => Label22 IL_0380: Label20 IL_0380: Label21 IL_0380: ldarg.2 IL_0381: dup IL_0382: ldfld Flags NetSegment::m_flags IL_0387: ldc.i4 -4194305 IL_038C: and IL_038D: stfld Flags NetSegment::m_flags IL_0392: ldloc.s 15 (System.Single) IL_0394: ldloca.s 13 (UnityEngine.Vector3) IL_0396: ldfld System.Single UnityEngine.Vector3::y IL_039B: ble.un => Label23 IL_03A0: ldloc.s 15 (System.Single) IL_03A2: ldc.r4 0 IL_03A7: ble.un => Label24 IL_03AC: ldc.i4.1 IL_03AD: stloc.s 14 (System.Boolean) IL_03AF: ldloc.2 IL_03B0: ldc.i4 268435456 IL_03B5: conv.i8 IL_03B6: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_03BB: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_03C0: stloc.2 IL_03C1: Label19 IL_03C1: Label22 IL_03C1: Label23 IL_03C1: Label24 IL_03C1: call static DistrictManager ColossalFramework.Singleton`1::get_instance() IL_03C6: stloc.s 18 (DistrictManager) IL_03C8: ldloc.s 18 (DistrictManager) IL_03CA: ldloc.s 13 (UnityEngine.Vector3) IL_03CC: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3 worldPos) IL_03D1: stloc.s 19 (System.Byte) IL_03D3: ldloc.s 18 (DistrictManager) IL_03D5: ldfld Array8`1 DistrictManager::m_districts IL_03DA: ldfld District[] Array8`1::m_buffer IL_03DF: ldloc.s 19 (System.Byte) IL_03E1: ldelema District IL_03E6: ldfld CityPlanning District::m_cityPlanningPolicies IL_03EB: stloc.s 20 (DistrictPolicies+CityPlanning) IL_03ED: ldc.i4.s 100 IL_03EF: ldarg.2 IL_03F0: ldfld System.Byte NetSegment::m_noiseDensity IL_03F5: ldc.i4.s 100 IL_03F7: sub IL_03F8: ldarg.2 IL_03F9: ldfld System.Byte NetSegment::m_noiseDensity IL_03FE: ldc.i4.s 100 IL_0400: sub IL_0401: mul IL_0402: ldc.i4.s 100 IL_0404: div IL_0405: sub IL_0406: stloc.s 21 (System.Int32) IL_0408: ldarg.0 IL_0409: ldfld NetInfo NetAI::m_info IL_040E: ldfld VehicleType NetInfo::m_vehicleTypes IL_0413: ldc.i4.1 IL_0414: and IL_0415: brfalse => Label25 IL_041A: ldarg.0 IL_041B: ldfld NetInfo NetAI::m_info IL_0420: ldfld Flags NetInfo::m_setVehicleFlags IL_0425: ldc.i4 268435456 IL_042A: and IL_042B: brtrue => Label26 IL_0430: ldloc.s 14 (System.Boolean) IL_0432: brfalse => Label27 IL_0437: ldarg.2 IL_0438: ldfld Flags NetSegment::m_flags IL_043D: ldc.i4 2099200 IL_0442: and IL_0443: brtrue => Label28 IL_0448: ldloc.0 IL_0449: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_044E: ldc.i4.s 10 IL_0450: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0455: brtrue => Label29 IL_045A: ldloca.s 22 (TransferManager+TransferOffer) IL_045C: initobj TransferManager+TransferOffer IL_0462: ldloca.s 22 (TransferManager+TransferOffer) IL_0464: ldc.i4.4 IL_0465: call System.Void TransferOffer::set_Priority(System.Int32 value) IL_046A: ldloca.s 22 (TransferManager+TransferOffer) IL_046C: ldarg.1 IL_046D: call System.Void TransferOffer::set_NetSegment(System.UInt16 value) IL_0472: ldloca.s 22 (TransferManager+TransferOffer) IL_0474: ldloc.s 13 (UnityEngine.Vector3) IL_0476: call System.Void TransferOffer::set_Position(UnityEngine.Vector3 value) IL_047B: ldloca.s 22 (TransferManager+TransferOffer) IL_047D: ldc.i4.1 IL_047E: call System.Void TransferOffer::set_Amount(System.Int32 value) IL_0483: call static TransferManager ColossalFramework.Singleton`1::get_instance() IL_0488: ldc.i4.s 73 IL_048A: ldloc.s 22 (TransferManager+TransferOffer) IL_048C: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason material, TransferOffer offer) IL_0491: Label27 IL_0491: Label28 IL_0491: Label29 IL_0491: ldarg.2 IL_0492: ldfld System.Byte NetSegment::m_wetness IL_0497: stloc.s 23 (System.Int32) IL_0499: ldloc.1 IL_049A: ldfld System.Boolean NetManager::m_treatWetAsSnow IL_049F: brtrue => Label30 IL_04A4: ldloc.s 14 (System.Boolean) IL_04A6: brfalse => Label31 IL_04AB: ldc.i4 255 IL_04B0: stloc.s 23 (System.Int32) IL_04B2: br => Label32 IL_04B7: Label31 IL_04B7: ldloc.s 23 (System.Int32) IL_04B9: ldc.i4.s 63 IL_04BB: add IL_04BC: ldc.i4.5 IL_04BD: shr IL_04BE: neg IL_04BF: stloc.s 24 (System.Int32) IL_04C1: call static WeatherManager ColossalFramework.Singleton`1::get_instance() IL_04C6: ldloc.s 13 (UnityEngine.Vector3) IL_04C8: ldc.i4.0 IL_04C9: callvirt System.Single WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean ignoreWeather) IL_04CE: stloc.s 25 (System.Single) IL_04D0: ldloc.s 25 (System.Single) IL_04D2: ldc.r4 0 IL_04D7: beq => Label33 IL_04DC: ldloc.s 25 (System.Single) IL_04DE: ldc.r4 4000 IL_04E3: mul IL_04E4: ldc.r4 1000 IL_04E9: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_04EE: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_04F3: stloc.s 26 (System.Int32) IL_04F5: ldloc.s 24 (System.Int32) IL_04F7: ldloc.0 IL_04F8: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_04FD: ldloc.s 26 (System.Int32) IL_04FF: ldloc.s 26 (System.Int32) IL_0501: ldc.i4.s 99 IL_0503: add IL_0504: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max) IL_0509: ldc.i4.s 100 IL_050B: div IL_050C: add IL_050D: stloc.s 24 (System.Int32) IL_050F: Label33 IL_050F: ldloc.s 23 (System.Int32) IL_0511: ldloc.s 24 (System.Int32) IL_0513: add IL_0514: ldc.i4.0 IL_0515: ldc.i4 255 IL_051A: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_051F: stloc.s 23 (System.Int32) IL_0521: Label32 IL_0521: br => Label34 IL_0526: Label30 IL_0526: ldarg.0 IL_0527: ldfld System.Boolean RoadBaseAI::m_accumulateSnow IL_052C: brfalse => Label35 IL_0531: ldloc.s 14 (System.Boolean) IL_0533: brfalse => Label36 IL_0538: ldc.i4 128 IL_053D: stloc.s 23 (System.Int32) IL_053F: br => Label37 IL_0544: Label36 IL_0544: call static WeatherManager ColossalFramework.Singleton`1::get_instance() IL_0549: ldloc.s 13 (UnityEngine.Vector3) IL_054B: ldc.i4.0 IL_054C: callvirt System.Single WeatherManager::SampleRainIntensity(UnityEngine.Vector3 pos, System.Boolean ignoreWeather) IL_0551: stloc.s 27 (System.Single) IL_0553: ldloc.s 27 (System.Single) IL_0555: ldc.r4 0 IL_055A: beq => Label38 IL_055F: ldloc.s 27 (System.Single) IL_0561: ldc.r4 400 IL_0566: mul IL_0567: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_056C: stloc.s 28 (System.Int32) IL_056E: ldloc.0 IL_056F: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0574: ldloc.s 28 (System.Int32) IL_0576: ldloc.s 28 (System.Int32) IL_0578: ldc.i4.s 99 IL_057A: add IL_057B: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max) IL_0580: ldc.i4.s 100 IL_0582: div IL_0583: stloc.s 29 (System.Int32) IL_0585: call static UnlockManager ColossalFramework.Singleton`1::get_instance() IL_058A: ldc.i4.s 24 IL_058C: callvirt System.Boolean UnlockManager::Unlocked(Feature feature) IL_0591: brfalse => Label39 IL_0596: ldloc.s 23 (System.Int32) IL_0598: ldloc.s 29 (System.Int32) IL_059A: add IL_059B: ldc.i4 255 IL_05A0: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_05A5: stloc.s 23 (System.Int32) IL_05A7: br => Label40 IL_05AC: Label39 IL_05AC: ldloc.s 23 (System.Int32) IL_05AE: ldloc.s 29 (System.Int32) IL_05B0: add IL_05B1: ldc.i4 128 IL_05B6: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_05BB: stloc.s 23 (System.Int32) IL_05BD: Label40 IL_05BD: br => Label41 IL_05C2: Label38 IL_05C2: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_05C7: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_05CC: ldc.i4.4 IL_05CD: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_05D2: brtrue => Label42 IL_05D7: ldloc.s 23 (System.Int32) IL_05D9: ldc.i4.1 IL_05DA: sub IL_05DB: ldc.i4.0 IL_05DC: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_05E1: stloc.s 23 (System.Int32) IL_05E3: Label41 IL_05E3: Label42 IL_05E3: ldloc.s 23 (System.Int32) IL_05E5: ldc.i4.s 64 IL_05E7: blt => Label43 IL_05EC: ldarg.2 IL_05ED: ldfld Flags NetSegment::m_flags IL_05F2: ldc.i4 6293504 IL_05F7: and IL_05F8: brtrue => Label44 IL_05FD: ldloc.0 IL_05FE: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0603: ldc.i4.s 10 IL_0605: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_060A: brtrue => Label45 IL_060F: ldloca.s 30 (TransferManager+TransferOffer) IL_0611: initobj TransferManager+TransferOffer IL_0617: ldloca.s 30 (TransferManager+TransferOffer) IL_0619: ldloc.s 23 (System.Int32) IL_061B: ldc.i4.s 50 IL_061D: div IL_061E: call System.Void TransferOffer::set_Priority(System.Int32 value) IL_0623: ldloca.s 30 (TransferManager+TransferOffer) IL_0625: ldarg.1 IL_0626: call System.Void TransferOffer::set_NetSegment(System.UInt16 value) IL_062B: ldloca.s 30 (TransferManager+TransferOffer) IL_062D: ldloc.s 13 (UnityEngine.Vector3) IL_062F: call System.Void TransferOffer::set_Position(UnityEngine.Vector3 value) IL_0634: ldloca.s 30 (TransferManager+TransferOffer) IL_0636: ldc.i4.1 IL_0637: call System.Void TransferOffer::set_Amount(System.Int32 value) IL_063C: call static TransferManager ColossalFramework.Singleton`1::get_instance() IL_0641: ldc.i4.s 64 IL_0643: ldloc.s 30 (TransferManager+TransferOffer) IL_0645: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason material, TransferOffer offer) IL_064A: Label43 IL_064A: Label44 IL_064A: Label45 IL_064A: ldloc.s 23 (System.Int32) IL_064C: ldc.i4 192 IL_0651: blt => Label46 IL_0656: ldloc.2 IL_0657: ldc.i4 536870912 IL_065C: conv.i8 IL_065D: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0662: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0667: stloc.2 IL_0668: Label46 IL_0668: ldloc.s 18 (DistrictManager) IL_066A: ldfld Array8`1 DistrictManager::m_districts IL_066F: ldfld District[] Array8`1::m_buffer IL_0674: ldloc.s 19 (System.Byte) IL_0676: ldelema District IL_067B: ldflda DistrictProductionData District::m_productionData IL_0680: dup IL_0681: ldfld System.UInt32 DistrictProductionData::m_tempSnowCover IL_0686: ldloc.s 23 (System.Int32) IL_0688: add IL_0689: stfld System.UInt32 DistrictProductionData::m_tempSnowCover IL_068E: Label34 IL_068E: Label35 IL_068E: Label37 IL_068E: ldloc.s 23 (System.Int32) IL_0690: ldarg.2 IL_0691: ldfld System.Byte NetSegment::m_wetness IL_0696: beq => Label47 IL_069B: ldarg.2 IL_069C: ldfld System.Byte NetSegment::m_wetness IL_06A1: ldloc.s 23 (System.Int32) IL_06A3: sub IL_06A4: call static System.Int32 UnityEngine.Mathf::Abs(System.Int32 value) IL_06A9: ldc.i4.s 10 IL_06AB: ble => Label48 IL_06B0: ldarg.2 IL_06B1: ldloc.s 23 (System.Int32) IL_06B3: conv.u1 IL_06B4: stfld System.Byte NetSegment::m_wetness IL_06B9: ldsfld InstanceID InstanceID::Empty IL_06BE: stloc.s 31 (InstanceID) IL_06C0: ldloca.s 31 (InstanceID) IL_06C2: ldarg.1 IL_06C3: call System.Void InstanceID::set_NetSegment(System.UInt16 value) IL_06C8: ldloc.1 IL_06C9: ldloc.s 31 (InstanceID) IL_06CB: callvirt System.Void NetManager::AddSmoothColor(InstanceID id) IL_06D0: ldloca.s 31 (InstanceID) IL_06D2: ldarg.2 IL_06D3: ldfld System.UInt16 NetSegment::m_startNode IL_06D8: call System.Void InstanceID::set_NetNode(System.UInt16 value) IL_06DD: ldloc.1 IL_06DE: ldloc.s 31 (InstanceID) IL_06E0: callvirt System.Void NetManager::AddSmoothColor(InstanceID id) IL_06E5: ldloca.s 31 (InstanceID) IL_06E7: ldarg.2 IL_06E8: ldfld System.UInt16 NetSegment::m_endNode IL_06ED: call System.Void InstanceID::set_NetNode(System.UInt16 value) IL_06F2: ldloc.1 IL_06F3: ldloc.s 31 (InstanceID) IL_06F5: callvirt System.Void NetManager::AddSmoothColor(InstanceID id) IL_06FA: br => Label49 IL_06FF: Label48 IL_06FF: ldarg.2 IL_0700: ldloc.s 23 (System.Int32) IL_0702: conv.u1 IL_0703: stfld System.Byte NetSegment::m_wetness IL_0708: ldloc.1 IL_0709: ldc.i4 256 IL_070E: stfld System.Int32 NetManager::m_wetnessChanged IL_0713: Label26 IL_0713: Label47 IL_0713: Label49 IL_0713: ldloc.s 20 (DistrictPolicies+CityPlanning) IL_0715: ldc.i4 1024 IL_071A: and IL_071B: brfalse => Label50 IL_0720: ldloc.s 21 (System.Int32) IL_0722: ldc.i4.3 IL_0723: mul IL_0724: ldc.i4.1 IL_0725: add IL_0726: ldc.i4.1 IL_0727: shr IL_0728: stloc.s 21 (System.Int32) IL_072A: ldc.i4 700 IL_072F: ldc.i4.s 50 IL_0731: ldarg.2 IL_0732: ldfld System.Byte NetSegment::m_trafficDensity IL_0737: ldc.i4.6 IL_0738: mul IL_0739: add IL_073A: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_073F: stloc.s 32 (System.Int32) IL_0741: br => Label51 IL_0746: Label50 IL_0746: ldc.i4 500 IL_074B: ldc.i4.s 50 IL_074D: ldarg.2 IL_074E: ldfld System.Byte NetSegment::m_trafficDensity IL_0753: ldc.i4.4 IL_0754: mul IL_0755: add IL_0756: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_075B: stloc.s 32 (System.Int32) IL_075D: Label51 IL_075D: ldarg.0 IL_075E: ldarg.1 IL_075F: ldarg.2 IL_0760: callvirt virtual System.Boolean RoadBaseAI::NeedMaintanceSegment(System.UInt16 segmentID, NetSegment& segment) IL_0765: brfalse => Label52 IL_076A: ldloc.0 IL_076B: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0770: ldloc.s 32 (System.Int32) IL_0772: ldloc.s 32 (System.Int32) IL_0774: ldc.i4.s 99 IL_0776: add IL_0777: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max) IL_077C: ldc.i4.s 100 IL_077E: div IL_077F: stloc.s 33 (System.Int32) IL_0781: ldarg.2 IL_0782: ldarg.2 IL_0783: ldfld System.Byte NetSegment::m_condition IL_0788: ldloc.s 33 (System.Int32) IL_078A: sub IL_078B: ldc.i4.0 IL_078C: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0791: conv.u1 IL_0792: stfld System.Byte NetSegment::m_condition IL_0797: ldarg.2 IL_0798: ldfld System.Byte NetSegment::m_condition IL_079D: ldc.i4 192 IL_07A2: bge => Label53 IL_07A7: ldarg.2 IL_07A8: ldfld Flags NetSegment::m_flags IL_07AD: ldc.i4 6293504 IL_07B2: and IL_07B3: brtrue => Label54 IL_07B8: ldloc.0 IL_07B9: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_07BE: ldc.i4.s 20 IL_07C0: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_07C5: brtrue => Label55 IL_07CA: ldloca.s 34 (TransferManager+TransferOffer) IL_07CC: initobj TransferManager+TransferOffer IL_07D2: ldloca.s 34 (TransferManager+TransferOffer) IL_07D4: ldc.i4 255 IL_07D9: ldarg.2 IL_07DA: ldfld System.Byte NetSegment::m_condition IL_07DF: sub IL_07E0: ldc.i4.s 50 IL_07E2: div IL_07E3: call System.Void TransferOffer::set_Priority(System.Int32 value) IL_07E8: ldloca.s 34 (TransferManager+TransferOffer) IL_07EA: ldarg.1 IL_07EB: call System.Void TransferOffer::set_NetSegment(System.UInt16 value) IL_07F0: ldloca.s 34 (TransferManager+TransferOffer) IL_07F2: ldloc.s 13 (UnityEngine.Vector3) IL_07F4: call System.Void TransferOffer::set_Position(UnityEngine.Vector3 value) IL_07F9: ldloca.s 34 (TransferManager+TransferOffer) IL_07FB: ldc.i4.1 IL_07FC: call System.Void TransferOffer::set_Amount(System.Int32 value) IL_0801: call static TransferManager ColossalFramework.Singleton`1::get_instance() IL_0806: ldc.i4.s 66 IL_0808: ldloc.s 34 (TransferManager+TransferOffer) IL_080A: callvirt System.Void TransferManager::AddIncomingOffer(TransferReason material, TransferOffer offer) IL_080F: Label25 IL_080F: Label52 IL_080F: Label53 IL_080F: Label54 IL_080F: Label55 IL_080F: ldarg.0 IL_0810: ldfld System.Boolean RoadBaseAI::m_highwayRules IL_0815: brtrue => Label56 IL_081A: ldloc.s 20 (DistrictPolicies+CityPlanning) IL_081C: ldc.i4.s 32 IL_081E: and IL_081F: brfalse => Label57 IL_0824: ldarg.2 IL_0825: dup IL_0826: ldfld Flags NetSegment::m_flags IL_082B: ldc.i4 1048576 IL_0830: or IL_0831: stfld Flags NetSegment::m_flags IL_0836: br => Label58 IL_083B: Label57 IL_083B: ldarg.2 IL_083C: dup IL_083D: ldfld Flags NetSegment::m_flags IL_0842: ldc.i4 -1048577 IL_0847: and IL_0848: stfld Flags NetSegment::m_flags IL_084D: Label58 IL_084D: ldloc.s 20 (DistrictPolicies+CityPlanning) IL_084F: ldc.i4 128 IL_0854: and IL_0855: brfalse => Label59 IL_085A: ldarg.2 IL_085B: dup IL_085C: ldfld Flags NetSegment::m_flags IL_0861: ldc.i4 8388608 IL_0866: or IL_0867: stfld Flags NetSegment::m_flags IL_086C: br => Label60 IL_0871: Label59 IL_0871: ldarg.2 IL_0872: dup IL_0873: ldfld Flags NetSegment::m_flags IL_0878: ldc.i4 -8388609 IL_087D: and IL_087E: stfld Flags NetSegment::m_flags IL_0883: Label60 IL_0883: ldloc.s 20 (DistrictPolicies+CityPlanning) IL_0885: ldc.i4 512 IL_088A: and IL_088B: brfalse => Label61 IL_0890: ldarg.2 IL_0891: dup IL_0892: ldfld Flags NetSegment::m_flags IL_0897: ldc.i4 16777216 IL_089C: or IL_089D: stfld Flags NetSegment::m_flags IL_08A2: br => Label62 IL_08A7: Label61 IL_08A7: ldarg.2 IL_08A8: dup IL_08A9: ldfld Flags NetSegment::m_flags IL_08AE: ldc.i4 -16777217 IL_08B3: and IL_08B4: stfld Flags NetSegment::m_flags IL_08B9: Label62 IL_08B9: ldloc.s 20 (DistrictPolicies+CityPlanning) IL_08BB: ldc.i4 65536 IL_08C0: and IL_08C1: brfalse => Label63 IL_08C6: ldarg.2 IL_08C7: dup IL_08C8: ldfld Flags NetSegment::m_flags IL_08CD: ldc.i4 256 IL_08D2: or IL_08D3: stfld Flags NetSegment::m_flags IL_08D8: br => Label64 IL_08DD: Label63 IL_08DD: ldarg.2 IL_08DE: dup IL_08DF: ldfld Flags NetSegment::m_flags IL_08E4: ldc.i4 -257 IL_08E9: and IL_08EA: stfld Flags NetSegment::m_flags IL_08EF: Label56 IL_08EF: Label64 IL_08EF: ldarg.0 IL_08F0: ldarg.2 IL_08F1: call NetInfo NetSegment::get_Info() IL_08F6: ldarg.2 IL_08F7: ldfld UnityEngine.Vector3 NetSegment::m_middlePosition IL_08FC: call System.Int32 RoadBaseAI::GetNoiseAccumulation(NetInfo info, UnityEngine.Vector3 position) IL_0901: ldloc.s 21 (System.Int32) IL_0903: mul IL_0904: ldc.i4.s 100 IL_0906: div IL_0907: stloc.s 35 (System.Int32) IL_0909: ldloc.s 35 (System.Int32) IL_090B: brfalse => Label65 IL_0910: ldloc.s 11 (UnityEngine.Vector3) IL_0912: ldloc.s 12 (UnityEngine.Vector3) IL_0914: call static System.Single UnityEngine.Vector3::Distance(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0919: stloc.s 36 (System.Single) IL_091B: ldloc.s 36 (System.Single) IL_091D: ldarg.0 IL_091E: ldfld System.Single RoadBaseAI::m_noiseRadius IL_0923: div IL_0924: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0929: stloc.s 37 (System.Int32) IL_092B: ldc.i4.0 IL_092C: stloc.s 38 (System.Int32) IL_092E: br => Label66 IL_0933: Label67 IL_0933: ldloc.s 11 (UnityEngine.Vector3) IL_0935: ldloc.s 12 (UnityEngine.Vector3) IL_0937: ldloc.s 38 (System.Int32) IL_0939: ldc.i4.1 IL_093A: add IL_093B: conv.r4 IL_093C: ldloc.s 37 (System.Int32) IL_093E: ldc.i4.1 IL_093F: add IL_0940: conv.r4 IL_0941: div IL_0942: call static UnityEngine.Vector3 UnityEngine.Vector3::Lerp(UnityEngine.Vector3 a, UnityEngine.Vector3 b, System.Single t) IL_0947: stloc.s 39 (UnityEngine.Vector3) IL_0949: call static ImmaterialResourceManager ColossalFramework.Singleton`1::get_instance() IL_094E: ldc.i4.8 IL_094F: ldloc.s 35 (System.Int32) IL_0951: ldloc.s 39 (UnityEngine.Vector3) IL_0953: ldarg.0 IL_0954: ldfld System.Single RoadBaseAI::m_noiseRadius IL_0959: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource resource, System.Int32 rate, UnityEngine.Vector3 position, System.Single radius) IL_095E: pop IL_095F: ldloc.s 38 (System.Int32) IL_0961: ldc.i4.1 IL_0962: add IL_0963: stloc.s 38 (System.Int32) IL_0965: Label66 IL_0965: ldloc.s 38 (System.Int32) IL_0967: ldloc.s 37 (System.Int32) IL_0969: blt => Label67 IL_096E: Label65 IL_096E: ldarg.2 IL_096F: ldfld System.Byte NetSegment::m_trafficDensity IL_0974: ldc.i4.s 50 IL_0976: blt => Label68 IL_097B: ldarg.2 IL_097C: ldfld System.Single NetSegment::m_averageLength IL_0981: ldc.r4 25 IL_0986: bge.un => Label69 IL_098B: ldloc.1 IL_098C: ldfld Array16`1 NetManager::m_nodes IL_0991: ldfld NetNode[] Array16`1::m_buffer IL_0996: ldarg.2 IL_0997: ldfld System.UInt16 NetSegment::m_startNode IL_099C: ldelema NetNode IL_09A1: ldfld Flags NetNode::m_flags IL_09A6: ldc.i4 10485760 IL_09AB: and IL_09AC: ldc.i4 8388608 IL_09B1: bne.un => Label70 IL_09B6: ldloc.1 IL_09B7: ldfld Array16`1 NetManager::m_nodes IL_09BC: ldfld NetNode[] Array16`1::m_buffer IL_09C1: ldarg.2 IL_09C2: ldfld System.UInt16 NetSegment::m_endNode IL_09C7: ldelema NetNode IL_09CC: ldfld Flags NetNode::m_flags IL_09D1: ldc.i4 10485760 IL_09D6: and IL_09D7: ldc.i4 8388608 IL_09DC: bne.un => Label71 IL_09E1: call static GuideManager ColossalFramework.Singleton`1::get_instance() IL_09E6: ldfld GuideController SimulationManagerBase`2::m_properties IL_09EB: stloc.s 40 (GuideController) IL_09ED: ldloc.s 40 (GuideController) IL_09EF: brfalse => Label72 IL_09F4: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_09F9: ldfld NetSegmentInstanceGuide NetManager::m_shortRoadTraffic IL_09FE: ldloc.s 40 (GuideController) IL_0A00: ldfld GuideInfo GuideController::m_shortRoadTraffic IL_0A05: ldarg.1 IL_0A06: ldc.i4.0 IL_0A07: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo guideInfo, System.UInt16 segmentID, System.Boolean ignoreID) IL_0A0C: Label68 IL_0A0C: Label69 IL_0A0C: Label70 IL_0A0C: Label71 IL_0A0C: Label72 IL_0A0C: ldarg.2 IL_0A0D: ldfld Flags NetSegment::m_flags IL_0A12: ldc.i4.8 IL_0A13: and IL_0A14: brfalse => Label73 IL_0A19: call static GuideManager ColossalFramework.Singleton`1::get_instance() IL_0A1E: ldfld GuideController SimulationManagerBase`2::m_properties IL_0A23: stloc.s 41 (GuideController) IL_0A25: ldloc.s 41 (GuideController) IL_0A27: brfalse => Label74 IL_0A2C: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0A31: ldfld NetSegmentInstanceGuide NetManager::m_roadDestroyed IL_0A36: ldloc.s 41 (GuideController) IL_0A38: ldfld GuideInfo GuideController::m_roadDestroyed IL_0A3D: ldarg.1 IL_0A3E: ldc.i4.0 IL_0A3F: callvirt System.Void NetSegmentInstanceGuide::Activate(GuideInfo guideInfo, System.UInt16 segmentID, System.Boolean ignoreID) IL_0A44: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0A49: ldfld ServiceTypeGuide NetManager::m_roadDestroyed2 IL_0A4E: ldloc.s 41 (GuideController) IL_0A50: ldfld GuideInfo GuideController::m_roadDestroyed2 IL_0A55: ldarg.0 IL_0A56: ldfld NetInfo NetAI::m_info IL_0A5B: ldfld ItemClass NetInfo::m_class IL_0A60: ldfld Service ItemClass::m_service IL_0A65: callvirt System.Void ServiceTypeGuide::Activate(GuideInfo guideInfo, Service service) IL_0A6A: Label74 IL_0A6A: ldloc.0 IL_0A6B: ldfld System.UInt32 SimulationManager::m_currentFrameIndex IL_0A70: ldc.i4.8 IL_0A71: shr.un IL_0A72: ldc.i4.s 15 IL_0A74: and IL_0A75: conv.u8 IL_0A76: ldarg.1 IL_0A77: ldc.i4.s 15 IL_0A79: and IL_0A7A: conv.i8 IL_0A7B: bne.un => Label75 IL_0A80: ldarg.2 IL_0A81: ldfld System.Single NetSegment::m_averageLength IL_0A86: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_0A8B: stloc.s 42 (System.Int32) IL_0A8D: call static StatisticsManager ColossalFramework.Singleton`1::get_instance() IL_0A92: ldc.i4.s 53 IL_0A94: callvirt StatisticBase StatisticsManager::Acquire(StatisticType type) IL_0A99: stloc.s 43 (StatisticBase) IL_0A9B: ldloc.s 43 (StatisticBase) IL_0A9D: ldloc.s 42 (System.Int32) IL_0A9F: callvirt abstract virtual System.Void StatisticBase::Add(System.Int32 delta) IL_0AA4: Label73 IL_0AA4: Label75 IL_0AA4: ldarg.2 IL_0AA5: ldloc.2 IL_0AA6: stfld ProblemStruct NetSegment::m_problems IL_0AAB: // end original IL_0AAB: Label0 IL_0AAB: ret DONE ### Patch: static System.Void RoadBaseAI::TrafficLightSimulationStep(System.UInt16 nodeID, NetNode& data) ### Replacement: static System.Void RoadBaseAI::RoadBaseAI.TrafficLightSimulationStep_Patch1(System.UInt16 nodeID, NetNode& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: System.UInt32 IL_0000: Local var 2: System.Int32 IL_0000: Local var 3: System.Int32 IL_0000: Local var 4: System.Int32 IL_0000: Local var 5: System.Int32 IL_0000: Local var 6: System.Int32 IL_0000: Local var 7: System.Int32 IL_0000: Local var 8: System.Int32 IL_0000: Local var 9: System.Int32 IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Int32 IL_0000: Local var 12: System.Int32 IL_0000: Local var 13: System.Int32 IL_0000: Local var 14: System.Int32 IL_0000: Local var 15: System.Int32 IL_0000: Local var 16: System.Int32 IL_0000: Local var 17: System.UInt16 IL_0000: Local var 18: System.Int32 IL_0000: Local var 19: System.Int32 IL_0000: Local var 20: System.Boolean IL_0000: Local var 21: System.Boolean IL_0000: Local var 22: System.Boolean IL_0000: Local var 23: RoadBaseAI/TrafficLightState IL_0000: Local var 24: RoadBaseAI/TrafficLightState IL_0000: Local var 25: System.Boolean IL_0000: Local var 26: System.Boolean IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.UInt16 IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: System.Int32 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: System.Int32 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: UnityEngine.Vector3 IL_0000: Local var 35: System.UInt16 IL_0000: Local var 36: System.Int32 IL_0000: Local var 37: System.Boolean[] IL_0000: Local var 38: System.Int32 IL_0000: Local var 39: System.UInt16 IL_0000: Local var 40: RoadBaseAI/TrafficLightState IL_0000: Local var 41: RoadBaseAI/TrafficLightState IL_0000: Local var 42: System.Boolean IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 44 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 44 (System.Boolean) IL_000E: ldloc 44 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 0 IL_001B: ldarg 1 IL_001F: call static System.Boolean TrafficManager.Patch._RoadBaseAI.TrafficLightSimulationStepPatch::Prefix(System.UInt16 nodeID, NetNode& data) IL_0024: stloc 44 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 44 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_003D: ldfld System.UInt32 SimulationManager::m_currentFrameIndex IL_0042: stloc.1 IL_0043: ldarg.1 IL_0044: ldfld System.Byte NetNode::m_maxWaitTime IL_0049: ldc.i4.3 IL_004A: and IL_004B: stloc.2 IL_004C: ldarg.1 IL_004D: ldfld System.Byte NetNode::m_maxWaitTime IL_0052: ldc.i4.2 IL_0053: shr IL_0054: ldc.i4.7 IL_0055: and IL_0056: stloc.3 IL_0057: ldarg.1 IL_0058: ldfld System.Byte NetNode::m_maxWaitTime IL_005D: ldc.i4.5 IL_005E: shr IL_005F: stloc.s 4 (System.Int32) IL_0061: ldc.i4.m1 IL_0062: stloc.s 5 (System.Int32) IL_0064: ldc.i4.m1 IL_0065: stloc.s 6 (System.Int32) IL_0067: ldc.i4.m1 IL_0068: stloc.s 7 (System.Int32) IL_006A: ldc.i4.m1 IL_006B: stloc.s 8 (System.Int32) IL_006D: ldc.i4.m1 IL_006E: stloc.s 9 (System.Int32) IL_0070: ldc.i4.m1 IL_0071: stloc.s 10 (System.Int32) IL_0073: ldc.i4.0 IL_0074: stloc.s 11 (System.Int32) IL_0076: ldc.i4.0 IL_0077: stloc.s 12 (System.Int32) IL_0079: ldc.i4.0 IL_007A: stloc.s 13 (System.Int32) IL_007C: ldc.i4.0 IL_007D: stloc.s 14 (System.Int32) IL_007F: ldc.i4.0 IL_0080: stloc.s 15 (System.Int32) IL_0082: ldc.i4.0 IL_0083: stloc.s 16 (System.Int32) IL_0085: br => Label2 IL_008A: Label24 IL_008A: ldarg.1 IL_008B: ldloc.s 16 (System.Int32) IL_008D: call System.UInt16 NetNode::GetSegment(System.Int32 index) IL_0092: stloc.s 17 (System.UInt16) IL_0094: ldloc.s 17 (System.UInt16) IL_0096: brfalse => Label3 IL_009B: ldc.i4.0 IL_009C: stloc.s 18 (System.Int32) IL_009E: ldc.i4.0 IL_009F: stloc.s 19 (System.Int32) IL_00A1: ldloc.0 IL_00A2: ldfld Array16`1 NetManager::m_segments IL_00A7: ldfld NetSegment[] Array16`1::m_buffer IL_00AC: ldloc.s 17 (System.UInt16) IL_00AE: ldelema NetSegment IL_00B3: ldloc.s 17 (System.UInt16) IL_00B5: ldc.i4.s 33 IL_00B7: ldc.i4 65601 IL_00BC: ldc.i4.m1 IL_00BD: conv.i8 IL_00BE: ldloca.s 18 (System.Int32) IL_00C0: ldloca.s 19 (System.Int32) IL_00C2: call System.Void NetSegment::CountLanes(System.UInt16 segmentID, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, System.Int32& forward, System.Int32& backward) IL_00C7: ldloc.0 IL_00C8: ldfld Array16`1 NetManager::m_segments IL_00CD: ldfld NetSegment[] Array16`1::m_buffer IL_00D2: ldloc.s 17 (System.UInt16) IL_00D4: ldelema NetSegment IL_00D9: ldfld System.UInt16 NetSegment::m_startNode IL_00DE: ldarg.0 IL_00DF: ceq IL_00E1: stloc.s 20 (System.Boolean) IL_00E3: ldloc.s 20 (System.Boolean) IL_00E5: brfalse => Label4 IL_00EA: ldloc.s 19 (System.Int32) IL_00EC: ldc.i4.0 IL_00ED: ceq IL_00EF: ldc.i4.0 IL_00F0: ceq IL_00F2: br => Label5 IL_00F7: Label4 IL_00F7: ldloc.s 18 (System.Int32) IL_00F9: ldc.i4.0 IL_00FA: ceq IL_00FC: ldc.i4.0 IL_00FD: ceq IL_00FF: Label5 IL_00FF: stloc.s 21 (System.Boolean) IL_0101: ldloc.s 20 (System.Boolean) IL_0103: brfalse => Label6 IL_0108: ldloc.s 18 (System.Int32) IL_010A: ldc.i4.0 IL_010B: ceq IL_010D: ldc.i4.0 IL_010E: ceq IL_0110: br => Label7 IL_0115: Label6 IL_0115: ldloc.s 19 (System.Int32) IL_0117: ldc.i4.0 IL_0118: ceq IL_011A: ldc.i4.0 IL_011B: ceq IL_011D: Label7 IL_011D: stloc.s 22 (System.Boolean) IL_011F: ldloc.s 21 (System.Boolean) IL_0121: brfalse => Label8 IL_0126: ldloc.s 11 (System.Int32) IL_0128: ldc.i4.1 IL_0129: ldloc.s 16 (System.Int32) IL_012B: ldc.i4.s 31 IL_012D: and IL_012E: shl IL_012F: or IL_0130: stloc.s 11 (System.Int32) IL_0132: Label8 IL_0132: ldloc.s 22 (System.Boolean) IL_0134: brfalse => Label9 IL_0139: ldloc.s 12 (System.Int32) IL_013B: ldc.i4.1 IL_013C: ldloc.s 16 (System.Int32) IL_013E: ldc.i4.s 31 IL_0140: and IL_0141: shl IL_0142: or IL_0143: stloc.s 12 (System.Int32) IL_0145: ldloc.s 14 (System.Int32) IL_0147: ldc.i4.1 IL_0148: add IL_0149: stloc.s 14 (System.Int32) IL_014B: Label9 IL_014B: ldarg.0 IL_014C: ldloc.0 IL_014D: ldfld Array16`1 NetManager::m_segments IL_0152: ldfld NetSegment[] Array16`1::m_buffer IL_0157: ldloc.s 17 (System.UInt16) IL_0159: ldelema NetSegment IL_015E: ldloc.1 IL_015F: ldc.i4 256 IL_0164: sub IL_0165: ldloca.s 23 (RoadBaseAI+TrafficLightState) IL_0167: ldloca.s 24 (RoadBaseAI+TrafficLightState) IL_0169: ldloca.s 25 (System.Boolean) IL_016B: ldloca.s 26 (System.Boolean) IL_016D: call static System.Void RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData, System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState& pedestrianLightState, System.Boolean& vehicles, System.Boolean& pedestrians) IL_0172: ldloc.s 24 (RoadBaseAI+TrafficLightState) IL_0174: ldc.i4.2 IL_0175: and IL_0176: brfalse => Label10 IL_017B: ldloc.s 26 (System.Boolean) IL_017D: brfalse => Label11 IL_0182: ldloc.s 8 (System.Int32) IL_0184: ldc.i4.m1 IL_0185: bne.un => Label12 IL_018A: ldloc.s 16 (System.Int32) IL_018C: stloc.s 8 (System.Int32) IL_018E: Label12 IL_018E: ldloc.s 10 (System.Int32) IL_0190: ldc.i4.m1 IL_0191: bne.un => Label13 IL_0196: ldloc.s 15 (System.Int32) IL_0198: ldloc.s 4 (System.Int32) IL_019A: blt => Label14 IL_019F: ldloc.s 16 (System.Int32) IL_01A1: stloc.s 10 (System.Int32) IL_01A3: Label10 IL_01A3: Label11 IL_01A3: Label13 IL_01A3: Label14 IL_01A3: ldloc.s 15 (System.Int32) IL_01A5: ldc.i4.1 IL_01A6: add IL_01A7: stloc.s 15 (System.Int32) IL_01A9: ldloc.s 21 (System.Boolean) IL_01AB: brtrue => Label15 IL_01B0: ldloc.s 25 (System.Boolean) IL_01B2: brfalse => Label16 IL_01B7: Label15 IL_01B7: ldloc.s 23 (RoadBaseAI+TrafficLightState) IL_01B9: ldc.i4.2 IL_01BA: and IL_01BB: brtrue => Label17 IL_01C0: ldloc.s 16 (System.Int32) IL_01C2: stloc.s 6 (System.Int32) IL_01C4: ldloc.s 25 (System.Boolean) IL_01C6: brfalse => Label18 IL_01CB: ldloc.s 16 (System.Int32) IL_01CD: stloc.s 5 (System.Int32) IL_01CF: Label18 IL_01CF: br => Label19 IL_01D4: Label17 IL_01D4: ldloc.s 25 (System.Boolean) IL_01D6: brfalse => Label20 IL_01DB: ldloc.s 7 (System.Int32) IL_01DD: ldc.i4.m1 IL_01DE: bne.un => Label21 IL_01E3: ldloc.s 16 (System.Int32) IL_01E5: stloc.s 7 (System.Int32) IL_01E7: Label21 IL_01E7: ldloc.s 9 (System.Int32) IL_01E9: ldc.i4.m1 IL_01EA: bne.un => Label22 IL_01EF: ldloc.s 13 (System.Int32) IL_01F1: ldloc.3 IL_01F2: blt => Label23 IL_01F7: ldloc.s 16 (System.Int32) IL_01F9: stloc.s 9 (System.Int32) IL_01FB: Label19 IL_01FB: Label20 IL_01FB: Label22 IL_01FB: Label23 IL_01FB: ldloc.s 13 (System.Int32) IL_01FD: ldc.i4.1 IL_01FE: add IL_01FF: stloc.s 13 (System.Int32) IL_0201: Label3 IL_0201: Label16 IL_0201: ldloc.s 16 (System.Int32) IL_0203: ldc.i4.1 IL_0204: add IL_0205: stloc.s 16 (System.Int32) IL_0207: Label2 IL_0207: ldloc.s 16 (System.Int32) IL_0209: ldc.i4.8 IL_020A: blt => Label24 IL_020F: ldloc.s 9 (System.Int32) IL_0211: ldc.i4.m1 IL_0212: bne.un => Label25 IL_0217: ldloc.s 7 (System.Int32) IL_0219: stloc.s 9 (System.Int32) IL_021B: Label25 IL_021B: ldloc.s 10 (System.Int32) IL_021D: ldc.i4.m1 IL_021E: bne.un => Label26 IL_0223: ldloc.s 8 (System.Int32) IL_0225: stloc.s 10 (System.Int32) IL_0227: Label26 IL_0227: ldloc.s 6 (System.Int32) IL_0229: ldc.i4.m1 IL_022A: beq => Label27 IL_022F: ldloc.s 5 (System.Int32) IL_0231: ldc.i4.m1 IL_0232: beq => Label28 IL_0237: ldloc.2 IL_0238: ldc.i4.1 IL_0239: bgt => Label29 IL_023E: ldc.i4.m1 IL_023F: stloc.s 9 (System.Int32) IL_0241: ldc.i4.m1 IL_0242: stloc.s 10 (System.Int32) IL_0244: ldloc.2 IL_0245: ldc.i4.1 IL_0246: add IL_0247: stloc.2 IL_0248: Label27 IL_0248: Label28 IL_0248: Label29 IL_0248: ldloc.s 10 (System.Int32) IL_024A: ldc.i4.m1 IL_024B: beq => Label30 IL_0250: ldloc.s 9 (System.Int32) IL_0252: ldc.i4.m1 IL_0253: beq => Label31 IL_0258: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_025D: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0262: ldc.i4.3 IL_0263: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0268: brfalse => Label32 IL_026D: ldc.i4.m1 IL_026E: stloc.s 10 (System.Int32) IL_0270: Label30 IL_0270: Label31 IL_0270: Label32 IL_0270: ldloc.s 9 (System.Int32) IL_0272: ldc.i4.m1 IL_0273: beq => Label33 IL_0278: ldloc.s 9 (System.Int32) IL_027A: stloc.s 6 (System.Int32) IL_027C: Label33 IL_027C: ldloc.s 10 (System.Int32) IL_027E: ldloc.s 6 (System.Int32) IL_0280: bne.un => Label34 IL_0285: ldc.i4.m1 IL_0286: stloc.s 6 (System.Int32) IL_0288: Label34 IL_0288: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero() IL_028D: stloc.s 27 (UnityEngine.Vector3) IL_028F: ldloc.s 10 (System.Int32) IL_0291: ldc.i4.m1 IL_0292: beq => Label35 IL_0297: ldarg.1 IL_0298: ldloc.s 10 (System.Int32) IL_029A: call System.UInt16 NetNode::GetSegment(System.Int32 index) IL_029F: stloc.s 28 (System.UInt16) IL_02A1: ldloc.0 IL_02A2: ldfld Array16`1 NetManager::m_segments IL_02A7: ldfld NetSegment[] Array16`1::m_buffer IL_02AC: ldloc.s 28 (System.UInt16) IL_02AE: ldelema NetSegment IL_02B3: ldarg.0 IL_02B4: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16 nodeID) IL_02B9: stloc.s 27 (UnityEngine.Vector3) IL_02BB: ldloc.s 6 (System.Int32) IL_02BD: ldc.i4.m1 IL_02BE: beq => Label36 IL_02C3: ldarg.1 IL_02C4: ldloc.s 6 (System.Int32) IL_02C6: call System.UInt16 NetNode::GetSegment(System.Int32 index) IL_02CB: stloc.s 28 (System.UInt16) IL_02CD: ldloc.0 IL_02CE: ldfld Array16`1 NetManager::m_segments IL_02D3: ldfld NetSegment[] Array16`1::m_buffer IL_02D8: ldloc.s 28 (System.UInt16) IL_02DA: ldelema NetSegment IL_02DF: ldarg.0 IL_02E0: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16 nodeID) IL_02E5: stloc.s 29 (UnityEngine.Vector3) IL_02E7: ldloca.s 29 (UnityEngine.Vector3) IL_02E9: ldfld System.Single UnityEngine.Vector3::x IL_02EE: ldloca.s 27 (UnityEngine.Vector3) IL_02F0: ldfld System.Single UnityEngine.Vector3::x IL_02F5: mul IL_02F6: ldloca.s 29 (UnityEngine.Vector3) IL_02F8: ldfld System.Single UnityEngine.Vector3::z IL_02FD: ldloca.s 27 (UnityEngine.Vector3) IL_02FF: ldfld System.Single UnityEngine.Vector3::z IL_0304: mul IL_0305: add IL_0306: ldc.r4 -0.5 IL_030B: bge.un => Label37 IL_0310: ldc.i4.m1 IL_0311: stloc.s 6 (System.Int32) IL_0313: Label36 IL_0313: Label37 IL_0313: ldloc.s 6 (System.Int32) IL_0315: ldc.i4.m1 IL_0316: bne.un => Label38 IL_031B: ldc.i4.0 IL_031C: stloc.s 30 (System.Int32) IL_031E: br => Label39 IL_0323: Label45 IL_0323: ldloc.s 30 (System.Int32) IL_0325: ldloc.s 10 (System.Int32) IL_0327: beq => Label40 IL_032C: ldloc.s 11 (System.Int32) IL_032E: ldc.i4.1 IL_032F: ldloc.s 30 (System.Int32) IL_0331: ldc.i4.s 31 IL_0333: and IL_0334: shl IL_0335: and IL_0336: brfalse => Label41 IL_033B: ldarg.1 IL_033C: ldloc.s 30 (System.Int32) IL_033E: call System.UInt16 NetNode::GetSegment(System.Int32 index) IL_0343: stloc.s 28 (System.UInt16) IL_0345: ldloc.s 28 (System.UInt16) IL_0347: brfalse => Label42 IL_034C: ldloc.0 IL_034D: ldfld Array16`1 NetManager::m_segments IL_0352: ldfld NetSegment[] Array16`1::m_buffer IL_0357: ldloc.s 28 (System.UInt16) IL_0359: ldelema NetSegment IL_035E: ldarg.0 IL_035F: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16 nodeID) IL_0364: stloc.s 31 (UnityEngine.Vector3) IL_0366: ldloca.s 31 (UnityEngine.Vector3) IL_0368: ldfld System.Single UnityEngine.Vector3::x IL_036D: ldloca.s 27 (UnityEngine.Vector3) IL_036F: ldfld System.Single UnityEngine.Vector3::x IL_0374: mul IL_0375: ldloca.s 31 (UnityEngine.Vector3) IL_0377: ldfld System.Single UnityEngine.Vector3::z IL_037C: ldloca.s 27 (UnityEngine.Vector3) IL_037E: ldfld System.Single UnityEngine.Vector3::z IL_0383: mul IL_0384: add IL_0385: ldc.r4 -0.5 IL_038A: blt.un => Label43 IL_038F: ldloc.s 30 (System.Int32) IL_0391: stloc.s 6 (System.Int32) IL_0393: br => Label44 IL_0398: Label40 IL_0398: Label41 IL_0398: Label42 IL_0398: Label43 IL_0398: ldloc.s 30 (System.Int32) IL_039A: ldc.i4.1 IL_039B: add IL_039C: stloc.s 30 (System.Int32) IL_039E: Label39 IL_039E: ldloc.s 30 (System.Int32) IL_03A0: ldc.i4.8 IL_03A1: blt => Label45 IL_03A6: Label35 IL_03A6: Label38 IL_03A6: Label44 IL_03A6: ldc.i4.m1 IL_03A7: stloc.s 32 (System.Int32) IL_03A9: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero() IL_03AE: stloc.s 33 (UnityEngine.Vector3) IL_03B0: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero() IL_03B5: stloc.s 34 (UnityEngine.Vector3) IL_03B7: ldloc.s 6 (System.Int32) IL_03B9: ldc.i4.m1 IL_03BA: beq => Label46 IL_03BF: ldarg.1 IL_03C0: ldloc.s 6 (System.Int32) IL_03C2: call System.UInt16 NetNode::GetSegment(System.Int32 index) IL_03C7: stloc.s 35 (System.UInt16) IL_03C9: ldloc.0 IL_03CA: ldfld Array16`1 NetManager::m_segments IL_03CF: ldfld NetSegment[] Array16`1::m_buffer IL_03D4: ldloc.s 35 (System.UInt16) IL_03D6: ldelema NetSegment IL_03DB: ldarg.0 IL_03DC: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16 nodeID) IL_03E1: stloc.s 33 (UnityEngine.Vector3) IL_03E3: ldloc.s 11 (System.Int32) IL_03E5: ldloc.s 12 (System.Int32) IL_03E7: and IL_03E8: ldc.i4.1 IL_03E9: ldloc.s 6 (System.Int32) IL_03EB: ldc.i4.s 31 IL_03ED: and IL_03EE: shl IL_03EF: and IL_03F0: brfalse => Label47 IL_03F5: ldc.i4.0 IL_03F6: stloc.s 36 (System.Int32) IL_03F8: br => Label48 IL_03FD: Label59 IL_03FD: ldloc.s 36 (System.Int32) IL_03FF: ldloc.s 6 (System.Int32) IL_0401: beq => Label49 IL_0406: ldloc.s 36 (System.Int32) IL_0408: ldloc.s 10 (System.Int32) IL_040A: beq => Label50 IL_040F: ldloc.s 11 (System.Int32) IL_0411: ldloc.s 12 (System.Int32) IL_0413: and IL_0414: ldc.i4.1 IL_0415: ldloc.s 36 (System.Int32) IL_0417: ldc.i4.s 31 IL_0419: and IL_041A: shl IL_041B: and IL_041C: brfalse => Label51 IL_0421: ldarg.1 IL_0422: ldloc.s 36 (System.Int32) IL_0424: call System.UInt16 NetNode::GetSegment(System.Int32 index) IL_0429: stloc.s 35 (System.UInt16) IL_042B: ldloc.s 35 (System.UInt16) IL_042D: brfalse => Label52 IL_0432: ldloc.0 IL_0433: ldfld Array16`1 NetManager::m_segments IL_0438: ldfld NetSegment[] Array16`1::m_buffer IL_043D: ldloc.s 35 (System.UInt16) IL_043F: ldelema NetSegment IL_0444: ldarg.0 IL_0445: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16 nodeID) IL_044A: stloc.s 34 (UnityEngine.Vector3) IL_044C: ldloc.s 10 (System.Int32) IL_044E: ldc.i4.m1 IL_044F: beq => Label53 IL_0454: ldloca.s 34 (UnityEngine.Vector3) IL_0456: ldfld System.Single UnityEngine.Vector3::x IL_045B: ldloca.s 27 (UnityEngine.Vector3) IL_045D: ldfld System.Single UnityEngine.Vector3::x IL_0462: mul IL_0463: ldloca.s 34 (UnityEngine.Vector3) IL_0465: ldfld System.Single UnityEngine.Vector3::z IL_046A: ldloca.s 27 (UnityEngine.Vector3) IL_046C: ldfld System.Single UnityEngine.Vector3::z IL_0471: mul IL_0472: add IL_0473: ldc.r4 -0.5 IL_0478: blt.un => Label54 IL_047D: Label53 IL_047D: ldloc.s 14 (System.Int32) IL_047F: ldc.i4.2 IL_0480: bne.un => Label55 IL_0485: ldloc.s 36 (System.Int32) IL_0487: stloc.s 32 (System.Int32) IL_0489: br => Label56 IL_048E: Label55 IL_048E: ldloca.s 34 (UnityEngine.Vector3) IL_0490: ldfld System.Single UnityEngine.Vector3::x IL_0495: ldloca.s 33 (UnityEngine.Vector3) IL_0497: ldfld System.Single UnityEngine.Vector3::x IL_049C: mul IL_049D: ldloca.s 34 (UnityEngine.Vector3) IL_049F: ldfld System.Single UnityEngine.Vector3::z IL_04A4: ldloca.s 33 (UnityEngine.Vector3) IL_04A6: ldfld System.Single UnityEngine.Vector3::z IL_04AB: mul IL_04AC: add IL_04AD: ldc.r4 -0.9396926 IL_04B2: bge.un => Label57 IL_04B7: ldloc.s 36 (System.Int32) IL_04B9: stloc.s 32 (System.Int32) IL_04BB: br => Label58 IL_04C0: Label49 IL_04C0: Label50 IL_04C0: Label51 IL_04C0: Label52 IL_04C0: Label54 IL_04C0: Label57 IL_04C0: ldloc.s 36 (System.Int32) IL_04C2: ldc.i4.1 IL_04C3: add IL_04C4: stloc.s 36 (System.Int32) IL_04C6: Label48 IL_04C6: ldloc.s 36 (System.Int32) IL_04C8: ldc.i4.8 IL_04C9: blt => Label59 IL_04CE: Label46 IL_04CE: Label47 IL_04CE: Label56 IL_04CE: Label58 IL_04CE: ldc.i4.8 IL_04CF: newarr System.Boolean IL_04D4: stloc.s 37 (System.Boolean[]) IL_04D6: ldc.i4.0 IL_04D7: stloc.s 38 (System.Int32) IL_04D9: br => Label60 IL_04DE: Label79 IL_04DE: ldarg.1 IL_04DF: ldloc.s 38 (System.Int32) IL_04E1: call System.UInt16 NetNode::GetSegment(System.Int32 index) IL_04E6: stloc.s 39 (System.UInt16) IL_04E8: ldloc.s 39 (System.UInt16) IL_04EA: brfalse => Label61 IL_04EF: ldarg.0 IL_04F0: ldloc.0 IL_04F1: ldfld Array16`1 NetManager::m_segments IL_04F6: ldfld NetSegment[] Array16`1::m_buffer IL_04FB: ldloc.s 39 (System.UInt16) IL_04FD: ldelema NetSegment IL_0502: ldloc.1 IL_0503: ldc.i4 256 IL_0508: sub IL_0509: ldloca.s 40 (RoadBaseAI+TrafficLightState) IL_050B: ldloca.s 41 (RoadBaseAI+TrafficLightState) IL_050D: ldloc.s 37 (System.Boolean[]) IL_050F: ldloc.s 38 (System.Int32) IL_0511: ldelema System.Boolean IL_0516: ldloca.s 42 (System.Boolean) IL_0518: call static System.Void RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData, System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState& pedestrianLightState, System.Boolean& vehicles, System.Boolean& pedestrians) IL_051D: ldloc.s 40 (RoadBaseAI+TrafficLightState) IL_051F: ldc.i4.s -2 IL_0521: and IL_0522: stloc.s 40 (RoadBaseAI+TrafficLightState) IL_0524: ldloc.s 41 (RoadBaseAI+TrafficLightState) IL_0526: ldc.i4.s -2 IL_0528: and IL_0529: stloc.s 41 (RoadBaseAI+TrafficLightState) IL_052B: ldloc.s 6 (System.Int32) IL_052D: ldloc.s 38 (System.Int32) IL_052F: beq => Label62 IL_0534: ldloc.s 32 (System.Int32) IL_0536: ldloc.s 38 (System.Int32) IL_0538: bne.un => Label63 IL_053D: Label62 IL_053D: ldloc.s 40 (RoadBaseAI+TrafficLightState) IL_053F: ldc.i4.2 IL_0540: and IL_0541: brfalse => Label64 IL_0546: ldc.i4.1 IL_0547: stloc.s 40 (RoadBaseAI+TrafficLightState) IL_0549: ldc.i4.0 IL_054A: stloc.2 IL_054B: ldloc.3 IL_054C: ldc.i4.1 IL_054D: add IL_054E: dup IL_054F: stloc.3 IL_0550: ldloc.s 13 (System.Int32) IL_0552: blt => Label65 IL_0557: ldc.i4.0 IL_0558: stloc.3 IL_0559: Label64 IL_0559: Label65 IL_0559: ldloc.s 41 (RoadBaseAI+TrafficLightState) IL_055B: ldc.i4.2 IL_055C: and IL_055D: brtrue => Label66 IL_0562: ldc.i4.3 IL_0563: stloc.s 41 (RoadBaseAI+TrafficLightState) IL_0565: Label66 IL_0565: br => Label67 IL_056A: Label63 IL_056A: ldloc.s 40 (RoadBaseAI+TrafficLightState) IL_056C: ldc.i4.2 IL_056D: and IL_056E: brtrue => Label68 IL_0573: ldc.i4.3 IL_0574: stloc.s 40 (RoadBaseAI+TrafficLightState) IL_0576: Label68 IL_0576: ldloc.0 IL_0577: ldfld Array16`1 NetManager::m_segments IL_057C: ldfld NetSegment[] Array16`1::m_buffer IL_0581: ldloc.s 39 (System.UInt16) IL_0583: ldelema NetSegment IL_0588: ldarg.0 IL_0589: call UnityEngine.Vector3 NetSegment::GetDirection(System.UInt16 nodeID) IL_058E: stloc.s 43 (UnityEngine.Vector3) IL_0590: ldloc.s 12 (System.Int32) IL_0592: ldc.i4.1 IL_0593: ldloc.s 38 (System.Int32) IL_0595: ldc.i4.s 31 IL_0597: and IL_0598: shl IL_0599: and IL_059A: brfalse => Label69 IL_059F: ldloc.s 10 (System.Int32) IL_05A1: ldloc.s 38 (System.Int32) IL_05A3: beq => Label70 IL_05A8: ldloc.s 6 (System.Int32) IL_05AA: ldc.i4.m1 IL_05AB: beq => Label71 IL_05B0: ldloca.s 43 (UnityEngine.Vector3) IL_05B2: ldfld System.Single UnityEngine.Vector3::x IL_05B7: ldloca.s 33 (UnityEngine.Vector3) IL_05B9: ldfld System.Single UnityEngine.Vector3::x IL_05BE: mul IL_05BF: ldloca.s 43 (UnityEngine.Vector3) IL_05C1: ldfld System.Single UnityEngine.Vector3::z IL_05C6: ldloca.s 33 (UnityEngine.Vector3) IL_05C8: ldfld System.Single UnityEngine.Vector3::z IL_05CD: mul IL_05CE: add IL_05CF: ldc.r4 -0.5 IL_05D4: blt => Label72 IL_05D9: Label71 IL_05D9: ldloc.s 32 (System.Int32) IL_05DB: ldc.i4.m1 IL_05DC: beq => Label73 IL_05E1: ldloca.s 43 (UnityEngine.Vector3) IL_05E3: ldfld System.Single UnityEngine.Vector3::x IL_05E8: ldloca.s 34 (UnityEngine.Vector3) IL_05EA: ldfld System.Single UnityEngine.Vector3::x IL_05EF: mul IL_05F0: ldloca.s 43 (UnityEngine.Vector3) IL_05F2: ldfld System.Single UnityEngine.Vector3::z IL_05F7: ldloca.s 34 (UnityEngine.Vector3) IL_05F9: ldfld System.Single UnityEngine.Vector3::z IL_05FE: mul IL_05FF: add IL_0600: ldc.r4 -0.5 IL_0605: bge.un => Label74 IL_060A: Label72 IL_060A: ldloc.s 41 (RoadBaseAI+TrafficLightState) IL_060C: ldc.i4.2 IL_060D: and IL_060E: brtrue => Label75 IL_0613: ldc.i4.3 IL_0614: stloc.s 41 (RoadBaseAI+TrafficLightState) IL_0616: Label75 IL_0616: br => Label76 IL_061B: Label69 IL_061B: Label70 IL_061B: Label73 IL_061B: Label74 IL_061B: ldloc.s 41 (RoadBaseAI+TrafficLightState) IL_061D: ldc.i4.2 IL_061E: and IL_061F: brfalse => Label77 IL_0624: ldc.i4.1 IL_0625: stloc.s 41 (RoadBaseAI+TrafficLightState) IL_0627: ldloc.s 4 (System.Int32) IL_0629: ldc.i4.1 IL_062A: add IL_062B: dup IL_062C: stloc.s 4 (System.Int32) IL_062E: ldloc.s 15 (System.Int32) IL_0630: blt => Label78 IL_0635: ldc.i4.0 IL_0636: stloc.s 4 (System.Int32) IL_0638: Label67 IL_0638: Label76 IL_0638: Label77 IL_0638: Label78 IL_0638: ldarg.0 IL_0639: ldloc.0 IL_063A: ldfld Array16`1 NetManager::m_segments IL_063F: ldfld NetSegment[] Array16`1::m_buffer IL_0644: ldloc.s 39 (System.UInt16) IL_0646: ldelema NetSegment IL_064B: ldloc.1 IL_064C: ldloc.s 40 (RoadBaseAI+TrafficLightState) IL_064E: ldloc.s 41 (RoadBaseAI+TrafficLightState) IL_0650: ldc.i4.0 IL_0651: ldc.i4.0 IL_0652: call static System.Void RoadBaseAI::SetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData, System.UInt32 frame, TrafficLightState vehicleLightState, TrafficLightState pedestrianLightState, System.Boolean vehicles, System.Boolean pedestrians) IL_0657: Label61 IL_0657: ldloc.s 38 (System.Int32) IL_0659: ldc.i4.1 IL_065A: add IL_065B: stloc.s 38 (System.Int32) IL_065D: Label60 IL_065D: ldloc.s 38 (System.Int32) IL_065F: ldc.i4.8 IL_0660: blt => Label79 IL_0665: ldarg.1 IL_0666: call FlagsLong NetNode::get_flags() IL_066B: ldc.i8 4294967296 IL_0674: and IL_0675: ldc.i4.0 IL_0676: conv.i8 IL_0677: beq => Label80 IL_067C: ldarg.0 IL_067D: ldarg.1 IL_067E: ldloc.s 37 (System.Boolean[]) IL_0680: call static System.Void PedestrianZoneRoadAI::BollardsSimulationStep(System.UInt16 nodeID, NetNode& data, System.Boolean[] vehicleExist) IL_0685: Label80 IL_0685: ldarg.1 IL_0686: ldloc.s 4 (System.Int32) IL_0688: ldc.i4.5 IL_0689: shl IL_068A: ldloc.3 IL_068B: ldc.i4.2 IL_068C: shl IL_068D: or IL_068E: ldloc.2 IL_068F: or IL_0690: conv.u1 IL_0691: stfld System.Byte NetNode::m_maxWaitTime IL_0696: // end original IL_0696: Label0 IL_0696: ret DONE ### Patch: virtual UnityEngine.Color BuildingAI::GetColor(System.UInt16 buildingID, Building& data, InfoMode infoMode) ### Replacement: static UnityEngine.Color BuildingAI::BuildingAI.GetColor_Patch1(BuildingAI this, System.UInt16 buildingID, Building& data, InfoMode infoMode) IL_0000: Local var 0: ColossalFramework.Math.Randomizer IL_0000: Local var 1: System.Int32 IL_0000: Local var 2: UnityEngine.Color IL_0000: Local var 3: System.Boolean IL_0000: ldloca 2 (UnityEngine.Color) IL_0004: initobj UnityEngine.Color IL_000A: ldc.i4 0 IL_000F: stloc 3 (System.Boolean) IL_0013: ldc.i4.1 IL_0014: stloc 3 (System.Boolean) IL_0018: ldloc 3 (System.Boolean) IL_001C: brfalse => Label1 IL_0021: ldloca 2 (UnityEngine.Color) IL_0025: ldarg 1 IL_0029: ldarg 2 IL_002D: ldarg 3 IL_0031: call static System.Boolean TrafficManager.Patch._BuildingAI.GetColorPatch::Prefix(UnityEngine.Color& __result, System.UInt16 buildingID, Building& data, InfoMode infoMode) IL_0036: stloc 3 (System.Boolean) IL_003A: Label1 IL_003A: nop IL_003B: ldloc 3 (System.Boolean) IL_003F: brfalse => Label0 IL_0044: // start original IL_0044: ldarg.3 IL_0045: brfalse => Label2 IL_004A: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_004F: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_0054: ldfld UnityEngine.Color InfoProperties::m_neutralColor IL_0059: br => Label9 IL_005E: Label2 IL_005E: ldarg.0 IL_005F: ldfld BuildingInfo BuildingAI::m_info IL_0064: ldfld System.Boolean BuildingInfo::m_useColorVariations IL_0069: brfalse => Label3 IL_006E: ldloca.s 0 (ColossalFramework.Math.Randomizer) IL_0070: ldarg.1 IL_0071: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0076: ldloca.s 0 (ColossalFramework.Math.Randomizer) IL_0078: ldc.i4.4 IL_0079: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_007E: stloc.1 IL_007F: ldloc.1 IL_0080: switch => Labels4,5,6,7 IL_0095: br => Label8 IL_009A: Label4 IL_009A: ldarg.0 IL_009B: ldfld BuildingInfo BuildingAI::m_info IL_00A0: ldfld UnityEngine.Color BuildingInfo::m_color0 IL_00A5: br => Label10 IL_00AA: Label5 IL_00AA: ldarg.0 IL_00AB: ldfld BuildingInfo BuildingAI::m_info IL_00B0: ldfld UnityEngine.Color BuildingInfo::m_color1 IL_00B5: br => Label11 IL_00BA: Label6 IL_00BA: ldarg.0 IL_00BB: ldfld BuildingInfo BuildingAI::m_info IL_00C0: ldfld UnityEngine.Color BuildingInfo::m_color2 IL_00C5: br => Label12 IL_00CA: Label7 IL_00CA: ldarg.0 IL_00CB: ldfld BuildingInfo BuildingAI::m_info IL_00D0: ldfld UnityEngine.Color BuildingInfo::m_color3 IL_00D5: br => Label13 IL_00DA: Label8 IL_00DA: ldarg.0 IL_00DB: ldfld BuildingInfo BuildingAI::m_info IL_00E0: ldfld UnityEngine.Color BuildingInfo::m_color0 IL_00E5: br => Label14 IL_00EA: Label3 IL_00EA: ldarg.0 IL_00EB: ldfld BuildingInfo BuildingAI::m_info IL_00F0: ldfld UnityEngine.Color BuildingInfo::m_color0 IL_00F5: // end original IL_00F5: Label9 IL_00F5: Label10 IL_00F5: Label11 IL_00F5: Label12 IL_00F5: Label13 IL_00F5: Label14 IL_00F5: stloc 2 (UnityEngine.Color) IL_00F9: Label0 IL_00F9: ldloc 2 (UnityEngine.Color) IL_00FD: ret DONE ### Patch: virtual System.Void VehicleAI::InvalidPath(System.UInt16 vehicleID, Vehicle& vehicleData, System.UInt16 leaderID, Vehicle& leaderData) ### Replacement: static System.Void VehicleAI::VehicleAI.InvalidPath_Patch1(VehicleAI this, System.UInt16 vehicleID, Vehicle& vehicleData, System.UInt16 leaderID, Vehicle& leaderData) IL_0000: Local var 0: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 0 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 0 (System.Boolean) IL_000E: ldloc 0 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 2 IL_001B: call static System.Void TrafficManager.Patch._VehicleAI.InvalidPathPatch::Prefix(Vehicle& vehicleData) IL_0020: Label1 IL_0020: nop IL_0021: ldloc 0 (System.Boolean) IL_0025: brfalse => Label0 IL_002A: // start original IL_002A: ldarg.1 IL_002B: brfalse => Label2 IL_0030: ldarg.2 IL_0031: ldfld System.UInt32 Vehicle::m_path IL_0036: brfalse => Label3 IL_003B: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_0040: ldarg.2 IL_0041: ldfld System.UInt32 Vehicle::m_path IL_0046: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit) IL_004B: ldarg.2 IL_004C: ldc.i4.0 IL_004D: stfld System.UInt32 Vehicle::m_path IL_0052: Label2 IL_0052: Label3 IL_0052: ldarg.3 IL_0053: brfalse => Label4 IL_0058: ldarg.s 4 IL_005A: ldfld System.UInt32 Vehicle::m_path IL_005F: brfalse => Label5 IL_0064: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_0069: ldarg.s 4 IL_006B: ldfld System.UInt32 Vehicle::m_path IL_0070: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit) IL_0075: ldarg.s 4 IL_0077: ldc.i4.0 IL_0078: stfld System.UInt32 Vehicle::m_path IL_007D: Label5 IL_007D: ldarg.0 IL_007E: ldarg.3 IL_007F: ldarg.s 4 IL_0081: callvirt virtual System.Boolean VehicleAI::StartPathFind(System.UInt16 vehicleID, Vehicle& vehicleData) IL_0086: brtrue => Label6 IL_008B: ldarg.s 4 IL_008D: ldarg.3 IL_008E: call System.Void Vehicle::Unspawn(System.UInt16 vehicleID) IL_0093: // end original IL_0093: Label4 IL_0093: Label6 IL_0093: Label0 IL_0093: ret DONE ### Patch: virtual System.Void VehicleAI::CalculateSegmentPosition(System.UInt16 vehicleID, Vehicle& vehicleData, Position position, System.UInt32 laneID, System.Byte offset, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) ### Replacement: static System.Void VehicleAI::VehicleAI.CalculateSegmentPosition_Patch0(VehicleAI this, System.UInt16 vehicleID, Vehicle& vehicleData, Position position, System.UInt32 laneID, System.Byte offset, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) IL_0000: Local var 0: NetManager IL_0000: Local var 1: NetInfo IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: ldarg.2 IL_0003: ldarg.3 IL_0004: ldarg.s 4 IL_0006: ldarg.s 5 IL_0008: ldarg.s 6 IL_000A: ldarg.s 7 IL_000C: ldarg.s 8 IL_000E: call static System.Void TrafficManager.Patch._VehicleAI.VehicleAICommons::CustomCalculateSegmentPosition(VehicleAI instance, System.UInt16 vehicleId, Vehicle& vehicleData, Position position, System.UInt32 laneId, System.Byte offset, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) IL_0013: // end original IL_0013: ret DONE ### Patch: virtual System.Void VehicleAI::CalculateSegmentPosition(System.UInt16 vehicleID, Vehicle& vehicleData, Position nextPosition, Position position, System.UInt32 laneID, System.Byte offset, Position prevPos, System.UInt32 prevLaneID, System.Byte prevOffset, System.Int32 index, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) ### Replacement: static System.Void VehicleAI::VehicleAI.CalculateSegmentPosition_Patch0(VehicleAI this, System.UInt16 vehicleID, Vehicle& vehicleData, Position nextPosition, Position position, System.UInt32 laneID, System.Byte offset, Position prevPos, System.UInt32 prevLaneID, System.Byte prevOffset, System.Int32 index, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) IL_0000: Local var 0: NetManager IL_0000: Local var 1: NetInfo IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: ldarg.2 IL_0003: ldarg.s 4 IL_0005: ldarg.s 5 IL_0007: ldarg.s 6 IL_0009: ldarg.s 11 IL_000B: ldarg.s 12 IL_000D: ldarg.s 13 IL_000F: call static System.Void TrafficManager.Patch._VehicleAI.VehicleAICommons::CustomCalculateSegmentPosition(VehicleAI instance, System.UInt16 vehicleId, Vehicle& vehicleData, Position position, System.UInt32 laneId, System.Byte offset, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) IL_0014: // end original IL_0014: ret DONE ### Patch: System.Void VehicleAI::UpdatePathTargetPositions(System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 refPos, System.Int32& index, System.Int32 max, System.Single minSqrDistanceA, System.Single minSqrDistanceB) ### Replacement: static System.Void VehicleAI::VehicleAI.UpdatePathTargetPositions_Patch1(VehicleAI this, System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 refPos, System.Int32& index, System.Int32 max, System.Single minSqrDistanceA, System.Single minSqrDistanceB) IL_0000: Local var 0: PathManager IL_0000: Local var 1: NetManager IL_0000: Local var 2: UnityEngine.Vector4 IL_0000: Local var 3: System.Single IL_0000: Local var 4: System.UInt32 IL_0000: Local var 5: System.Byte IL_0000: Local var 6: System.Byte IL_0000: Local var 7: PathUnit/Position IL_0000: Local var 8: NetInfo IL_0000: Local var 9: System.UInt32 IL_0000: Local var 10: NetInfo/Lane IL_0000: Local var 11: System.Boolean IL_0000: Local var 12: System.Single IL_0000: Local var 13: System.Int32 IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: System.Single IL_0000: Local var 17: System.Single IL_0000: Local var 18: UnityEngine.Vector3 IL_0000: Local var 19: System.Int32 IL_0000: Local var 20: System.Int32 IL_0000: Local var 21: System.UInt32 IL_0000: Local var 22: PathUnit/Position IL_0000: Local var 23: System.Int32 IL_0000: Local var 24: NetInfo IL_0000: Local var 25: System.UInt32 IL_0000: Local var 26: NetInfo/Lane IL_0000: Local var 27: System.UInt16 IL_0000: Local var 28: System.UInt16 IL_0000: Local var 29: System.UInt16 IL_0000: Local var 30: System.UInt16 IL_0000: Local var 31: System.Byte IL_0000: Local var 32: System.Byte IL_0000: Local var 33: System.Single IL_0000: Local var 34: UnityEngine.Vector3 IL_0000: Local var 35: System.Byte IL_0000: Local var 36: ColossalFramework.Math.Bezier3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: System.Single IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Boolean IL_0000: Local var 42: PathUnit/Position IL_0000: Local var 43: System.Single IL_0000: Local var 44: UnityEngine.Vector3 IL_0000: Local var 45: NetInfo IL_0000: Local var 46: System.Single IL_0000: Local var 47: System.Single IL_0000: Local var 48: System.Single IL_0000: Local var 49: System.UInt16 IL_0000: Local var 50: System.Single IL_0000: Local var 51: System.Single IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Byte IL_0000: Local var 54: System.Byte IL_0000: Local var 55: System.Boolean IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: UnityEngine.Vector3 IL_0000: Local var 59: System.UInt16 IL_0000: Local var 60: BuildingManager IL_0000: Local var 61: BuildingInfo IL_0000: Local var 62: InstanceID IL_0000: Local var 63: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 63 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 63 (System.Boolean) IL_000E: ldloc 63 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg.0 IL_0018: ldarg 1 IL_001C: ldarg 2 IL_0020: ldarg 3 IL_0024: ldarg 4 IL_0028: ldarg 5 IL_002C: ldarg 6 IL_0030: ldarg 7 IL_0034: call static System.Boolean TrafficManager.Patch._VehicleAI.UpdatePathTargetPositionsPatch::Prefix(VehicleAI __instance, System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 refPos, System.Int32& index, System.Int32 max, System.Single minSqrDistanceA, System.Single minSqrDistanceB) IL_0039: stloc 63 (System.Boolean) IL_003D: Label1 IL_003D: nop IL_003E: ldloc 63 (System.Boolean) IL_0042: brfalse => Label0 IL_0047: // start original IL_0047: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_004C: stloc.0 IL_004D: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0052: stloc.1 IL_0053: ldarg.2 IL_0054: ldfld UnityEngine.Vector4 Vehicle::m_targetPos0 IL_0059: stloc.2 IL_005A: ldloca.s 2 (UnityEngine.Vector4) IL_005C: ldc.r4 1000 IL_0061: stfld System.Single UnityEngine.Vector4::w IL_0066: ldarg.s 6 IL_0068: stloc.3 IL_0069: ldarg.2 IL_006A: ldfld System.UInt32 Vehicle::m_path IL_006F: stloc.s 4 (System.UInt32) IL_0071: ldarg.2 IL_0072: ldfld System.Byte Vehicle::m_pathPositionIndex IL_0077: stloc.s 5 (System.Byte) IL_0079: ldarg.2 IL_007A: ldfld System.Byte Vehicle::m_lastPathOffset IL_007F: stloc.s 6 (System.Byte) IL_0081: ldloc.s 5 (System.Byte) IL_0083: ldc.i4 255 IL_0088: bne.un => Label2 IL_008D: ldc.i4.0 IL_008E: stloc.s 5 (System.Byte) IL_0090: ldarg.s 4 IL_0092: ldind.i4 IL_0093: ldc.i4.0 IL_0094: bgt => Label3 IL_0099: ldarg.2 IL_009A: ldc.i4.0 IL_009B: stfld System.Byte Vehicle::m_pathPositionIndex IL_00A0: Label3 IL_00A0: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_00A5: ldfld Array32`1 PathManager::m_pathUnits IL_00AA: ldfld PathUnit[] Array32`1::m_buffer IL_00AF: ldloc.s 4 (System.UInt32) IL_00B1: conv.u IL_00B2: ldelema PathUnit IL_00B7: ldloc.s 5 (System.Byte) IL_00B9: ldc.i4.1 IL_00BA: shr IL_00BB: ldloc.2 IL_00BC: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_00C1: ldloca.s 6 (System.Byte) IL_00C3: call System.Boolean PathUnit::CalculatePathPositionOffset(System.Int32 index, UnityEngine.Vector3 refPos, System.Byte& offset) IL_00C8: brtrue => Label4 IL_00CD: ldarg.0 IL_00CE: ldarg.1 IL_00CF: ldarg.2 IL_00D0: ldarg.1 IL_00D1: ldarg.2 IL_00D2: callvirt virtual System.Void VehicleAI::InvalidPath(System.UInt16 vehicleID, Vehicle& vehicleData, System.UInt16 leaderID, Vehicle& leaderData) IL_00D7: br => Label121 IL_00DC: Label2 IL_00DC: Label4 IL_00DC: ldloc.0 IL_00DD: ldfld Array32`1 PathManager::m_pathUnits IL_00E2: ldfld PathUnit[] Array32`1::m_buffer IL_00E7: ldloc.s 4 (System.UInt32) IL_00E9: conv.u IL_00EA: ldelema PathUnit IL_00EF: ldloc.s 5 (System.Byte) IL_00F1: ldc.i4.1 IL_00F2: shr IL_00F3: ldloca.s 7 (PathUnit+Position) IL_00F5: call System.Boolean PathUnit::GetPosition(System.Int32 index, Position& position) IL_00FA: brtrue => Label5 IL_00FF: ldarg.0 IL_0100: ldarg.1 IL_0101: ldarg.2 IL_0102: ldarg.1 IL_0103: ldarg.2 IL_0104: callvirt virtual System.Void VehicleAI::InvalidPath(System.UInt16 vehicleID, Vehicle& vehicleData, System.UInt16 leaderID, Vehicle& leaderData) IL_0109: br => Label122 IL_010E: Label5 IL_010E: ldloc.1 IL_010F: ldfld Array16`1 NetManager::m_segments IL_0114: ldfld NetSegment[] Array16`1::m_buffer IL_0119: ldloca.s 7 (PathUnit+Position) IL_011B: ldfld System.UInt16 Position::m_segment IL_0120: ldelema NetSegment IL_0125: call NetInfo NetSegment::get_Info() IL_012A: stloc.s 8 (NetInfo) IL_012C: ldloc.s 8 (NetInfo) IL_012E: ldfld Lane[] NetInfo::m_lanes IL_0133: ldlen IL_0134: conv.i4 IL_0135: ldloca.s 7 (PathUnit+Position) IL_0137: ldfld System.Byte Position::m_lane IL_013C: bgt => Label6 IL_0141: ldarg.0 IL_0142: ldarg.1 IL_0143: ldarg.2 IL_0144: ldarg.1 IL_0145: ldarg.2 IL_0146: callvirt virtual System.Void VehicleAI::InvalidPath(System.UInt16 vehicleID, Vehicle& vehicleData, System.UInt16 leaderID, Vehicle& leaderData) IL_014B: br => Label123 IL_0150: Label6 IL_0150: ldloc.s 7 (PathUnit+Position) IL_0152: call static System.UInt32 PathManager::GetLaneID(Position pathPos) IL_0157: stloc.s 9 (System.UInt32) IL_0159: ldloc.s 8 (NetInfo) IL_015B: ldfld Lane[] NetInfo::m_lanes IL_0160: ldloca.s 7 (PathUnit+Position) IL_0162: ldfld System.Byte Position::m_lane IL_0167: ldelem.ref IL_0168: stloc.s 10 (NetInfo+Lane) IL_016A: Label120 IL_016A: ldloc.s 5 (System.Byte) IL_016C: ldc.i4.1 IL_016D: and IL_016E: brtrue => Label7 IL_0173: ldloc.s 10 (NetInfo+Lane) IL_0175: ldfld LaneType Lane::m_laneType IL_017A: ldc.i4.s 16 IL_017C: beq => Label8 IL_0181: ldc.i4.1 IL_0182: stloc.s 11 (System.Boolean) IL_0184: br => Label9 IL_0189: Label20 IL_0189: ldloc.s 11 (System.Boolean) IL_018B: brfalse => Label10 IL_0190: ldc.i4.0 IL_0191: stloc.s 11 (System.Boolean) IL_0193: br => Label11 IL_0198: Label10 IL_0198: ldloc.3 IL_0199: call static System.Single UnityEngine.Mathf::Sqrt(System.Single f) IL_019E: ldloc.2 IL_019F: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_01A4: ldarg.3 IL_01A5: call static System.Single UnityEngine.Vector3::Distance(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_01AA: sub IL_01AB: stloc.s 12 (System.Single) IL_01AD: ldloc.s 12 (System.Single) IL_01AF: ldc.r4 0 IL_01B4: bge.un => Label12 IL_01B9: ldc.i4.4 IL_01BA: stloc.s 13 (System.Int32) IL_01BC: br => Label13 IL_01C1: Label12 IL_01C1: ldc.i4.4 IL_01C2: ldc.i4.0 IL_01C3: ldloc.s 12 (System.Single) IL_01C5: ldc.r4 256 IL_01CA: mul IL_01CB: ldloc.1 IL_01CC: ldfld Array32`1 NetManager::m_lanes IL_01D1: ldfld NetLane[] Array32`1::m_buffer IL_01D6: ldloc.s 9 (System.UInt32) IL_01D8: conv.u IL_01D9: ldelema NetLane IL_01DE: ldfld System.Single NetLane::m_length IL_01E3: ldc.r4 1 IL_01E8: add IL_01E9: div IL_01EA: call static System.Int32 UnityEngine.Mathf::CeilToInt(System.Single f) IL_01EF: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_01F4: add IL_01F5: stloc.s 13 (System.Int32) IL_01F7: Label13 IL_01F7: ldloc.s 6 (System.Byte) IL_01F9: ldloca.s 7 (PathUnit+Position) IL_01FB: ldfld System.Byte Position::m_offset IL_0200: ble => Label14 IL_0205: ldloc.s 6 (System.Byte) IL_0207: ldloc.s 13 (System.Int32) IL_0209: sub IL_020A: ldloca.s 7 (PathUnit+Position) IL_020C: ldfld System.Byte Position::m_offset IL_0211: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0216: conv.u1 IL_0217: stloc.s 6 (System.Byte) IL_0219: br => Label15 IL_021E: Label14 IL_021E: ldloc.s 6 (System.Byte) IL_0220: ldloca.s 7 (PathUnit+Position) IL_0222: ldfld System.Byte Position::m_offset IL_0227: bge => Label16 IL_022C: ldloc.s 6 (System.Byte) IL_022E: ldloc.s 13 (System.Int32) IL_0230: add IL_0231: ldloca.s 7 (PathUnit+Position) IL_0233: ldfld System.Byte Position::m_offset IL_0238: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_023D: conv.u1 IL_023E: stloc.s 6 (System.Byte) IL_0240: Label11 IL_0240: Label15 IL_0240: Label16 IL_0240: ldarg.0 IL_0241: ldarg.1 IL_0242: ldarg.2 IL_0243: ldloc.s 7 (PathUnit+Position) IL_0245: ldloc.s 9 (System.UInt32) IL_0247: ldloc.s 6 (System.Byte) IL_0249: ldloca.s 14 (UnityEngine.Vector3) IL_024B: ldloca.s 15 (UnityEngine.Vector3) IL_024D: ldloca.s 16 (System.Single) IL_024F: callvirt virtual System.Void VehicleAI::CalculateSegmentPosition(System.UInt16 vehicleID, Vehicle& vehicleData, Position position, System.UInt32 laneID, System.Byte offset, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) IL_0254: ldloca.s 2 (UnityEngine.Vector4) IL_0256: ldloca.s 14 (UnityEngine.Vector3) IL_0258: ldfld System.Single UnityEngine.Vector3::x IL_025D: ldloca.s 14 (UnityEngine.Vector3) IL_025F: ldfld System.Single UnityEngine.Vector3::y IL_0264: ldloca.s 14 (UnityEngine.Vector3) IL_0266: ldfld System.Single UnityEngine.Vector3::z IL_026B: ldloca.s 2 (UnityEngine.Vector4) IL_026D: ldfld System.Single UnityEngine.Vector4::w IL_0272: ldloc.s 16 (System.Single) IL_0274: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0279: call System.Void UnityEngine.Vector4::Set(System.Single new_x, System.Single new_y, System.Single new_z, System.Single new_w) IL_027E: ldloc.s 14 (UnityEngine.Vector3) IL_0280: ldarg.3 IL_0281: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0286: stloc.s 18 (UnityEngine.Vector3) IL_0288: ldloca.s 18 (UnityEngine.Vector3) IL_028A: call System.Single UnityEngine.Vector3::get_sqrMagnitude() IL_028F: stloc.s 17 (System.Single) IL_0291: ldloc.s 17 (System.Single) IL_0293: ldloc.3 IL_0294: blt.un => Label17 IL_0299: ldarg.s 4 IL_029B: ldind.i4 IL_029C: ldc.i4.0 IL_029D: bgt => Label18 IL_02A2: ldarg.2 IL_02A3: ldloc.s 6 (System.Byte) IL_02A5: stfld System.Byte Vehicle::m_lastPathOffset IL_02AA: Label18 IL_02AA: ldarg.2 IL_02AB: ldarg.s 4 IL_02AD: ldarg.s 4 IL_02AF: ldind.i4 IL_02B0: dup IL_02B1: stloc.s 19 (System.Int32) IL_02B3: ldc.i4.1 IL_02B4: add IL_02B5: stind.i4 IL_02B6: ldloc.s 19 (System.Int32) IL_02B8: ldloc.2 IL_02B9: call System.Void Vehicle::SetTargetPos(System.Int32 index, UnityEngine.Vector4 pos) IL_02BE: ldarg.s 7 IL_02C0: stloc.3 IL_02C1: ldloc.2 IL_02C2: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_02C7: starg.s 3 IL_02C9: ldloca.s 2 (UnityEngine.Vector4) IL_02CB: ldc.r4 1000 IL_02D0: stfld System.Single UnityEngine.Vector4::w IL_02D5: ldarg.s 4 IL_02D7: ldind.i4 IL_02D8: ldarg.s 5 IL_02DA: bne.un => Label19 IL_02DF: br => Label124 IL_02E4: Label9 IL_02E4: Label17 IL_02E4: Label19 IL_02E4: ldloc.s 6 (System.Byte) IL_02E6: ldloca.s 7 (PathUnit+Position) IL_02E8: ldfld System.Byte Position::m_offset IL_02ED: bne.un => Label20 IL_02F2: Label8 IL_02F2: ldloc.s 5 (System.Byte) IL_02F4: ldc.i4.1 IL_02F5: add IL_02F6: conv.u1 IL_02F7: stloc.s 5 (System.Byte) IL_02F9: ldc.i4.0 IL_02FA: stloc.s 6 (System.Byte) IL_02FC: ldarg.s 4 IL_02FE: ldind.i4 IL_02FF: ldc.i4.0 IL_0300: bgt => Label21 IL_0305: ldarg.2 IL_0306: ldloc.s 5 (System.Byte) IL_0308: stfld System.Byte Vehicle::m_pathPositionIndex IL_030D: ldarg.2 IL_030E: ldloc.s 6 (System.Byte) IL_0310: stfld System.Byte Vehicle::m_lastPathOffset IL_0315: Label7 IL_0315: Label21 IL_0315: ldarg.2 IL_0316: ldfld Flags2 Vehicle::m_flags2 IL_031B: ldc.i4.8 IL_031C: and IL_031D: brfalse => Label22 IL_0322: ldarg.s 4 IL_0324: ldind.i4 IL_0325: ldc.i4.0 IL_0326: bgt => Label23 IL_032B: ldloca.s 2 (UnityEngine.Vector4) IL_032D: ldc.r4 0 IL_0332: stfld System.Single UnityEngine.Vector4::w IL_0337: ldarg.2 IL_0338: call UnityEngine.Vector3 Vehicle::GetLastFrameVelocity() IL_033D: call static System.Single ColossalFramework.Math.VectorUtils::LengthSqrXZ(UnityEngine.Vector3 v) IL_0342: ldc.r4 0.01 IL_0347: bge.un => Label24 IL_034C: ldarg.2 IL_034D: dup IL_034E: ldfld Flags2 Vehicle::m_flags2 IL_0353: ldc.i4.s -9 IL_0355: and IL_0356: stfld Flags2 Vehicle::m_flags2 IL_035B: Label24 IL_035B: br => Label25 IL_0360: Label23 IL_0360: ldloca.s 2 (UnityEngine.Vector4) IL_0362: ldc.r4 1 IL_0367: stfld System.Single UnityEngine.Vector4::w IL_036C: Label25 IL_036C: br => Label26 IL_0371: Label27 IL_0371: ldarg.2 IL_0372: ldarg.s 4 IL_0374: ldarg.s 4 IL_0376: ldind.i4 IL_0377: dup IL_0378: stloc.s 19 (System.Int32) IL_037A: ldc.i4.1 IL_037B: add IL_037C: stind.i4 IL_037D: ldloc.s 19 (System.Int32) IL_037F: ldloc.2 IL_0380: call System.Void Vehicle::SetTargetPos(System.Int32 index, UnityEngine.Vector4 pos) IL_0385: Label26 IL_0385: ldarg.s 4 IL_0387: ldind.i4 IL_0388: ldarg.s 5 IL_038A: blt => Label27 IL_038F: br => Label125 IL_0394: Label22 IL_0394: ldloc.s 5 (System.Byte) IL_0396: ldc.i4.1 IL_0397: shr IL_0398: ldc.i4.1 IL_0399: add IL_039A: stloc.s 20 (System.Int32) IL_039C: ldloc.s 4 (System.UInt32) IL_039E: stloc.s 21 (System.UInt32) IL_03A0: ldloc.s 20 (System.Int32) IL_03A2: ldloc.0 IL_03A3: ldfld Array32`1 PathManager::m_pathUnits IL_03A8: ldfld PathUnit[] Array32`1::m_buffer IL_03AD: ldloc.s 4 (System.UInt32) IL_03AF: conv.u IL_03B0: ldelema PathUnit IL_03B5: ldfld System.Byte PathUnit::m_positionCount IL_03BA: blt => Label28 IL_03BF: ldc.i4.0 IL_03C0: stloc.s 20 (System.Int32) IL_03C2: ldloc.0 IL_03C3: ldfld Array32`1 PathManager::m_pathUnits IL_03C8: ldfld PathUnit[] Array32`1::m_buffer IL_03CD: ldloc.s 4 (System.UInt32) IL_03CF: conv.u IL_03D0: ldelema PathUnit IL_03D5: ldfld System.UInt32 PathUnit::m_nextPathUnit IL_03DA: stloc.s 21 (System.UInt32) IL_03DC: ldloc.s 21 (System.UInt32) IL_03DE: brtrue => Label29 IL_03E3: ldarg.s 4 IL_03E5: ldind.i4 IL_03E6: ldc.i4.0 IL_03E7: bgt => Label30 IL_03EC: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_03F1: ldarg.2 IL_03F2: ldfld System.UInt32 Vehicle::m_path IL_03F7: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit) IL_03FC: ldarg.2 IL_03FD: ldc.i4.0 IL_03FE: stfld System.UInt32 Vehicle::m_path IL_0403: Label30 IL_0403: ldloca.s 2 (UnityEngine.Vector4) IL_0405: ldc.r4 1 IL_040A: stfld System.Single UnityEngine.Vector4::w IL_040F: ldarg.2 IL_0410: ldarg.s 4 IL_0412: ldarg.s 4 IL_0414: ldind.i4 IL_0415: dup IL_0416: stloc.s 19 (System.Int32) IL_0418: ldc.i4.1 IL_0419: add IL_041A: stind.i4 IL_041B: ldloc.s 19 (System.Int32) IL_041D: ldloc.2 IL_041E: call System.Void Vehicle::SetTargetPos(System.Int32 index, UnityEngine.Vector4 pos) IL_0423: br => Label126 IL_0428: Label28 IL_0428: Label29 IL_0428: ldloc.0 IL_0429: ldfld Array32`1 PathManager::m_pathUnits IL_042E: ldfld PathUnit[] Array32`1::m_buffer IL_0433: ldloc.s 21 (System.UInt32) IL_0435: conv.u IL_0436: ldelema PathUnit IL_043B: ldloc.s 20 (System.Int32) IL_043D: ldloca.s 22 (PathUnit+Position) IL_043F: call System.Boolean PathUnit::GetPosition(System.Int32 index, Position& position) IL_0444: brtrue => Label31 IL_0449: ldarg.0 IL_044A: ldarg.1 IL_044B: ldarg.2 IL_044C: ldarg.1 IL_044D: ldarg.2 IL_044E: callvirt virtual System.Void VehicleAI::InvalidPath(System.UInt16 vehicleID, Vehicle& vehicleData, System.UInt16 leaderID, Vehicle& leaderData) IL_0453: br => Label127 IL_0458: Label31 IL_0458: ldarg.2 IL_0459: ldfld Flags Vehicle::m_flags IL_045E: ldc.i4 128 IL_0463: and IL_0464: brfalse => Label32 IL_0469: ldarg.0 IL_046A: ldfld VehicleInfo VehicleAI::m_info IL_046F: ldfld VehicleType VehicleInfo::m_vehicleType IL_0474: ldc.i4.1 IL_0475: bne.un => Label33 IL_047A: ldarg.1 IL_047B: ldarg.2 IL_047C: ldloc.s 22 (PathUnit+Position) IL_047E: call static System.Int32 VehicleAI::FindBestLane(System.UInt16 vehicleID, Vehicle& vehicleData, Position position) IL_0483: stloc.s 23 (System.Int32) IL_0485: ldloc.s 23 (System.Int32) IL_0487: ldloca.s 22 (PathUnit+Position) IL_0489: ldfld System.Byte Position::m_lane IL_048E: beq => Label34 IL_0493: ldloca.s 22 (PathUnit+Position) IL_0495: ldloc.s 23 (System.Int32) IL_0497: conv.u1 IL_0498: stfld System.Byte Position::m_lane IL_049D: ldloc.0 IL_049E: ldfld Array32`1 PathManager::m_pathUnits IL_04A3: ldfld PathUnit[] Array32`1::m_buffer IL_04A8: ldloc.s 21 (System.UInt32) IL_04AA: conv.u IL_04AB: ldelema PathUnit IL_04B0: ldloc.s 20 (System.Int32) IL_04B2: ldloc.s 22 (PathUnit+Position) IL_04B4: call System.Void PathUnit::SetPosition(System.Int32 index, Position position) IL_04B9: Label32 IL_04B9: Label33 IL_04B9: Label34 IL_04B9: ldloc.1 IL_04BA: ldfld Array16`1 NetManager::m_segments IL_04BF: ldfld NetSegment[] Array16`1::m_buffer IL_04C4: ldloca.s 22 (PathUnit+Position) IL_04C6: ldfld System.UInt16 Position::m_segment IL_04CB: ldelema NetSegment IL_04D0: call NetInfo NetSegment::get_Info() IL_04D5: stloc.s 24 (NetInfo) IL_04D7: ldloc.s 24 (NetInfo) IL_04D9: ldfld Lane[] NetInfo::m_lanes IL_04DE: ldlen IL_04DF: conv.i4 IL_04E0: ldloca.s 22 (PathUnit+Position) IL_04E2: ldfld System.Byte Position::m_lane IL_04E7: bgt => Label35 IL_04EC: ldarg.0 IL_04ED: ldarg.1 IL_04EE: ldarg.2 IL_04EF: ldarg.1 IL_04F0: ldarg.2 IL_04F1: callvirt virtual System.Void VehicleAI::InvalidPath(System.UInt16 vehicleID, Vehicle& vehicleData, System.UInt16 leaderID, Vehicle& leaderData) IL_04F6: br => Label128 IL_04FB: Label35 IL_04FB: ldloc.s 22 (PathUnit+Position) IL_04FD: call static System.UInt32 PathManager::GetLaneID(Position pathPos) IL_0502: stloc.s 25 (System.UInt32) IL_0504: ldloc.s 24 (NetInfo) IL_0506: ldfld Lane[] NetInfo::m_lanes IL_050B: ldloca.s 22 (PathUnit+Position) IL_050D: ldfld System.Byte Position::m_lane IL_0512: ldelem.ref IL_0513: stloc.s 26 (NetInfo+Lane) IL_0515: ldloc.1 IL_0516: ldfld Array16`1 NetManager::m_segments IL_051B: ldfld NetSegment[] Array16`1::m_buffer IL_0520: ldloca.s 7 (PathUnit+Position) IL_0522: ldfld System.UInt16 Position::m_segment IL_0527: ldelema NetSegment IL_052C: ldfld System.UInt16 NetSegment::m_startNode IL_0531: stloc.s 27 (System.UInt16) IL_0533: ldloc.1 IL_0534: ldfld Array16`1 NetManager::m_segments IL_0539: ldfld NetSegment[] Array16`1::m_buffer IL_053E: ldloca.s 7 (PathUnit+Position) IL_0540: ldfld System.UInt16 Position::m_segment IL_0545: ldelema NetSegment IL_054A: ldfld System.UInt16 NetSegment::m_endNode IL_054F: stloc.s 28 (System.UInt16) IL_0551: ldloc.1 IL_0552: ldfld Array16`1 NetManager::m_segments IL_0557: ldfld NetSegment[] Array16`1::m_buffer IL_055C: ldloca.s 22 (PathUnit+Position) IL_055E: ldfld System.UInt16 Position::m_segment IL_0563: ldelema NetSegment IL_0568: ldfld System.UInt16 NetSegment::m_startNode IL_056D: stloc.s 29 (System.UInt16) IL_056F: ldloc.1 IL_0570: ldfld Array16`1 NetManager::m_segments IL_0575: ldfld NetSegment[] Array16`1::m_buffer IL_057A: ldloca.s 22 (PathUnit+Position) IL_057C: ldfld System.UInt16 Position::m_segment IL_0581: ldelema NetSegment IL_0586: ldfld System.UInt16 NetSegment::m_endNode IL_058B: stloc.s 30 (System.UInt16) IL_058D: ldloc.s 29 (System.UInt16) IL_058F: ldloc.s 27 (System.UInt16) IL_0591: beq => Label36 IL_0596: ldloc.s 29 (System.UInt16) IL_0598: ldloc.s 28 (System.UInt16) IL_059A: beq => Label37 IL_059F: ldloc.s 30 (System.UInt16) IL_05A1: ldloc.s 27 (System.UInt16) IL_05A3: beq => Label38 IL_05A8: ldloc.s 30 (System.UInt16) IL_05AA: ldloc.s 28 (System.UInt16) IL_05AC: beq => Label39 IL_05B1: ldloc.1 IL_05B2: ldfld Array16`1 NetManager::m_nodes IL_05B7: ldfld NetNode[] Array16`1::m_buffer IL_05BC: ldloc.s 27 (System.UInt16) IL_05BE: ldelema NetNode IL_05C3: ldfld Flags NetNode::m_flags IL_05C8: ldloc.1 IL_05C9: ldfld Array16`1 NetManager::m_nodes IL_05CE: ldfld NetNode[] Array16`1::m_buffer IL_05D3: ldloc.s 28 (System.UInt16) IL_05D5: ldelema NetNode IL_05DA: ldfld Flags NetNode::m_flags IL_05DF: or IL_05E0: ldc.i4.8 IL_05E1: and IL_05E2: brtrue => Label40 IL_05E7: ldloc.1 IL_05E8: ldfld Array16`1 NetManager::m_nodes IL_05ED: ldfld NetNode[] Array16`1::m_buffer IL_05F2: ldloc.s 29 (System.UInt16) IL_05F4: ldelema NetNode IL_05F9: ldfld Flags NetNode::m_flags IL_05FE: ldloc.1 IL_05FF: ldfld Array16`1 NetManager::m_nodes IL_0604: ldfld NetNode[] Array16`1::m_buffer IL_0609: ldloc.s 30 (System.UInt16) IL_060B: ldelema NetNode IL_0610: ldfld Flags NetNode::m_flags IL_0615: or IL_0616: ldc.i4.8 IL_0617: and IL_0618: brfalse => Label41 IL_061D: ldarg.0 IL_061E: ldarg.1 IL_061F: ldarg.2 IL_0620: ldarg.1 IL_0621: ldarg.2 IL_0622: callvirt virtual System.Void VehicleAI::InvalidPath(System.UInt16 vehicleID, Vehicle& vehicleData, System.UInt16 leaderID, Vehicle& leaderData) IL_0627: br => Label129 IL_062C: Label36 IL_062C: Label37 IL_062C: Label38 IL_062C: Label39 IL_062C: Label40 IL_062C: Label41 IL_062C: ldloc.s 26 (NetInfo+Lane) IL_062E: ldfld LaneType Lane::m_laneType IL_0633: ldc.i4.2 IL_0634: bne.un => Label42 IL_0639: ldarg.1 IL_063A: brfalse => Label43 IL_063F: ldarg.2 IL_0640: ldfld Flags Vehicle::m_flags IL_0645: ldc.i4 4194304 IL_064A: and IL_064B: brtrue => Label44 IL_0650: ldloca.s 7 (PathUnit+Position) IL_0652: ldfld System.Byte Position::m_offset IL_0657: stloc.s 31 (System.Byte) IL_0659: ldloca.s 7 (PathUnit+Position) IL_065B: ldfld System.Byte Position::m_offset IL_0660: stloc.s 32 (System.Byte) IL_0662: ldarg.0 IL_0663: ldarg.1 IL_0664: ldarg.2 IL_0665: ldloc.s 7 (PathUnit+Position) IL_0667: ldloc.s 21 (System.UInt32) IL_0669: ldloc.s 20 (System.Int32) IL_066B: ldc.i4.1 IL_066C: shl IL_066D: ldloca.s 32 (System.Byte) IL_066F: callvirt virtual System.Boolean VehicleAI::ParkVehicle(System.UInt16 vehicleID, Vehicle& vehicleData, Position pathPos, System.UInt32 nextPath, System.Int32 nextPositionIndex, System.Byte& segmentOffset) IL_0674: brfalse => Label45 IL_0679: ldloc.s 32 (System.Byte) IL_067B: ldloc.s 31 (System.Byte) IL_067D: beq => Label46 IL_0682: ldarg.s 4 IL_0684: ldind.i4 IL_0685: ldc.i4.0 IL_0686: bgt => Label47 IL_068B: ldarg.2 IL_068C: ldarg.2 IL_068D: ldfld System.Byte Vehicle::m_pathPositionIndex IL_0692: ldc.i4.s -2 IL_0694: and IL_0695: conv.u1 IL_0696: stfld System.Byte Vehicle::m_pathPositionIndex IL_069B: ldarg.2 IL_069C: ldloc.s 31 (System.Byte) IL_069E: stfld System.Byte Vehicle::m_lastPathOffset IL_06A3: Label47 IL_06A3: ldloca.s 7 (PathUnit+Position) IL_06A5: ldloc.s 32 (System.Byte) IL_06A7: stfld System.Byte Position::m_offset IL_06AC: ldloc.0 IL_06AD: ldfld Array32`1 PathManager::m_pathUnits IL_06B2: ldfld PathUnit[] Array32`1::m_buffer IL_06B7: ldloc.s 4 (System.UInt32) IL_06B9: conv.u IL_06BA: ldelema PathUnit IL_06BF: ldloc.s 5 (System.Byte) IL_06C1: ldc.i4.1 IL_06C2: shr IL_06C3: ldloc.s 7 (PathUnit+Position) IL_06C5: call System.Void PathUnit::SetPosition(System.Int32 index, Position position) IL_06CA: Label46 IL_06CA: ldarg.2 IL_06CB: dup IL_06CC: ldfld Flags Vehicle::m_flags IL_06D1: ldc.i4 4194304 IL_06D6: or IL_06D7: stfld Flags Vehicle::m_flags IL_06DC: br => Label48 IL_06E1: Label45 IL_06E1: ldarg.0 IL_06E2: ldarg.1 IL_06E3: ldarg.2 IL_06E4: ldarg.1 IL_06E5: ldarg.2 IL_06E6: callvirt virtual System.Void VehicleAI::InvalidPath(System.UInt16 vehicleID, Vehicle& vehicleData, System.UInt16 leaderID, Vehicle& leaderData) IL_06EB: Label43 IL_06EB: Label44 IL_06EB: Label48 IL_06EB: br => Label130 IL_06F0: Label42 IL_06F0: ldloc.s 26 (NetInfo+Lane) IL_06F2: ldfld LaneType Lane::m_laneType IL_06F7: ldc.i4.s 49 IL_06F9: and IL_06FA: conv.u1 IL_06FB: brtrue => Label49 IL_0700: ldarg.0 IL_0701: ldarg.1 IL_0702: ldarg.2 IL_0703: ldarg.1 IL_0704: ldarg.2 IL_0705: callvirt virtual System.Void VehicleAI::InvalidPath(System.UInt16 vehicleID, Vehicle& vehicleData, System.UInt16 leaderID, Vehicle& leaderData) IL_070A: br => Label131 IL_070F: Label49 IL_070F: ldloc.s 26 (NetInfo+Lane) IL_0711: ldfld VehicleType Lane::m_vehicleType IL_0716: ldarg.0 IL_0717: ldfld VehicleInfo VehicleAI::m_info IL_071C: ldfld VehicleType VehicleInfo::m_vehicleType IL_0721: beq => Label50 IL_0726: ldarg.0 IL_0727: ldarg.1 IL_0728: ldarg.2 IL_0729: ldloc.s 22 (PathUnit+Position) IL_072B: ldloc.s 25 (System.UInt32) IL_072D: ldloc.s 26 (NetInfo+Lane) IL_072F: ldfld VehicleType Lane::m_vehicleType IL_0734: ldloca.s 2 (UnityEngine.Vector4) IL_0736: callvirt virtual System.Boolean VehicleAI::NeedChangeVehicleType(System.UInt16 vehicleID, Vehicle& vehicleData, Position pathPos, System.UInt32 laneID, VehicleType laneVehicleType, UnityEngine.Vector4& target) IL_073B: brfalse => Label51 IL_0740: ldloc.2 IL_0741: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0746: ldarg.3 IL_0747: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074C: stloc.s 34 (UnityEngine.Vector3) IL_074E: ldloca.s 34 (UnityEngine.Vector3) IL_0750: call System.Single UnityEngine.Vector3::get_sqrMagnitude() IL_0755: stloc.s 33 (System.Single) IL_0757: ldloc.s 33 (System.Single) IL_0759: ldloc.3 IL_075A: blt.un => Label52 IL_075F: ldarg.2 IL_0760: ldarg.s 4 IL_0762: ldarg.s 4 IL_0764: ldind.i4 IL_0765: dup IL_0766: stloc.s 19 (System.Int32) IL_0768: ldc.i4.1 IL_0769: add IL_076A: stind.i4 IL_076B: ldloc.s 19 (System.Int32) IL_076D: ldloc.2 IL_076E: call System.Void Vehicle::SetTargetPos(System.Int32 index, UnityEngine.Vector4 pos) IL_0773: Label52 IL_0773: ldarg.s 4 IL_0775: ldind.i4 IL_0776: ldc.i4.0 IL_0777: bgt => Label53 IL_077C: br => Label54 IL_0781: Label55 IL_0781: ldarg.2 IL_0782: ldarg.s 4 IL_0784: ldarg.s 4 IL_0786: ldind.i4 IL_0787: dup IL_0788: stloc.s 19 (System.Int32) IL_078A: ldc.i4.1 IL_078B: add IL_078C: stind.i4 IL_078D: ldloc.s 19 (System.Int32) IL_078F: ldloc.2 IL_0790: call System.Void Vehicle::SetTargetPos(System.Int32 index, UnityEngine.Vector4 pos) IL_0795: Label54 IL_0795: ldarg.s 4 IL_0797: ldind.i4 IL_0798: ldarg.s 5 IL_079A: blt => Label55 IL_079F: ldloc.s 21 (System.UInt32) IL_07A1: ldarg.2 IL_07A2: ldfld System.UInt32 Vehicle::m_path IL_07A7: beq => Label56 IL_07AC: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_07B1: ldarg.2 IL_07B2: ldflda System.UInt32 Vehicle::m_path IL_07B7: callvirt System.Void PathManager::ReleaseFirstUnit(System.UInt32& unit) IL_07BC: Label56 IL_07BC: ldarg.2 IL_07BD: ldloc.s 20 (System.Int32) IL_07BF: ldc.i4.1 IL_07C0: shl IL_07C1: conv.u1 IL_07C2: stfld System.Byte Vehicle::m_pathPositionIndex IL_07C7: ldloc.s 25 (System.UInt32) IL_07C9: ldloc.2 IL_07CA: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_07CF: ldarg.2 IL_07D0: ldflda System.Byte Vehicle::m_lastPathOffset IL_07D5: call static System.Void PathUnit::CalculatePathPositionOffset(System.UInt32 laneID, UnityEngine.Vector3 refPos, System.Byte& offset) IL_07DA: ldarg.1 IL_07DB: brfalse => Label57 IL_07E0: ldarg.0 IL_07E1: ldarg.1 IL_07E2: ldarg.2 IL_07E3: ldloc.s 22 (PathUnit+Position) IL_07E5: ldloc.s 25 (System.UInt32) IL_07E7: callvirt virtual System.Boolean VehicleAI::ChangeVehicleType(System.UInt16 vehicleID, Vehicle& vehicleData, Position pathPos, System.UInt32 laneID) IL_07EC: brtrue => Label58 IL_07F1: ldarg.0 IL_07F2: ldarg.1 IL_07F3: ldarg.2 IL_07F4: ldarg.1 IL_07F5: ldarg.2 IL_07F6: callvirt virtual System.Void VehicleAI::InvalidPath(System.UInt16 vehicleID, Vehicle& vehicleData, System.UInt16 leaderID, Vehicle& leaderData) IL_07FB: Label57 IL_07FB: Label58 IL_07FB: br => Label59 IL_0800: Label53 IL_0800: br => Label60 IL_0805: Label61 IL_0805: ldarg.2 IL_0806: ldarg.s 4 IL_0808: ldarg.s 4 IL_080A: ldind.i4 IL_080B: dup IL_080C: stloc.s 19 (System.Int32) IL_080E: ldc.i4.1 IL_080F: add IL_0810: stind.i4 IL_0811: ldloc.s 19 (System.Int32) IL_0813: ldloc.2 IL_0814: call System.Void Vehicle::SetTargetPos(System.Int32 index, UnityEngine.Vector4 pos) IL_0819: Label60 IL_0819: ldarg.s 4 IL_081B: ldind.i4 IL_081C: ldarg.s 5 IL_081E: blt => Label61 IL_0823: Label59 IL_0823: br => Label132 IL_0828: Label50 IL_0828: Label51 IL_0828: ldloca.s 22 (PathUnit+Position) IL_082A: ldfld System.UInt16 Position::m_segment IL_082F: ldloca.s 7 (PathUnit+Position) IL_0831: ldfld System.UInt16 Position::m_segment IL_0836: beq => Label62 IL_083B: ldarg.1 IL_083C: brfalse => Label63 IL_0841: ldarg.2 IL_0842: dup IL_0843: ldfld Flags Vehicle::m_flags IL_0848: ldc.i4 -1025 IL_084D: and IL_084E: stfld Flags Vehicle::m_flags IL_0853: Label62 IL_0853: Label63 IL_0853: ldc.i4.0 IL_0854: stloc.s 35 (System.Byte) IL_0856: ldarg.2 IL_0857: ldfld Flags Vehicle::m_flags IL_085C: ldc.i4 16384 IL_0861: and IL_0862: brfalse => Label64 IL_0867: ldloca.s 22 (PathUnit+Position) IL_0869: ldfld System.Byte Position::m_offset IL_086E: ldc.i4 128 IL_0873: blt => Label65 IL_0878: ldc.i4.0 IL_0879: br => Label66 IL_087E: Label65 IL_087E: ldc.i4 255 IL_0883: Label66 IL_0883: conv.u1 IL_0884: stloc.s 35 (System.Byte) IL_0886: br => Label67 IL_088B: Label64 IL_088B: ldloc.s 9 (System.UInt32) IL_088D: ldloc.s 25 (System.UInt32) IL_088F: beq => Label68 IL_0894: ldloc.s 10 (NetInfo+Lane) IL_0896: ldfld LaneType Lane::m_laneType IL_089B: ldc.i4.s 16 IL_089D: beq => Label69 IL_08A2: ldloc.s 25 (System.UInt32) IL_08A4: ldloc.2 IL_08A5: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_08AA: ldloca.s 35 (System.Byte) IL_08AC: call static System.Void PathUnit::CalculatePathPositionOffset(System.UInt32 laneID, UnityEngine.Vector3 refPos, System.Byte& offset) IL_08B1: ldloca.s 36 (ColossalFramework.Math.Bezier3) IL_08B3: initobj ColossalFramework.Math.Bezier3 IL_08B9: ldarg.0 IL_08BA: ldarg.1 IL_08BB: ldarg.2 IL_08BC: ldloc.s 7 (PathUnit+Position) IL_08BE: ldloc.s 9 (System.UInt32) IL_08C0: ldloca.s 7 (PathUnit+Position) IL_08C2: ldfld System.Byte Position::m_offset IL_08C7: ldloca.s 36 (ColossalFramework.Math.Bezier3) IL_08C9: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a IL_08CE: ldloca.s 37 (UnityEngine.Vector3) IL_08D0: ldloca.s 39 (System.Single) IL_08D2: callvirt virtual System.Void VehicleAI::CalculateSegmentPosition(System.UInt16 vehicleID, Vehicle& vehicleData, Position position, System.UInt32 laneID, System.Byte offset, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) IL_08D7: ldloc.s 6 (System.Byte) IL_08D9: ldc.i4.0 IL_08DA: ceq IL_08DC: stloc.s 41 (System.Boolean) IL_08DE: ldloc.s 41 (System.Boolean) IL_08E0: brfalse => Label70 IL_08E5: ldarg.2 IL_08E6: ldfld Flags Vehicle::m_flags IL_08EB: ldc.i4 4096 IL_08F0: and IL_08F1: brfalse => Label71 IL_08F6: ldarg.2 IL_08F7: ldfld System.UInt16 Vehicle::m_trailingVehicle IL_08FC: ldc.i4.0 IL_08FD: ceq IL_08FF: stloc.s 41 (System.Boolean) IL_0901: br => Label72 IL_0906: Label71 IL_0906: ldarg.2 IL_0907: ldfld System.UInt16 Vehicle::m_leadingVehicle IL_090C: ldc.i4.0 IL_090D: ceq IL_090F: stloc.s 41 (System.Boolean) IL_0911: Label70 IL_0911: Label72 IL_0911: ldloc.s 41 (System.Boolean) IL_0913: brfalse => Label73 IL_0918: ldloc.0 IL_0919: ldfld Array32`1 PathManager::m_pathUnits IL_091E: ldfld PathUnit[] Array32`1::m_buffer IL_0923: ldloc.s 21 (System.UInt32) IL_0925: conv.u IL_0926: ldelema PathUnit IL_092B: ldloc.s 20 (System.Int32) IL_092D: ldloca.s 42 (PathUnit+Position) IL_092F: call System.Boolean PathUnit::GetNextPosition(System.Int32 index, Position& position) IL_0934: brtrue => Label74 IL_0939: ldloca.s 42 (PathUnit+Position) IL_093B: initobj PathUnit+Position IL_0941: Label74 IL_0941: ldarg.0 IL_0942: ldarg.1 IL_0943: ldarg.2 IL_0944: ldloc.s 42 (PathUnit+Position) IL_0946: ldloc.s 22 (PathUnit+Position) IL_0948: ldloc.s 25 (System.UInt32) IL_094A: ldloc.s 35 (System.Byte) IL_094C: ldloc.s 7 (PathUnit+Position) IL_094E: ldloc.s 9 (System.UInt32) IL_0950: ldloca.s 7 (PathUnit+Position) IL_0952: ldfld System.Byte Position::m_offset IL_0957: ldarg.s 4 IL_0959: ldind.i4 IL_095A: ldloca.s 36 (ColossalFramework.Math.Bezier3) IL_095C: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::d IL_0961: ldloca.s 38 (UnityEngine.Vector3) IL_0963: ldloca.s 40 (System.Single) IL_0965: callvirt virtual System.Void VehicleAI::CalculateSegmentPosition(System.UInt16 vehicleID, Vehicle& vehicleData, Position nextPosition, Position position, System.UInt32 laneID, System.Byte offset, Position prevPos, System.UInt32 prevLaneID, System.Byte prevOffset, System.Int32 index, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) IL_096A: br => Label75 IL_096F: Label73 IL_096F: ldarg.0 IL_0970: ldarg.1 IL_0971: ldarg.2 IL_0972: ldloc.s 22 (PathUnit+Position) IL_0974: ldloc.s 25 (System.UInt32) IL_0976: ldloc.s 35 (System.Byte) IL_0978: ldloca.s 36 (ColossalFramework.Math.Bezier3) IL_097A: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::d IL_097F: ldloca.s 38 (UnityEngine.Vector3) IL_0981: ldloca.s 40 (System.Single) IL_0983: callvirt virtual System.Void VehicleAI::CalculateSegmentPosition(System.UInt16 vehicleID, Vehicle& vehicleData, Position position, System.UInt32 laneID, System.Byte offset, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) IL_0988: Label75 IL_0988: ldloc.s 40 (System.Single) IL_098A: ldc.r4 0.01 IL_098F: blt => Label76 IL_0994: ldloc.1 IL_0995: ldfld Array16`1 NetManager::m_segments IL_099A: ldfld NetSegment[] Array16`1::m_buffer IL_099F: ldloca.s 22 (PathUnit+Position) IL_09A1: ldfld System.UInt16 Position::m_segment IL_09A6: ldelema NetSegment IL_09AB: ldfld Flags NetSegment::m_flags IL_09B0: ldc.i4 4194312 IL_09B5: and IL_09B6: brfalse => Label77 IL_09BB: Label76 IL_09BB: ldarg.s 4 IL_09BD: ldind.i4 IL_09BE: ldc.i4.0 IL_09BF: bgt => Label78 IL_09C4: ldarg.2 IL_09C5: ldloc.s 6 (System.Byte) IL_09C7: stfld System.Byte Vehicle::m_lastPathOffset IL_09CC: Label78 IL_09CC: ldloca.s 36 (ColossalFramework.Math.Bezier3) IL_09CE: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a IL_09D3: call static UnityEngine.Vector4 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector3 v) IL_09D8: stloc.2 IL_09D9: ldloca.s 2 (UnityEngine.Vector4) IL_09DB: ldc.r4 0 IL_09E0: stfld System.Single UnityEngine.Vector4::w IL_09E5: br => Label79 IL_09EA: Label80 IL_09EA: ldarg.2 IL_09EB: ldarg.s 4 IL_09ED: ldarg.s 4 IL_09EF: ldind.i4 IL_09F0: dup IL_09F1: stloc.s 19 (System.Int32) IL_09F3: ldc.i4.1 IL_09F4: add IL_09F5: stind.i4 IL_09F6: ldloc.s 19 (System.Int32) IL_09F8: ldloc.2 IL_09F9: call System.Void Vehicle::SetTargetPos(System.Int32 index, UnityEngine.Vector4 pos) IL_09FE: Label79 IL_09FE: ldarg.s 4 IL_0A00: ldind.i4 IL_0A01: ldarg.s 5 IL_0A03: blt => Label80 IL_0A08: br => Label133 IL_0A0D: Label77 IL_0A0D: ldloca.s 7 (PathUnit+Position) IL_0A0F: ldfld System.Byte Position::m_offset IL_0A14: brtrue => Label81 IL_0A19: ldloc.s 37 (UnityEngine.Vector3) IL_0A1B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a) IL_0A20: stloc.s 37 (UnityEngine.Vector3) IL_0A22: Label81 IL_0A22: ldloc.s 35 (System.Byte) IL_0A24: ldloca.s 22 (PathUnit+Position) IL_0A26: ldfld System.Byte Position::m_offset IL_0A2B: bge => Label82 IL_0A30: ldloc.s 38 (UnityEngine.Vector3) IL_0A32: call static UnityEngine.Vector3 UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a) IL_0A37: stloc.s 38 (UnityEngine.Vector3) IL_0A39: Label82 IL_0A39: ldloca.s 37 (UnityEngine.Vector3) IL_0A3B: call System.Void UnityEngine.Vector3::Normalize() IL_0A40: ldloca.s 38 (UnityEngine.Vector3) IL_0A42: call System.Void UnityEngine.Vector3::Normalize() IL_0A47: ldloca.s 7 (PathUnit+Position) IL_0A49: ldfld System.UInt16 Position::m_segment IL_0A4E: ldloca.s 22 (PathUnit+Position) IL_0A50: ldfld System.UInt16 Position::m_segment IL_0A55: bne.un => Label83 IL_0A5A: ldloca.s 36 (ColossalFramework.Math.Bezier3) IL_0A5C: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::d IL_0A61: ldloca.s 36 (ColossalFramework.Math.Bezier3) IL_0A63: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a IL_0A68: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6D: stloc.s 44 (UnityEngine.Vector3) IL_0A6F: ldloca.s 44 (UnityEngine.Vector3) IL_0A71: call System.Single UnityEngine.Vector3::get_magnitude() IL_0A76: stloc.s 43 (System.Single) IL_0A78: ldloc.1 IL_0A79: ldfld Array16`1 NetManager::m_segments IL_0A7E: ldfld NetSegment[] Array16`1::m_buffer IL_0A83: ldloca.s 7 (PathUnit+Position) IL_0A85: ldfld System.UInt16 Position::m_segment IL_0A8A: ldelema NetSegment IL_0A8F: call NetInfo NetSegment::get_Info() IL_0A94: stloc.s 45 (NetInfo) IL_0A96: ldloc.s 45 (NetInfo) IL_0A98: ldfld NetAI NetInfo::m_netAI IL_0A9D: callvirt virtual System.Single NetAI::GetEndRadius() IL_0AA2: stloc.s 46 (System.Single) IL_0AA4: ldloc.s 45 (NetInfo) IL_0AA6: ldfld Lane[] NetInfo::m_lanes IL_0AAB: ldloca.s 7 (PathUnit+Position) IL_0AAD: ldfld System.Byte Position::m_lane IL_0AB2: ldelem.ref IL_0AB3: ldfld System.Single Lane::m_position IL_0AB8: ldloc.s 45 (NetInfo) IL_0ABA: ldfld Lane[] NetInfo::m_lanes IL_0ABF: ldloca.s 22 (PathUnit+Position) IL_0AC1: ldfld System.Byte Position::m_lane IL_0AC6: ldelem.ref IL_0AC7: ldfld System.Single Lane::m_position IL_0ACC: sub IL_0ACD: call static System.Single UnityEngine.Mathf::Abs(System.Single f) IL_0AD2: ldc.r4 0.75 IL_0AD7: mul IL_0AD8: stloc.s 47 (System.Single) IL_0ADA: ldloc.s 45 (NetInfo) IL_0ADC: ldfld Lane[] NetInfo::m_lanes IL_0AE1: ldloca.s 7 (PathUnit+Position) IL_0AE3: ldfld System.Byte Position::m_lane IL_0AE8: ldelem.ref IL_0AE9: ldfld System.Single Lane::m_width IL_0AEE: ldloc.s 45 (NetInfo) IL_0AF0: ldfld Lane[] NetInfo::m_lanes IL_0AF5: ldloca.s 22 (PathUnit+Position) IL_0AF7: ldfld System.Byte Position::m_lane IL_0AFC: ldelem.ref IL_0AFD: ldfld System.Single Lane::m_width IL_0B02: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0B07: ldc.r4 0.5 IL_0B0C: mul IL_0B0D: stloc.s 48 (System.Single) IL_0B0F: ldloc.s 47 (System.Single) IL_0B11: ldloc.s 46 (System.Single) IL_0B13: ldc.r4 1 IL_0B18: ldloc.s 45 (NetInfo) IL_0B1A: ldfld System.Single NetInfo::m_pavementWidth IL_0B1F: ldloc.s 45 (NetInfo) IL_0B21: ldfld System.Single NetInfo::m_halfWidth IL_0B26: div IL_0B27: sub IL_0B28: mul IL_0B29: ldloc.s 48 (System.Single) IL_0B2B: sub IL_0B2C: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0B31: stloc.s 47 (System.Single) IL_0B33: ldloca.s 36 (ColossalFramework.Math.Bezier3) IL_0B35: ldloca.s 36 (ColossalFramework.Math.Bezier3) IL_0B37: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a IL_0B3C: ldloc.s 37 (UnityEngine.Vector3) IL_0B3E: ldloc.s 47 (System.Single) IL_0B40: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0B45: ldc.r4 1.333 IL_0B4A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0B4F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B54: stfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::b IL_0B59: ldloca.s 36 (ColossalFramework.Math.Bezier3) IL_0B5B: ldloca.s 36 (ColossalFramework.Math.Bezier3) IL_0B5D: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::d IL_0B62: ldloc.s 38 (UnityEngine.Vector3) IL_0B64: ldloc.s 47 (System.Single) IL_0B66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0B6B: ldc.r4 1.333 IL_0B70: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0B75: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B7A: stfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::c IL_0B7F: br => Label84 IL_0B84: Label83 IL_0B84: ldloca.s 36 (ColossalFramework.Math.Bezier3) IL_0B86: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a IL_0B8B: ldloc.s 37 (UnityEngine.Vector3) IL_0B8D: ldloca.s 36 (ColossalFramework.Math.Bezier3) IL_0B8F: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::d IL_0B94: ldloc.s 38 (UnityEngine.Vector3) IL_0B96: ldc.i4.1 IL_0B97: ldc.i4.1 IL_0B98: ldloca.s 36 (ColossalFramework.Math.Bezier3) IL_0B9A: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::b IL_0B9F: ldloca.s 36 (ColossalFramework.Math.Bezier3) IL_0BA1: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::c IL_0BA6: ldloca.s 43 (System.Single) IL_0BA8: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2, System.Single& distance) IL_0BAD: Label84 IL_0BAD: ldloc.s 43 (System.Single) IL_0BAF: ldc.r4 1 IL_0BB4: ble.un => Label85 IL_0BB9: ldloc.s 35 (System.Byte) IL_0BBB: brtrue => Label86 IL_0BC0: ldloc.1 IL_0BC1: ldfld Array16`1 NetManager::m_segments IL_0BC6: ldfld NetSegment[] Array16`1::m_buffer IL_0BCB: ldloca.s 22 (PathUnit+Position) IL_0BCD: ldfld System.UInt16 Position::m_segment IL_0BD2: ldelema NetSegment IL_0BD7: ldfld System.UInt16 NetSegment::m_startNode IL_0BDC: stloc.s 49 (System.UInt16) IL_0BDE: br => Label87 IL_0BE3: Label86 IL_0BE3: ldloc.s 35 (System.Byte) IL_0BE5: ldc.i4 255 IL_0BEA: bne.un => Label88 IL_0BEF: ldloc.1 IL_0BF0: ldfld Array16`1 NetManager::m_segments IL_0BF5: ldfld NetSegment[] Array16`1::m_buffer IL_0BFA: ldloca.s 22 (PathUnit+Position) IL_0BFC: ldfld System.UInt16 Position::m_segment IL_0C01: ldelema NetSegment IL_0C06: ldfld System.UInt16 NetSegment::m_endNode IL_0C0B: stloc.s 49 (System.UInt16) IL_0C0D: br => Label89 IL_0C12: Label88 IL_0C12: ldc.i4.0 IL_0C13: stloc.s 49 (System.UInt16) IL_0C15: Label87 IL_0C15: Label89 IL_0C15: ldc.r4 1.570796 IL_0C1A: ldc.r4 1 IL_0C1F: ldloc.s 37 (UnityEngine.Vector3) IL_0C21: ldloc.s 38 (UnityEngine.Vector3) IL_0C23: call static System.Single UnityEngine.Vector3::Dot(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs) IL_0C28: add IL_0C29: mul IL_0C2A: stloc.s 50 (System.Single) IL_0C2C: ldloc.s 43 (System.Single) IL_0C2E: ldc.r4 1 IL_0C33: ble.un => Label90 IL_0C38: ldloc.s 50 (System.Single) IL_0C3A: ldloc.s 43 (System.Single) IL_0C3C: div IL_0C3D: stloc.s 50 (System.Single) IL_0C3F: Label90 IL_0C3F: ldloc.s 40 (System.Single) IL_0C41: ldarg.0 IL_0C42: ldarg.1 IL_0C43: ldarg.2 IL_0C44: ldc.r4 1000 IL_0C49: ldloc.s 50 (System.Single) IL_0C4B: callvirt virtual System.Single VehicleAI::CalculateTargetSpeed(System.UInt16 vehicleID, Vehicle& data, System.Single speedLimit, System.Single curve) IL_0C50: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0C55: stloc.s 40 (System.Single) IL_0C57: br => Label91 IL_0C5C: Label107 IL_0C5C: ldloc.3 IL_0C5D: call static System.Single UnityEngine.Mathf::Sqrt(System.Single f) IL_0C62: ldloc.2 IL_0C63: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0C68: ldarg.3 IL_0C69: call static System.Single UnityEngine.Vector3::Distance(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0C6E: sub IL_0C6F: stloc.s 51 (System.Single) IL_0C71: ldloc.s 51 (System.Single) IL_0C73: ldc.r4 0 IL_0C78: bge.un => Label92 IL_0C7D: ldc.i4.8 IL_0C7E: stloc.s 52 (System.Int32) IL_0C80: br => Label93 IL_0C85: Label92 IL_0C85: ldc.i4.8 IL_0C86: ldc.i4.0 IL_0C87: ldloc.s 51 (System.Single) IL_0C89: ldc.r4 256 IL_0C8E: mul IL_0C8F: ldloc.s 43 (System.Single) IL_0C91: ldc.r4 1 IL_0C96: add IL_0C97: div IL_0C98: call static System.Int32 UnityEngine.Mathf::CeilToInt(System.Single f) IL_0C9D: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0CA2: add IL_0CA3: stloc.s 52 (System.Int32) IL_0CA5: Label93 IL_0CA5: ldloc.s 6 (System.Byte) IL_0CA7: stloc.s 53 (System.Byte) IL_0CA9: ldarg.0 IL_0CAA: ldarg.1 IL_0CAB: ldarg.2 IL_0CAC: ldloc.s 49 (System.UInt16) IL_0CAE: ldloc.1 IL_0CAF: ldfld Array16`1 NetManager::m_nodes IL_0CB4: ldfld NetNode[] Array16`1::m_buffer IL_0CB9: ldloc.s 49 (System.UInt16) IL_0CBB: ldelema NetNode IL_0CC0: ldloc.s 7 (PathUnit+Position) IL_0CC2: ldloc.s 9 (System.UInt32) IL_0CC4: ldloc.s 22 (PathUnit+Position) IL_0CC6: ldloc.s 25 (System.UInt32) IL_0CC8: ldloc.s 36 (ColossalFramework.Math.Bezier3) IL_0CCA: ldloca.s 54 (System.Byte) IL_0CCC: callvirt virtual System.Boolean VehicleAI::NeedStopAtNode(System.UInt16 vehicleID, Vehicle& vehicleData, System.UInt16 nodeID, NetNode& nodeData, Position prevPosition, System.UInt32 prevLane, Position nextPosition, System.UInt32 nextLane, ColossalFramework.Math.Bezier3 bezier, System.Byte& stopOffset) IL_0CD1: brfalse => Label94 IL_0CD6: ldloc.s 54 (System.Byte) IL_0CD8: ldloc.s 53 (System.Byte) IL_0CDA: clt IL_0CDC: ldc.i4.0 IL_0CDD: ceq IL_0CDF: br => Label95 IL_0CE4: Label94 IL_0CE4: ldc.i4.0 IL_0CE5: Label95 IL_0CE5: stloc.s 55 (System.Boolean) IL_0CE7: ldloc.s 6 (System.Byte) IL_0CE9: ldloc.s 52 (System.Int32) IL_0CEB: add IL_0CEC: ldc.i4 255 IL_0CF1: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0CF6: conv.u1 IL_0CF7: stloc.s 6 (System.Byte) IL_0CF9: ldloc.s 55 (System.Boolean) IL_0CFB: brfalse => Label96 IL_0D00: ldloc.s 6 (System.Byte) IL_0D02: ldloc.s 54 (System.Byte) IL_0D04: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0D09: conv.u1 IL_0D0A: stloc.s 6 (System.Byte) IL_0D0C: Label96 IL_0D0C: ldloca.s 36 (ColossalFramework.Math.Bezier3) IL_0D0E: ldloc.s 6 (System.Byte) IL_0D10: conv.r4 IL_0D11: ldc.r4 0.003921569 IL_0D16: mul IL_0D17: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0D1C: stloc.s 56 (UnityEngine.Vector3) IL_0D1E: ldloca.s 2 (UnityEngine.Vector4) IL_0D20: ldloca.s 56 (UnityEngine.Vector3) IL_0D22: ldfld System.Single UnityEngine.Vector3::x IL_0D27: ldloca.s 56 (UnityEngine.Vector3) IL_0D29: ldfld System.Single UnityEngine.Vector3::y IL_0D2E: ldloca.s 56 (UnityEngine.Vector3) IL_0D30: ldfld System.Single UnityEngine.Vector3::z IL_0D35: ldloca.s 2 (UnityEngine.Vector4) IL_0D37: ldfld System.Single UnityEngine.Vector4::w IL_0D3C: ldloc.s 40 (System.Single) IL_0D3E: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0D43: call System.Void UnityEngine.Vector4::Set(System.Single new_x, System.Single new_y, System.Single new_z, System.Single new_w) IL_0D48: ldloc.s 56 (UnityEngine.Vector3) IL_0D4A: ldarg.3 IL_0D4B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0D50: stloc.s 58 (UnityEngine.Vector3) IL_0D52: ldloca.s 58 (UnityEngine.Vector3) IL_0D54: call System.Single UnityEngine.Vector3::get_sqrMagnitude() IL_0D59: stloc.s 57 (System.Single) IL_0D5B: ldloc.s 57 (System.Single) IL_0D5D: ldloc.3 IL_0D5E: bge => Label97 IL_0D63: ldloc.s 55 (System.Boolean) IL_0D65: brfalse => Label98 IL_0D6A: Label97 IL_0D6A: ldarg.s 4 IL_0D6C: ldind.i4 IL_0D6D: ldc.i4.0 IL_0D6E: bgt => Label99 IL_0D73: ldarg.2 IL_0D74: ldloc.s 6 (System.Byte) IL_0D76: stfld System.Byte Vehicle::m_lastPathOffset IL_0D7B: Label99 IL_0D7B: ldloc.s 49 (System.UInt16) IL_0D7D: brfalse => Label100 IL_0D82: ldarg.0 IL_0D83: ldarg.1 IL_0D84: ldarg.2 IL_0D85: ldloc.s 49 (System.UInt16) IL_0D87: ldloc.1 IL_0D88: ldfld Array16`1 NetManager::m_nodes IL_0D8D: ldfld NetNode[] Array16`1::m_buffer IL_0D92: ldloc.s 49 (System.UInt16) IL_0D94: ldelema NetNode IL_0D99: ldloca.s 2 (UnityEngine.Vector4) IL_0D9B: ldarg.s 4 IL_0D9D: ldind.i4 IL_0D9E: callvirt virtual System.Void VehicleAI::UpdateNodeTargetPos(System.UInt16 vehicleID, Vehicle& vehicleData, System.UInt16 nodeID, NetNode& nodeData, UnityEngine.Vector4& targetPos, System.Int32 index) IL_0DA3: ldloc.s 55 (System.Boolean) IL_0DA5: brfalse => Label101 IL_0DAA: ldloc.s 6 (System.Byte) IL_0DAC: ldloc.s 54 (System.Byte) IL_0DAE: bne.un => Label102 IL_0DB3: ldarg.s 4 IL_0DB5: ldind.i4 IL_0DB6: ldc.i4.0 IL_0DB7: bgt => Label103 IL_0DBC: ldarg.2 IL_0DBD: ldloc.s 53 (System.Byte) IL_0DBF: stfld System.Byte Vehicle::m_lastPathOffset IL_0DC4: Label103 IL_0DC4: ldloca.s 2 (UnityEngine.Vector4) IL_0DC6: ldc.r4 0 IL_0DCB: stfld System.Single UnityEngine.Vector4::w IL_0DD0: br => Label104 IL_0DD5: Label105 IL_0DD5: ldarg.2 IL_0DD6: ldarg.s 4 IL_0DD8: ldarg.s 4 IL_0DDA: ldind.i4 IL_0DDB: dup IL_0DDC: stloc.s 19 (System.Int32) IL_0DDE: ldc.i4.1 IL_0DDF: add IL_0DE0: stind.i4 IL_0DE1: ldloc.s 19 (System.Int32) IL_0DE3: ldloc.2 IL_0DE4: call System.Void Vehicle::SetTargetPos(System.Int32 index, UnityEngine.Vector4 pos) IL_0DE9: Label104 IL_0DE9: ldarg.s 4 IL_0DEB: ldind.i4 IL_0DEC: ldarg.s 5 IL_0DEE: blt => Label105 IL_0DF3: br => Label134 IL_0DF8: Label100 IL_0DF8: Label101 IL_0DF8: Label102 IL_0DF8: ldarg.2 IL_0DF9: ldarg.s 4 IL_0DFB: ldarg.s 4 IL_0DFD: ldind.i4 IL_0DFE: dup IL_0DFF: stloc.s 19 (System.Int32) IL_0E01: ldc.i4.1 IL_0E02: add IL_0E03: stind.i4 IL_0E04: ldloc.s 19 (System.Int32) IL_0E06: ldloc.2 IL_0E07: call System.Void Vehicle::SetTargetPos(System.Int32 index, UnityEngine.Vector4 pos) IL_0E0C: ldarg.s 7 IL_0E0E: stloc.3 IL_0E0F: ldloc.2 IL_0E10: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0E15: starg.s 3 IL_0E17: ldloca.s 2 (UnityEngine.Vector4) IL_0E19: ldc.r4 1000 IL_0E1E: stfld System.Single UnityEngine.Vector4::w IL_0E23: ldarg.s 4 IL_0E25: ldind.i4 IL_0E26: ldarg.s 5 IL_0E28: bne.un => Label106 IL_0E2D: br => Label135 IL_0E32: Label91 IL_0E32: Label98 IL_0E32: Label106 IL_0E32: ldloc.s 6 (System.Byte) IL_0E34: ldc.i4 255 IL_0E39: blt => Label107 IL_0E3E: Label85 IL_0E3E: br => Label108 IL_0E43: Label68 IL_0E43: Label69 IL_0E43: ldloc.s 25 (System.UInt32) IL_0E45: ldloc.2 IL_0E46: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0E4B: ldloca.s 35 (System.Byte) IL_0E4D: call static System.Void PathUnit::CalculatePathPositionOffset(System.UInt32 laneID, UnityEngine.Vector3 refPos, System.Byte& offset) IL_0E52: Label67 IL_0E52: Label108 IL_0E52: ldarg.s 4 IL_0E54: ldind.i4 IL_0E55: ldc.i4.0 IL_0E56: bgt => Label109 IL_0E5B: ldloc.1 IL_0E5C: ldfld Array16`1 NetManager::m_segments IL_0E61: ldfld NetSegment[] Array16`1::m_buffer IL_0E66: ldloca.s 22 (PathUnit+Position) IL_0E68: ldfld System.UInt16 Position::m_segment IL_0E6D: ldelema NetSegment IL_0E72: ldfld Flags NetSegment::m_flags IL_0E77: ldc.i4.s 32 IL_0E79: and IL_0E7A: brfalse => Label110 IL_0E7F: ldloc.1 IL_0E80: ldfld Array16`1 NetManager::m_segments IL_0E85: ldfld NetSegment[] Array16`1::m_buffer IL_0E8A: ldloca.s 7 (PathUnit+Position) IL_0E8C: ldfld System.UInt16 Position::m_segment IL_0E91: ldelema NetSegment IL_0E96: ldfld Flags NetSegment::m_flags IL_0E9B: ldc.i4.s 32 IL_0E9D: and IL_0E9E: brtrue => Label111 IL_0EA3: ldloca.s 22 (PathUnit+Position) IL_0EA5: ldfld System.UInt16 Position::m_segment IL_0EAA: ldc.r4 363 IL_0EAF: call static System.UInt16 NetSegment::FindOwnerBuilding(System.UInt16 segmentID, System.Single maxDistance) IL_0EB4: stloc.s 59 (System.UInt16) IL_0EB6: ldloc.s 59 (System.UInt16) IL_0EB8: brfalse => Label112 IL_0EBD: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0EC2: stloc.s 60 (BuildingManager) IL_0EC4: ldloc.s 60 (BuildingManager) IL_0EC6: ldfld Array16`1 BuildingManager::m_buildings IL_0ECB: ldfld Building[] Array16`1::m_buffer IL_0ED0: ldloc.s 59 (System.UInt16) IL_0ED2: ldelema Building IL_0ED7: call BuildingInfo Building::get_Info() IL_0EDC: stloc.s 61 (BuildingInfo) IL_0EDE: ldloca.s 62 (InstanceID) IL_0EE0: initobj InstanceID IL_0EE6: ldloca.s 62 (InstanceID) IL_0EE8: ldarg.1 IL_0EE9: call System.Void InstanceID::set_Vehicle(System.UInt16 value) IL_0EEE: ldloc.s 61 (BuildingInfo) IL_0EF0: ldfld BuildingAI BuildingInfo::m_buildingAI IL_0EF5: ldloc.s 59 (System.UInt16) IL_0EF7: ldloc.s 60 (BuildingManager) IL_0EF9: ldfld Array16`1 BuildingManager::m_buildings IL_0EFE: ldfld Building[] Array16`1::m_buffer IL_0F03: ldloc.s 59 (System.UInt16) IL_0F05: ldelema Building IL_0F0A: ldloca.s 22 (PathUnit+Position) IL_0F0C: ldfld System.UInt16 Position::m_segment IL_0F11: ldloca.s 22 (PathUnit+Position) IL_0F13: ldfld System.Byte Position::m_offset IL_0F18: ldloc.s 62 (InstanceID) IL_0F1A: callvirt virtual System.Void BuildingAI::EnterBuildingSegment(System.UInt16 buildingID, Building& data, System.UInt16 segmentID, System.Byte offset, InstanceID itemID) IL_0F1F: Label110 IL_0F1F: Label111 IL_0F1F: Label112 IL_0F1F: ldloc.s 20 (System.Int32) IL_0F21: brtrue => Label113 IL_0F26: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_0F2B: ldarg.2 IL_0F2C: ldflda System.UInt32 Vehicle::m_path IL_0F31: callvirt System.Void PathManager::ReleaseFirstUnit(System.UInt32& unit) IL_0F36: Label113 IL_0F36: ldloc.s 20 (System.Int32) IL_0F38: ldloc.0 IL_0F39: ldfld Array32`1 PathManager::m_pathUnits IL_0F3E: ldfld PathUnit[] Array32`1::m_buffer IL_0F43: ldloc.s 21 (System.UInt32) IL_0F45: conv.u IL_0F46: ldelema PathUnit IL_0F4B: ldfld System.Byte PathUnit::m_positionCount IL_0F50: ldc.i4.1 IL_0F51: sub IL_0F52: blt => Label114 IL_0F57: ldloc.0 IL_0F58: ldfld Array32`1 PathManager::m_pathUnits IL_0F5D: ldfld PathUnit[] Array32`1::m_buffer IL_0F62: ldloc.s 21 (System.UInt32) IL_0F64: conv.u IL_0F65: ldelema PathUnit IL_0F6A: ldfld System.UInt32 PathUnit::m_nextPathUnit IL_0F6F: brtrue => Label115 IL_0F74: ldarg.1 IL_0F75: brfalse => Label116 IL_0F7A: ldarg.0 IL_0F7B: ldarg.1 IL_0F7C: ldarg.2 IL_0F7D: callvirt virtual System.Void VehicleAI::ArrivingToDestination(System.UInt16 vehicleID, Vehicle& vehicleData) IL_0F82: Label109 IL_0F82: Label114 IL_0F82: Label115 IL_0F82: Label116 IL_0F82: ldloc.s 21 (System.UInt32) IL_0F84: stloc.s 4 (System.UInt32) IL_0F86: ldloc.s 20 (System.Int32) IL_0F88: ldc.i4.1 IL_0F89: shl IL_0F8A: conv.u1 IL_0F8B: stloc.s 5 (System.Byte) IL_0F8D: ldloc.s 35 (System.Byte) IL_0F8F: stloc.s 6 (System.Byte) IL_0F91: ldarg.s 4 IL_0F93: ldind.i4 IL_0F94: ldc.i4.0 IL_0F95: bgt => Label117 IL_0F9A: ldarg.2 IL_0F9B: ldloc.s 5 (System.Byte) IL_0F9D: stfld System.Byte Vehicle::m_pathPositionIndex IL_0FA2: ldarg.2 IL_0FA3: ldloc.s 6 (System.Byte) IL_0FA5: stfld System.Byte Vehicle::m_lastPathOffset IL_0FAA: ldarg.2 IL_0FAB: ldarg.2 IL_0FAC: ldfld Flags Vehicle::m_flags IL_0FB1: ldc.i4 -822083585 IL_0FB6: and IL_0FB7: ldloc.s 24 (NetInfo) IL_0FB9: ldfld Flags NetInfo::m_setVehicleFlags IL_0FBE: or IL_0FBF: stfld Flags Vehicle::m_flags IL_0FC4: ldarg.0 IL_0FC5: ldloc.s 26 (NetInfo+Lane) IL_0FC7: callvirt virtual System.Boolean VehicleAI::LeftHandDrive(Lane lane) IL_0FCC: brfalse => Label118 IL_0FD1: ldarg.2 IL_0FD2: dup IL_0FD3: ldfld Flags Vehicle::m_flags IL_0FD8: ldc.i4 -2147483648 IL_0FDD: or IL_0FDE: stfld Flags Vehicle::m_flags IL_0FE3: br => Label119 IL_0FE8: Label118 IL_0FE8: ldarg.2 IL_0FE9: dup IL_0FEA: ldfld Flags Vehicle::m_flags IL_0FEF: ldc.i4 2147483647 IL_0FF4: and IL_0FF5: stfld Flags Vehicle::m_flags IL_0FFA: Label117 IL_0FFA: Label119 IL_0FFA: ldloc.s 22 (PathUnit+Position) IL_0FFC: stloc.s 7 (PathUnit+Position) IL_0FFE: ldloc.s 25 (System.UInt32) IL_1000: stloc.s 9 (System.UInt32) IL_1002: ldloc.s 24 (NetInfo) IL_1004: stloc.s 8 (NetInfo) IL_1006: ldloc.s 26 (NetInfo+Lane) IL_1008: stloc.s 10 (NetInfo+Lane) IL_100A: br => Label120 IL_100F: // end original IL_100F: Label121 IL_100F: Label122 IL_100F: Label123 IL_100F: Label124 IL_100F: Label125 IL_100F: Label126 IL_100F: Label127 IL_100F: Label128 IL_100F: Label129 IL_100F: Label130 IL_100F: Label131 IL_100F: Label132 IL_100F: Label133 IL_100F: Label134 IL_100F: Label135 IL_100F: Label0 IL_100F: ret DONE ### Patch: virtual System.Boolean AmbulanceAI::StartPathFind(System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays, System.Boolean undergroundTarget) ### Replacement: static System.Boolean AmbulanceAI::AmbulanceAI.StartPathFind_Patch1(AmbulanceAI this, System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays, System.Boolean undergroundTarget) IL_0000: Local var 0: VehicleInfo IL_0000: Local var 1: PathUnit/Position IL_0000: Local var 2: PathUnit/Position IL_0000: Local var 3: PathUnit/Position IL_0000: Local var 4: PathUnit/Position IL_0000: Local var 5: System.Single IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Single IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Boolean IL_0000: Local var 10: System.UInt32 IL_0000: Local var 11: PathUnit/Position IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 12 (System.Boolean) IL_0009: ldc.i4 0 IL_000E: stloc 13 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 13 (System.Boolean) IL_0017: ldloc 13 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldarg 1 IL_0024: ldarg 2 IL_0028: call static System.Void TrafficManager.Patch._VehicleAI._AmbulanceAI.StartPathFindPatch::Prefix(System.UInt16 vehicleID, Vehicle& vehicleData) IL_002D: Label1 IL_002D: nop IL_002E: ldloc 13 (System.Boolean) IL_0032: brfalse => Label0 IL_0037: // start original IL_0037: ldarg.0 IL_0038: ldfld VehicleInfo VehicleAI::m_info IL_003D: stloc.0 IL_003E: ldarg.2 IL_003F: ldfld Flags Vehicle::m_flags IL_0044: ldc.i4 805306368 IL_0049: and IL_004A: ldc.i4.0 IL_004B: ceq IL_004D: ldc.i4.0 IL_004E: ceq IL_0050: stloc.s 9 (System.Boolean) IL_0052: ldarg.3 IL_0053: ldc.i4.s 9 IL_0055: ldc.i4.s 33 IL_0057: ldloc.0 IL_0058: ldfld VehicleType VehicleInfo::m_vehicleType IL_005D: ldloc.0 IL_005E: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_0063: ldloc.s 9 (System.Boolean) IL_0065: ldc.i4.0 IL_0066: ldc.r4 32 IL_006B: ldloca.s 1 (PathUnit+Position) IL_006D: ldloca.s 2 (PathUnit+Position) IL_006F: ldloca.s 5 (System.Single) IL_0071: ldloca.s 6 (System.Single) IL_0073: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_0078: brfalse => Label2 IL_007D: ldarg.s 4 IL_007F: ldc.i4.s 9 IL_0081: ldc.i4.s 33 IL_0083: ldloc.0 IL_0084: ldfld VehicleType VehicleInfo::m_vehicleType IL_0089: ldloc.0 IL_008A: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_008F: ldarg.s 7 IL_0091: ldc.i4.0 IL_0092: ldc.r4 32 IL_0097: ldloca.s 3 (PathUnit+Position) IL_0099: ldloca.s 4 (PathUnit+Position) IL_009B: ldloca.s 7 (System.Single) IL_009D: ldloca.s 8 (System.Single) IL_009F: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_00A4: brfalse => Label3 IL_00A9: ldarg.s 5 IL_00AB: brfalse => Label4 IL_00B0: ldloc.s 5 (System.Single) IL_00B2: ldc.r4 10 IL_00B7: bge.un => Label5 IL_00BC: Label4 IL_00BC: ldloca.s 2 (PathUnit+Position) IL_00BE: initobj PathUnit+Position IL_00C4: Label5 IL_00C4: ldarg.s 6 IL_00C6: brfalse => Label6 IL_00CB: ldloc.s 7 (System.Single) IL_00CD: ldc.r4 10 IL_00D2: bge.un => Label7 IL_00D7: Label6 IL_00D7: ldloca.s 4 (PathUnit+Position) IL_00D9: initobj PathUnit+Position IL_00DF: Label7 IL_00DF: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_00E4: ldloca.s 10 (System.UInt32) IL_00E6: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_00EB: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_00F0: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_00F5: ldfld System.UInt32 SimulationManager::m_currentBuildIndex IL_00FA: ldloc.1 IL_00FB: ldloc.2 IL_00FC: ldloc.3 IL_00FD: ldloc.s 4 (PathUnit+Position) IL_00FF: ldloca.s 11 (PathUnit+Position) IL_0101: initobj PathUnit+Position IL_0107: ldloc.s 11 (PathUnit+Position) IL_0109: ldc.i4.s 33 IL_010B: ldloc.0 IL_010C: ldfld VehicleType VehicleInfo::m_vehicleType IL_0111: ldloc.0 IL_0112: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_0117: ldc.r4 20000 IL_011C: ldarg.0 IL_011D: callvirt virtual System.Boolean CarAI::IsHeavyVehicle() IL_0122: ldarg.0 IL_0123: ldarg.1 IL_0124: ldarg.2 IL_0125: callvirt virtual System.Boolean VehicleAI::IgnoreBlocked(System.UInt16 vehicleID, Vehicle& vehicleData) IL_012A: ldc.i4.0 IL_012B: ldc.i4.0 IL_012C: ldc.i4.0 IL_012D: ldc.i4.0 IL_012E: ldarg.0 IL_012F: callvirt virtual System.Boolean CarAI::CombustionEngine() IL_0134: callvirt System.Boolean PathManager::CreatePath(System.UInt32& unit, ColossalFramework.Math.Randomizer& randomizer, System.UInt32 buildIndex, Position startPosA, Position startPosB, Position endPosA, Position endPosB, Position vehiclePosition, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, System.Single maxLength, System.Boolean isHeavyVehicle, System.Boolean ignoreBlocked, System.Boolean stablePath, System.Boolean skipQueue, System.Boolean randomParking, System.Boolean ignoreFlooded, System.Boolean combustionEngine) IL_0139: brfalse => Label8 IL_013E: ldarg.2 IL_013F: ldfld System.UInt32 Vehicle::m_path IL_0144: brfalse => Label9 IL_0149: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_014E: ldarg.2 IL_014F: ldfld System.UInt32 Vehicle::m_path IL_0154: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit) IL_0159: Label9 IL_0159: ldarg.2 IL_015A: ldloc.s 10 (System.UInt32) IL_015C: stfld System.UInt32 Vehicle::m_path IL_0161: ldarg.2 IL_0162: dup IL_0163: ldfld Flags Vehicle::m_flags IL_0168: ldc.i4 256 IL_016D: or IL_016E: stfld Flags Vehicle::m_flags IL_0173: ldc.i4.1 IL_0174: br => Label11 IL_0179: Label8 IL_0179: br => Label10 IL_017E: Label2 IL_017E: Label3 IL_017E: ldarg.0 IL_017F: ldarg.1 IL_0180: ldarg.2 IL_0181: callvirt virtual System.Void CarAI::PathfindFailure(System.UInt16 vehicleID, Vehicle& data) IL_0186: Label10 IL_0186: ldc.i4.0 IL_0187: // end original IL_0187: Label11 IL_0187: stloc 12 (System.Boolean) IL_018B: Label0 IL_018B: ldloc 12 (System.Boolean) IL_018F: ret DONE ### Patch: virtual System.Boolean FireTruckAI::StartPathFind(System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays, System.Boolean undergroundTarget) ### Replacement: static System.Boolean FireTruckAI::FireTruckAI.StartPathFind_Patch1(FireTruckAI this, System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays, System.Boolean undergroundTarget) IL_0000: Local var 0: VehicleInfo IL_0000: Local var 1: PathUnit/Position IL_0000: Local var 2: PathUnit/Position IL_0000: Local var 3: PathUnit/Position IL_0000: Local var 4: PathUnit/Position IL_0000: Local var 5: System.Single IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Single IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Boolean IL_0000: Local var 10: System.UInt32 IL_0000: Local var 11: PathUnit/Position IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 12 (System.Boolean) IL_0009: ldc.i4 0 IL_000E: stloc 13 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 13 (System.Boolean) IL_0017: ldloc 13 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldarg 1 IL_0024: ldarg 2 IL_0028: call static System.Void TrafficManager.Patch._VehicleAI._FireTruckAI.StartPathFindPatch::Prefix(System.UInt16 vehicleID, Vehicle& vehicleData) IL_002D: Label1 IL_002D: nop IL_002E: ldloc 13 (System.Boolean) IL_0032: brfalse => Label0 IL_0037: // start original IL_0037: ldarg.0 IL_0038: ldfld VehicleInfo VehicleAI::m_info IL_003D: stloc.0 IL_003E: ldarg.2 IL_003F: ldfld Flags Vehicle::m_flags IL_0044: ldc.i4 805306368 IL_0049: and IL_004A: ldc.i4.0 IL_004B: ceq IL_004D: ldc.i4.0 IL_004E: ceq IL_0050: stloc.s 9 (System.Boolean) IL_0052: ldarg.3 IL_0053: ldc.i4.s 9 IL_0055: ldc.i4.s 33 IL_0057: ldloc.0 IL_0058: ldfld VehicleType VehicleInfo::m_vehicleType IL_005D: ldloc.0 IL_005E: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_0063: ldloc.s 9 (System.Boolean) IL_0065: ldc.i4.0 IL_0066: ldc.r4 32 IL_006B: ldloca.s 1 (PathUnit+Position) IL_006D: ldloca.s 2 (PathUnit+Position) IL_006F: ldloca.s 5 (System.Single) IL_0071: ldloca.s 6 (System.Single) IL_0073: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_0078: brfalse => Label2 IL_007D: ldarg.s 4 IL_007F: ldc.i4.s 9 IL_0081: ldc.i4.s 33 IL_0083: ldloc.0 IL_0084: ldfld VehicleType VehicleInfo::m_vehicleType IL_0089: ldloc.0 IL_008A: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_008F: ldarg.s 7 IL_0091: ldc.i4.0 IL_0092: ldc.r4 32 IL_0097: ldloca.s 3 (PathUnit+Position) IL_0099: ldloca.s 4 (PathUnit+Position) IL_009B: ldloca.s 7 (System.Single) IL_009D: ldloca.s 8 (System.Single) IL_009F: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_00A4: brfalse => Label3 IL_00A9: ldarg.s 5 IL_00AB: brfalse => Label4 IL_00B0: ldloc.s 5 (System.Single) IL_00B2: ldc.r4 10 IL_00B7: bge.un => Label5 IL_00BC: Label4 IL_00BC: ldloca.s 2 (PathUnit+Position) IL_00BE: initobj PathUnit+Position IL_00C4: Label5 IL_00C4: ldarg.s 6 IL_00C6: brfalse => Label6 IL_00CB: ldloc.s 7 (System.Single) IL_00CD: ldc.r4 10 IL_00D2: bge.un => Label7 IL_00D7: Label6 IL_00D7: ldloca.s 4 (PathUnit+Position) IL_00D9: initobj PathUnit+Position IL_00DF: Label7 IL_00DF: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_00E4: ldloca.s 10 (System.UInt32) IL_00E6: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_00EB: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_00F0: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_00F5: ldfld System.UInt32 SimulationManager::m_currentBuildIndex IL_00FA: ldloc.1 IL_00FB: ldloc.2 IL_00FC: ldloc.3 IL_00FD: ldloc.s 4 (PathUnit+Position) IL_00FF: ldloca.s 11 (PathUnit+Position) IL_0101: initobj PathUnit+Position IL_0107: ldloc.s 11 (PathUnit+Position) IL_0109: ldc.i4.s 33 IL_010B: ldloc.0 IL_010C: ldfld VehicleType VehicleInfo::m_vehicleType IL_0111: ldloc.0 IL_0112: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_0117: ldc.r4 20000 IL_011C: ldarg.0 IL_011D: callvirt virtual System.Boolean CarAI::IsHeavyVehicle() IL_0122: ldarg.0 IL_0123: ldarg.1 IL_0124: ldarg.2 IL_0125: callvirt virtual System.Boolean VehicleAI::IgnoreBlocked(System.UInt16 vehicleID, Vehicle& vehicleData) IL_012A: ldc.i4.0 IL_012B: ldc.i4.0 IL_012C: ldc.i4.0 IL_012D: ldc.i4.0 IL_012E: ldarg.0 IL_012F: callvirt virtual System.Boolean CarAI::CombustionEngine() IL_0134: callvirt System.Boolean PathManager::CreatePath(System.UInt32& unit, ColossalFramework.Math.Randomizer& randomizer, System.UInt32 buildIndex, Position startPosA, Position startPosB, Position endPosA, Position endPosB, Position vehiclePosition, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, System.Single maxLength, System.Boolean isHeavyVehicle, System.Boolean ignoreBlocked, System.Boolean stablePath, System.Boolean skipQueue, System.Boolean randomParking, System.Boolean ignoreFlooded, System.Boolean combustionEngine) IL_0139: brfalse => Label8 IL_013E: ldarg.2 IL_013F: ldfld System.UInt32 Vehicle::m_path IL_0144: brfalse => Label9 IL_0149: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_014E: ldarg.2 IL_014F: ldfld System.UInt32 Vehicle::m_path IL_0154: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit) IL_0159: Label9 IL_0159: ldarg.2 IL_015A: ldloc.s 10 (System.UInt32) IL_015C: stfld System.UInt32 Vehicle::m_path IL_0161: ldarg.2 IL_0162: dup IL_0163: ldfld Flags Vehicle::m_flags IL_0168: ldc.i4 256 IL_016D: or IL_016E: stfld Flags Vehicle::m_flags IL_0173: ldc.i4.1 IL_0174: br => Label11 IL_0179: Label8 IL_0179: br => Label10 IL_017E: Label2 IL_017E: Label3 IL_017E: ldarg.0 IL_017F: ldarg.1 IL_0180: ldarg.2 IL_0181: callvirt virtual System.Void CarAI::PathfindFailure(System.UInt16 vehicleID, Vehicle& data) IL_0186: Label10 IL_0186: ldc.i4.0 IL_0187: // end original IL_0187: Label11 IL_0187: stloc 12 (System.Boolean) IL_018B: Label0 IL_018B: ldloc 12 (System.Boolean) IL_018F: ret DONE ### Patch: virtual System.Boolean PoliceCarAI::StartPathFind(System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays, System.Boolean undergroundTarget) ### Replacement: static System.Boolean PoliceCarAI::PoliceCarAI.StartPathFind_Patch1(PoliceCarAI this, System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays, System.Boolean undergroundTarget) IL_0000: Local var 0: VehicleInfo IL_0000: Local var 1: PathUnit/Position IL_0000: Local var 2: PathUnit/Position IL_0000: Local var 3: PathUnit/Position IL_0000: Local var 4: PathUnit/Position IL_0000: Local var 5: System.Single IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Single IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Boolean IL_0000: Local var 10: System.UInt32 IL_0000: Local var 11: PathUnit/Position IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 12 (System.Boolean) IL_0009: ldc.i4 0 IL_000E: stloc 13 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 13 (System.Boolean) IL_0017: ldloc 13 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldarg 1 IL_0024: ldarg 2 IL_0028: call static System.Void TrafficManager.Patch._VehicleAI._PoliceCarAI.StartPathFindPatch::Prefix(System.UInt16 vehicleID, Vehicle& vehicleData) IL_002D: Label1 IL_002D: nop IL_002E: ldloc 13 (System.Boolean) IL_0032: brfalse => Label0 IL_0037: // start original IL_0037: ldarg.0 IL_0038: ldfld VehicleInfo VehicleAI::m_info IL_003D: stloc.0 IL_003E: ldarg.2 IL_003F: ldfld Flags Vehicle::m_flags IL_0044: ldc.i4 805306368 IL_0049: and IL_004A: ldc.i4.0 IL_004B: ceq IL_004D: ldc.i4.0 IL_004E: ceq IL_0050: stloc.s 9 (System.Boolean) IL_0052: ldarg.3 IL_0053: ldc.i4.s 9 IL_0055: ldc.i4.s 33 IL_0057: ldloc.0 IL_0058: ldfld VehicleType VehicleInfo::m_vehicleType IL_005D: ldloc.0 IL_005E: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_0063: ldloc.s 9 (System.Boolean) IL_0065: ldc.i4.0 IL_0066: ldc.r4 32 IL_006B: ldloca.s 1 (PathUnit+Position) IL_006D: ldloca.s 2 (PathUnit+Position) IL_006F: ldloca.s 5 (System.Single) IL_0071: ldloca.s 6 (System.Single) IL_0073: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_0078: brfalse => Label2 IL_007D: ldarg.s 4 IL_007F: ldc.i4.s 9 IL_0081: ldc.i4.s 33 IL_0083: ldloc.0 IL_0084: ldfld VehicleType VehicleInfo::m_vehicleType IL_0089: ldloc.0 IL_008A: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_008F: ldarg.s 7 IL_0091: ldc.i4.0 IL_0092: ldc.r4 32 IL_0097: ldloca.s 3 (PathUnit+Position) IL_0099: ldloca.s 4 (PathUnit+Position) IL_009B: ldloca.s 7 (System.Single) IL_009D: ldloca.s 8 (System.Single) IL_009F: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_00A4: brfalse => Label3 IL_00A9: ldarg.s 5 IL_00AB: brfalse => Label4 IL_00B0: ldloc.s 5 (System.Single) IL_00B2: ldc.r4 10 IL_00B7: bge.un => Label5 IL_00BC: Label4 IL_00BC: ldloca.s 2 (PathUnit+Position) IL_00BE: initobj PathUnit+Position IL_00C4: Label5 IL_00C4: ldarg.s 6 IL_00C6: brfalse => Label6 IL_00CB: ldloc.s 7 (System.Single) IL_00CD: ldc.r4 10 IL_00D2: bge.un => Label7 IL_00D7: Label6 IL_00D7: ldloca.s 4 (PathUnit+Position) IL_00D9: initobj PathUnit+Position IL_00DF: Label7 IL_00DF: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_00E4: ldloca.s 10 (System.UInt32) IL_00E6: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_00EB: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_00F0: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_00F5: ldfld System.UInt32 SimulationManager::m_currentBuildIndex IL_00FA: ldloc.1 IL_00FB: ldloc.2 IL_00FC: ldloc.3 IL_00FD: ldloc.s 4 (PathUnit+Position) IL_00FF: ldloca.s 11 (PathUnit+Position) IL_0101: initobj PathUnit+Position IL_0107: ldloc.s 11 (PathUnit+Position) IL_0109: ldc.i4.s 33 IL_010B: ldloc.0 IL_010C: ldfld VehicleType VehicleInfo::m_vehicleType IL_0111: ldloc.0 IL_0112: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_0117: ldc.r4 20000 IL_011C: ldarg.0 IL_011D: callvirt virtual System.Boolean CarAI::IsHeavyVehicle() IL_0122: ldarg.0 IL_0123: ldarg.1 IL_0124: ldarg.2 IL_0125: callvirt virtual System.Boolean VehicleAI::IgnoreBlocked(System.UInt16 vehicleID, Vehicle& vehicleData) IL_012A: ldc.i4.0 IL_012B: ldc.i4.0 IL_012C: ldc.i4.0 IL_012D: ldc.i4.0 IL_012E: ldarg.0 IL_012F: callvirt virtual System.Boolean CarAI::CombustionEngine() IL_0134: callvirt System.Boolean PathManager::CreatePath(System.UInt32& unit, ColossalFramework.Math.Randomizer& randomizer, System.UInt32 buildIndex, Position startPosA, Position startPosB, Position endPosA, Position endPosB, Position vehiclePosition, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, System.Single maxLength, System.Boolean isHeavyVehicle, System.Boolean ignoreBlocked, System.Boolean stablePath, System.Boolean skipQueue, System.Boolean randomParking, System.Boolean ignoreFlooded, System.Boolean combustionEngine) IL_0139: brfalse => Label8 IL_013E: ldarg.2 IL_013F: ldfld System.UInt32 Vehicle::m_path IL_0144: brfalse => Label9 IL_0149: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_014E: ldarg.2 IL_014F: ldfld System.UInt32 Vehicle::m_path IL_0154: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit) IL_0159: Label9 IL_0159: ldarg.2 IL_015A: ldloc.s 10 (System.UInt32) IL_015C: stfld System.UInt32 Vehicle::m_path IL_0161: ldarg.2 IL_0162: dup IL_0163: ldfld Flags Vehicle::m_flags IL_0168: ldc.i4 256 IL_016D: or IL_016E: stfld Flags Vehicle::m_flags IL_0173: ldc.i4.1 IL_0174: br => Label10 IL_0179: Label2 IL_0179: Label3 IL_0179: Label8 IL_0179: ldc.i4.0 IL_017A: // end original IL_017A: Label10 IL_017A: stloc 12 (System.Boolean) IL_017E: Label0 IL_017E: ldloc 12 (System.Boolean) IL_0182: ret DONE ### Patch: virtual System.Boolean PostVanAI::StartPathFind(System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays, System.Boolean undergroundTarget) ### Replacement: static System.Boolean PostVanAI::PostVanAI.StartPathFind_Patch1(PostVanAI this, System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays, System.Boolean undergroundTarget) IL_0000: Local var 0: PathUnit/Position IL_0000: Local var 1: PathUnit/Position IL_0000: Local var 2: PathUnit/Position IL_0000: Local var 3: PathUnit/Position IL_0000: Local var 4: System.Single IL_0000: Local var 5: System.Single IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Single IL_0000: Local var 8: System.Boolean IL_0000: Local var 9: System.Boolean IL_0000: Local var 10: PathUnit/Position IL_0000: Local var 11: PathUnit/Position IL_0000: Local var 12: System.Single IL_0000: Local var 13: System.Single IL_0000: Local var 14: ItemClass/Service IL_0000: Local var 15: VehicleInfo/VehicleType IL_0000: Local var 16: System.Boolean IL_0000: Local var 17: PathUnit/Position IL_0000: Local var 18: PathUnit/Position IL_0000: Local var 19: System.Single IL_0000: Local var 20: System.Single IL_0000: Local var 21: ItemClass/Service IL_0000: Local var 22: VehicleInfo/VehicleType IL_0000: Local var 23: PathManager IL_0000: Local var 24: NetInfo/LaneType IL_0000: Local var 25: VehicleInfo/VehicleType IL_0000: Local var 26: VehicleInfo/VehicleCategory IL_0000: Local var 27: System.UInt32 IL_0000: Local var 28: PathUnit/Position IL_0000: Local var 29: System.Boolean IL_0000: Local var 30: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 29 (System.Boolean) IL_0009: ldc.i4 0 IL_000E: stloc 30 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 30 (System.Boolean) IL_0017: ldloc 30 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldarg 1 IL_0024: ldarg 2 IL_0028: call static System.Void TrafficManager.Patch._VehicleAI._PostVanAI.StartPathFindPatch::Prefix(System.UInt16 vehicleID, Vehicle& vehicleData) IL_002D: Label1 IL_002D: nop IL_002E: ldloc 30 (System.Boolean) IL_0032: brfalse => Label0 IL_0037: // start original IL_0037: ldarg.2 IL_0038: ldfld Flags2 Vehicle::m_flags2 IL_003D: ldc.i4.s 16 IL_003F: and IL_0040: brtrue => Label2 IL_0045: ldarg.2 IL_0046: ldfld System.Byte Vehicle::m_transferType IL_004B: ldc.i4.s 92 IL_004D: bne.un => Label3 IL_0052: ldarg.0 IL_0053: ldarg.1 IL_0054: ldarg.2 IL_0055: ldarg.3 IL_0056: ldarg.s 4 IL_0058: ldarg.s 5 IL_005A: ldarg.s 6 IL_005C: ldarg.s 7 IL_005E: call virtual System.Boolean CarAI::StartPathFind(System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays, System.Boolean undergroundTarget) IL_0063: br => Label31 IL_0068: Label3 IL_0068: ldarg.2 IL_0069: ldfld Flags Vehicle::m_flags IL_006E: ldc.i4 262176 IL_0073: and IL_0074: brfalse => Label4 IL_0079: ldarg.0 IL_007A: ldarg.1 IL_007B: ldarg.2 IL_007C: ldarg.3 IL_007D: ldarg.s 4 IL_007F: ldarg.s 5 IL_0081: ldarg.s 6 IL_0083: ldarg.s 7 IL_0085: call virtual System.Boolean CarAI::StartPathFind(System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays, System.Boolean undergroundTarget) IL_008A: br => Label32 IL_008F: Label2 IL_008F: Label4 IL_008F: ldarg.2 IL_0090: ldfld Flags Vehicle::m_flags IL_0095: ldc.i4 805306368 IL_009A: and IL_009B: ldc.i4.0 IL_009C: ceq IL_009E: ldc.i4.0 IL_009F: ceq IL_00A1: stloc.s 8 (System.Boolean) IL_00A3: ldarg.3 IL_00A4: ldc.i4.s 9 IL_00A6: ldc.i4.s 33 IL_00A8: ldc.i4.1 IL_00A9: ldarg.2 IL_00AA: call VehicleInfo Vehicle::get_Info() IL_00AF: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_00B4: ldloc.s 8 (System.Boolean) IL_00B6: ldc.i4.0 IL_00B7: ldc.r4 32 IL_00BC: ldloca.s 0 (PathUnit+Position) IL_00BE: ldloca.s 1 (PathUnit+Position) IL_00C0: ldloca.s 4 (System.Single) IL_00C2: ldloca.s 5 (System.Single) IL_00C4: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_00C9: stloc.s 9 (System.Boolean) IL_00CB: ldarg.2 IL_00CC: ldfld Flags2 Vehicle::m_flags2 IL_00D1: ldc.i4.s 16 IL_00D3: and IL_00D4: brtrue => Label5 IL_00D9: ldc.i4.s 19 IL_00DB: br => Label6 IL_00E0: Label5 IL_00E0: ldc.i4.s 12 IL_00E2: Label6 IL_00E2: stloc.s 14 (ItemClass+Service) IL_00E4: ldarg.2 IL_00E5: ldfld Flags2 Vehicle::m_flags2 IL_00EA: ldc.i4.s 16 IL_00EC: and IL_00ED: brtrue => Label7 IL_00F2: ldc.i4.s 28 IL_00F4: br => Label8 IL_00F9: Label7 IL_00F9: ldc.i4.1 IL_00FA: Label8 IL_00FA: stloc.s 15 (VehicleInfo+VehicleType) IL_00FC: ldarg.3 IL_00FD: ldloc.s 14 (ItemClass+Service) IL_00FF: ldc.i4.1 IL_0100: ldloc.s 15 (VehicleInfo+VehicleType) IL_0102: ldarg.2 IL_0103: call VehicleInfo Vehicle::get_Info() IL_0108: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_010D: ldc.i4 139396 IL_0112: conv.i8 IL_0113: or IL_0114: ldloc.s 8 (System.Boolean) IL_0116: ldc.i4.0 IL_0117: ldc.r4 32 IL_011C: ldloca.s 10 (PathUnit+Position) IL_011E: ldloca.s 11 (PathUnit+Position) IL_0120: ldloca.s 12 (System.Single) IL_0122: ldloca.s 13 (System.Single) IL_0124: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_0129: brfalse => Label9 IL_012E: ldloc.s 9 (System.Boolean) IL_0130: brfalse => Label10 IL_0135: ldloc.s 12 (System.Single) IL_0137: ldloc.s 4 (System.Single) IL_0139: bge.un => Label11 IL_013E: ldarga.s 3 IL_0140: ldfld System.Single UnityEngine.Vector3::x IL_0145: call static System.Single UnityEngine.Mathf::Abs(System.Single f) IL_014A: ldc.r4 8540 IL_014F: bgt => Label12 IL_0154: ldarga.s 3 IL_0156: ldfld System.Single UnityEngine.Vector3::z IL_015B: call static System.Single UnityEngine.Mathf::Abs(System.Single f) IL_0160: ldc.r4 8540 IL_0165: ble.un => Label13 IL_016A: Label10 IL_016A: Label12 IL_016A: ldloc.s 10 (PathUnit+Position) IL_016C: stloc.0 IL_016D: ldloc.s 11 (PathUnit+Position) IL_016F: stloc.1 IL_0170: ldloc.s 12 (System.Single) IL_0172: stloc.s 4 (System.Single) IL_0174: ldloc.s 13 (System.Single) IL_0176: stloc.s 5 (System.Single) IL_0178: Label11 IL_0178: Label13 IL_0178: ldc.i4.1 IL_0179: stloc.s 9 (System.Boolean) IL_017B: Label9 IL_017B: ldarg.s 4 IL_017D: ldc.i4.s 9 IL_017F: ldc.i4.s 33 IL_0181: ldc.i4.1 IL_0182: ldarg.2 IL_0183: call VehicleInfo Vehicle::get_Info() IL_0188: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_018D: ldarg.s 7 IL_018F: ldc.i4.0 IL_0190: ldc.r4 32 IL_0195: ldloca.s 2 (PathUnit+Position) IL_0197: ldloca.s 3 (PathUnit+Position) IL_0199: ldloca.s 6 (System.Single) IL_019B: ldloca.s 7 (System.Single) IL_019D: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_01A2: stloc.s 16 (System.Boolean) IL_01A4: ldarg.2 IL_01A5: ldfld Flags2 Vehicle::m_flags2 IL_01AA: ldc.i4.s 16 IL_01AC: and IL_01AD: brtrue => Label14 IL_01B2: ldc.i4.s 19 IL_01B4: br => Label15 IL_01B9: Label14 IL_01B9: ldc.i4.s 12 IL_01BB: Label15 IL_01BB: stloc.s 21 (ItemClass+Service) IL_01BD: ldarg.2 IL_01BE: ldfld Flags2 Vehicle::m_flags2 IL_01C3: ldc.i4.s 16 IL_01C5: and IL_01C6: brtrue => Label16 IL_01CB: ldc.i4.s 28 IL_01CD: br => Label17 IL_01D2: Label16 IL_01D2: ldc.i4.1 IL_01D3: Label17 IL_01D3: stloc.s 22 (VehicleInfo+VehicleType) IL_01D5: ldarg.s 4 IL_01D7: ldloc.s 21 (ItemClass+Service) IL_01D9: ldc.i4.1 IL_01DA: ldloc.s 22 (VehicleInfo+VehicleType) IL_01DC: ldarg.2 IL_01DD: call VehicleInfo Vehicle::get_Info() IL_01E2: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_01E7: ldc.i4 139396 IL_01EC: conv.i8 IL_01ED: or IL_01EE: ldarg.s 7 IL_01F0: ldc.i4.0 IL_01F1: ldc.r4 32 IL_01F6: ldloca.s 17 (PathUnit+Position) IL_01F8: ldloca.s 18 (PathUnit+Position) IL_01FA: ldloca.s 19 (System.Single) IL_01FC: ldloca.s 20 (System.Single) IL_01FE: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_0203: brfalse => Label18 IL_0208: ldloc.s 16 (System.Boolean) IL_020A: brfalse => Label19 IL_020F: ldloc.s 19 (System.Single) IL_0211: ldloc.s 6 (System.Single) IL_0213: bge.un => Label20 IL_0218: ldarga.s 4 IL_021A: ldfld System.Single UnityEngine.Vector3::x IL_021F: call static System.Single UnityEngine.Mathf::Abs(System.Single f) IL_0224: ldc.r4 8540 IL_0229: bgt => Label21 IL_022E: ldarga.s 4 IL_0230: ldfld System.Single UnityEngine.Vector3::z IL_0235: call static System.Single UnityEngine.Mathf::Abs(System.Single f) IL_023A: ldc.r4 8540 IL_023F: ble.un => Label22 IL_0244: Label19 IL_0244: Label21 IL_0244: ldloc.s 17 (PathUnit+Position) IL_0246: stloc.2 IL_0247: ldloc.s 18 (PathUnit+Position) IL_0249: stloc.3 IL_024A: ldloc.s 19 (System.Single) IL_024C: stloc.s 6 (System.Single) IL_024E: ldloc.s 20 (System.Single) IL_0250: stloc.s 7 (System.Single) IL_0252: Label20 IL_0252: Label22 IL_0252: ldc.i4.1 IL_0253: stloc.s 16 (System.Boolean) IL_0255: Label18 IL_0255: ldloc.s 9 (System.Boolean) IL_0257: brfalse => Label23 IL_025C: ldloc.s 16 (System.Boolean) IL_025E: brfalse => Label24 IL_0263: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_0268: stloc.s 23 (PathManager) IL_026A: ldarg.s 5 IL_026C: brfalse => Label25 IL_0271: ldloc.s 4 (System.Single) IL_0273: ldc.r4 10 IL_0278: bge.un => Label26 IL_027D: Label25 IL_027D: ldloca.s 1 (PathUnit+Position) IL_027F: initobj PathUnit+Position IL_0285: Label26 IL_0285: ldarg.s 6 IL_0287: brfalse => Label27 IL_028C: ldloc.s 6 (System.Single) IL_028E: ldc.r4 10 IL_0293: bge.un => Label28 IL_0298: Label27 IL_0298: ldloca.s 3 (PathUnit+Position) IL_029A: initobj PathUnit+Position IL_02A0: Label28 IL_02A0: ldc.i4.s 17 IL_02A2: stloc.s 24 (NetInfo+LaneType) IL_02A4: ldc.i4.s 29 IL_02A6: stloc.s 25 (VehicleInfo+VehicleType) IL_02A8: ldarg.2 IL_02A9: call VehicleInfo Vehicle::get_Info() IL_02AE: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_02B3: ldc.i4 139396 IL_02B8: conv.i8 IL_02B9: or IL_02BA: stloc.s 26 (VehicleInfo+VehicleCategory) IL_02BC: ldloc.s 23 (PathManager) IL_02BE: ldloca.s 27 (System.UInt32) IL_02C0: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_02C5: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_02CA: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_02CF: ldfld System.UInt32 SimulationManager::m_currentBuildIndex IL_02D4: ldloc.0 IL_02D5: ldloc.1 IL_02D6: ldloc.2 IL_02D7: ldloc.3 IL_02D8: ldloca.s 28 (PathUnit+Position) IL_02DA: initobj PathUnit+Position IL_02E0: ldloc.s 28 (PathUnit+Position) IL_02E2: ldloc.s 24 (NetInfo+LaneType) IL_02E4: ldloc.s 25 (VehicleInfo+VehicleType) IL_02E6: ldloc.s 26 (VehicleInfo+VehicleCategory) IL_02E8: ldc.r4 20000 IL_02ED: ldarg.0 IL_02EE: callvirt virtual System.Boolean CarAI::IsHeavyVehicle() IL_02F3: ldarg.0 IL_02F4: ldarg.1 IL_02F5: ldarg.2 IL_02F6: callvirt virtual System.Boolean VehicleAI::IgnoreBlocked(System.UInt16 vehicleID, Vehicle& vehicleData) IL_02FB: ldc.i4.0 IL_02FC: ldc.i4.0 IL_02FD: ldc.i4.0 IL_02FE: ldc.i4.0 IL_02FF: ldarg.0 IL_0300: callvirt virtual System.Boolean CarAI::CombustionEngine() IL_0305: callvirt System.Boolean PathManager::CreatePath(System.UInt32& unit, ColossalFramework.Math.Randomizer& randomizer, System.UInt32 buildIndex, Position startPosA, Position startPosB, Position endPosA, Position endPosB, Position vehiclePosition, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, System.Single maxLength, System.Boolean isHeavyVehicle, System.Boolean ignoreBlocked, System.Boolean stablePath, System.Boolean skipQueue, System.Boolean randomParking, System.Boolean ignoreFlooded, System.Boolean combustionEngine) IL_030A: brfalse => Label29 IL_030F: ldarg.2 IL_0310: ldfld System.UInt32 Vehicle::m_path IL_0315: brfalse => Label30 IL_031A: ldloc.s 23 (PathManager) IL_031C: ldarg.2 IL_031D: ldfld System.UInt32 Vehicle::m_path IL_0322: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit) IL_0327: Label30 IL_0327: ldarg.2 IL_0328: ldloc.s 27 (System.UInt32) IL_032A: stfld System.UInt32 Vehicle::m_path IL_032F: ldarg.2 IL_0330: dup IL_0331: ldfld Flags Vehicle::m_flags IL_0336: ldc.i4 256 IL_033B: or IL_033C: stfld Flags Vehicle::m_flags IL_0341: ldc.i4.1 IL_0342: br => Label33 IL_0347: Label23 IL_0347: Label24 IL_0347: Label29 IL_0347: ldc.i4.0 IL_0348: // end original IL_0348: Label31 IL_0348: Label32 IL_0348: Label33 IL_0348: stloc 29 (System.Boolean) IL_034C: Label0 IL_034C: ldloc 29 (System.Boolean) IL_0350: ret DONE ### Patch: virtual System.Boolean ShipAI::StartPathFind(System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays) ### Replacement: static System.Boolean ShipAI::ShipAI.StartPathFind_Patch1(ShipAI this, System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays) IL_0000: Local var 0: VehicleInfo IL_0000: Local var 1: PathUnit/Position IL_0000: Local var 2: PathUnit/Position IL_0000: Local var 3: PathUnit/Position IL_0000: Local var 4: PathUnit/Position IL_0000: Local var 5: System.Single IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Single IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.UInt32 IL_0000: Local var 10: System.Boolean IL_0000: Local var 11: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 10 (System.Boolean) IL_0009: ldc.i4 0 IL_000E: stloc 11 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 11 (System.Boolean) IL_0017: ldloc 11 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldarg 1 IL_0024: ldarg 2 IL_0028: call static System.Void TrafficManager.Patch._VehicleAI._ShipAI.StartPathFindPatch::Prefix(System.UInt16 vehicleID, Vehicle& vehicleData) IL_002D: Label1 IL_002D: nop IL_002E: ldloc 11 (System.Boolean) IL_0032: brfalse => Label0 IL_0037: // start original IL_0037: ldarg.0 IL_0038: ldfld VehicleInfo VehicleAI::m_info IL_003D: stloc.0 IL_003E: ldarg.3 IL_003F: ldc.i4.s 19 IL_0041: ldc.i4.1 IL_0042: ldloc.0 IL_0043: ldfld VehicleType VehicleInfo::m_vehicleType IL_0048: ldloc.0 IL_0049: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_004E: ldc.i4.0 IL_004F: ldc.i4.0 IL_0050: ldc.r4 64 IL_0055: ldloca.s 1 (PathUnit+Position) IL_0057: ldloca.s 2 (PathUnit+Position) IL_0059: ldloca.s 5 (System.Single) IL_005B: ldloca.s 6 (System.Single) IL_005D: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_0062: brfalse => Label2 IL_0067: ldarg.s 4 IL_0069: ldc.i4.s 19 IL_006B: ldc.i4.1 IL_006C: ldloc.0 IL_006D: ldfld VehicleType VehicleInfo::m_vehicleType IL_0072: ldloc.0 IL_0073: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_0078: ldc.i4.0 IL_0079: ldc.i4.0 IL_007A: ldc.r4 64 IL_007F: ldloca.s 3 (PathUnit+Position) IL_0081: ldloca.s 4 (PathUnit+Position) IL_0083: ldloca.s 7 (System.Single) IL_0085: ldloca.s 8 (System.Single) IL_0087: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_008C: brfalse => Label3 IL_0091: ldarg.s 5 IL_0093: brfalse => Label4 IL_0098: ldloc.s 5 (System.Single) IL_009A: ldc.r4 10 IL_009F: bge.un => Label5 IL_00A4: Label4 IL_00A4: ldloca.s 2 (PathUnit+Position) IL_00A6: initobj PathUnit+Position IL_00AC: Label5 IL_00AC: ldarg.s 6 IL_00AE: brfalse => Label6 IL_00B3: ldloc.s 7 (System.Single) IL_00B5: ldc.r4 10 IL_00BA: bge.un => Label7 IL_00BF: Label6 IL_00BF: ldloca.s 4 (PathUnit+Position) IL_00C1: initobj PathUnit+Position IL_00C7: Label7 IL_00C7: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_00CC: ldloca.s 9 (System.UInt32) IL_00CE: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_00D3: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_00D8: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_00DD: ldfld System.UInt32 SimulationManager::m_currentBuildIndex IL_00E2: ldloc.1 IL_00E3: ldloc.2 IL_00E4: ldloc.3 IL_00E5: ldloc.s 4 (PathUnit+Position) IL_00E7: ldc.i4.1 IL_00E8: ldloc.0 IL_00E9: ldfld VehicleType VehicleInfo::m_vehicleType IL_00EE: ldloc.0 IL_00EF: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_00F4: ldc.r4 20000 IL_00F9: callvirt System.Boolean PathManager::CreatePath(System.UInt32& unit, ColossalFramework.Math.Randomizer& randomizer, System.UInt32 buildIndex, Position startPosA, Position startPosB, Position endPosA, Position endPosB, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, System.Single maxLength) IL_00FE: brfalse => Label8 IL_0103: ldarg.2 IL_0104: ldfld System.UInt32 Vehicle::m_path IL_0109: brfalse => Label9 IL_010E: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_0113: ldarg.2 IL_0114: ldfld System.UInt32 Vehicle::m_path IL_0119: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit) IL_011E: Label9 IL_011E: ldarg.2 IL_011F: ldloc.s 9 (System.UInt32) IL_0121: stfld System.UInt32 Vehicle::m_path IL_0126: ldarg.2 IL_0127: dup IL_0128: ldfld Flags Vehicle::m_flags IL_012D: ldc.i4 256 IL_0132: or IL_0133: stfld Flags Vehicle::m_flags IL_0138: ldc.i4.1 IL_0139: br => Label10 IL_013E: Label2 IL_013E: Label3 IL_013E: Label8 IL_013E: ldc.i4.0 IL_013F: // end original IL_013F: Label10 IL_013F: stloc 10 (System.Boolean) IL_0143: Label0 IL_0143: ldloc 10 (System.Boolean) IL_0147: ret DONE ### Patch: virtual System.Boolean TaxiAI::StartPathFind(System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays, System.Boolean undergroundTarget) ### Replacement: static System.Boolean TaxiAI::TaxiAI.StartPathFind_Patch1(TaxiAI this, System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays, System.Boolean undergroundTarget) IL_0000: Local var 0: CitizenManager IL_0000: Local var 1: System.UInt16 IL_0000: Local var 2: VehicleInfo IL_0000: Local var 3: CitizenInfo IL_0000: Local var 4: PathUnit/Position IL_0000: Local var 5: PathUnit/Position IL_0000: Local var 6: PathUnit/Position IL_0000: Local var 7: PathUnit/Position IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: NetInfo/LaneType IL_0000: Local var 11: VehicleInfo/VehicleType IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.UInt32 IL_0000: Local var 14: System.UInt32 IL_0000: Local var 15: SimulationManager IL_0000: Local var 16: System.Boolean IL_0000: Local var 17: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 16 (System.Boolean) IL_0009: ldc.i4 0 IL_000E: stloc 17 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 17 (System.Boolean) IL_0017: ldloc 17 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldarg 1 IL_0024: ldarg 2 IL_0028: call static System.Void TrafficManager.Patch._VehicleAI._TaxiAI.StartPathFindPatch::Prefix(System.UInt16 vehicleID, Vehicle& vehicleData) IL_002D: Label1 IL_002D: nop IL_002E: ldloc 17 (System.Boolean) IL_0032: brfalse => Label0 IL_0037: // start original IL_0037: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_003C: stloc.0 IL_003D: ldarg.0 IL_003E: ldarg.1 IL_003F: ldarg.2 IL_0040: call System.UInt16 TaxiAI::GetPassengerInstance(System.UInt16 vehicleID, Vehicle& data) IL_0045: stloc.1 IL_0046: ldloc.1 IL_0047: brfalse => Label2 IL_004C: ldloc.0 IL_004D: ldfld Array16`1 CitizenManager::m_instances IL_0052: ldfld CitizenInstance[] Array16`1::m_buffer IL_0057: ldloc.1 IL_0058: ldelema CitizenInstance IL_005D: ldfld Flags CitizenInstance::m_flags IL_0062: ldc.i4.s 16 IL_0064: and IL_0065: brfalse => Label3 IL_006A: Label2 IL_006A: ldarg.0 IL_006B: ldarg.1 IL_006C: ldarg.2 IL_006D: ldarg.3 IL_006E: ldarg.s 4 IL_0070: ldarg.s 5 IL_0072: ldarg.s 6 IL_0074: ldarg.s 7 IL_0076: call virtual System.Boolean CarAI::StartPathFind(System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays, System.Boolean undergroundTarget) IL_007B: br => Label13 IL_0080: Label3 IL_0080: ldarg.0 IL_0081: ldfld VehicleInfo VehicleAI::m_info IL_0086: stloc.2 IL_0087: ldloc.0 IL_0088: ldfld Array16`1 CitizenManager::m_instances IL_008D: ldfld CitizenInstance[] Array16`1::m_buffer IL_0092: ldloc.1 IL_0093: ldelema CitizenInstance IL_0098: call CitizenInfo CitizenInstance::get_Info() IL_009D: stloc.3 IL_009E: ldc.i4.s 35 IL_00A0: stloc.s 10 (NetInfo+LaneType) IL_00A2: ldarg.0 IL_00A3: ldfld VehicleInfo VehicleAI::m_info IL_00A8: ldfld VehicleType VehicleInfo::m_vehicleType IL_00AD: stloc.s 11 (VehicleInfo+VehicleType) IL_00AF: ldarg.2 IL_00B0: ldfld Flags Vehicle::m_flags IL_00B5: ldc.i4 805306368 IL_00BA: and IL_00BB: ldc.i4.0 IL_00BC: ceq IL_00BE: ldc.i4.0 IL_00BF: ceq IL_00C1: stloc.s 12 (System.Boolean) IL_00C3: ldarg.3 IL_00C4: ldc.i4.s 9 IL_00C6: ldc.i4.s 33 IL_00C8: ldloc.2 IL_00C9: ldfld VehicleType VehicleInfo::m_vehicleType IL_00CE: ldloc.2 IL_00CF: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_00D4: ldloc.s 12 (System.Boolean) IL_00D6: ldc.i4.0 IL_00D7: ldc.r4 32 IL_00DC: ldloca.s 4 (PathUnit+Position) IL_00DE: ldloca.s 5 (PathUnit+Position) IL_00E0: ldloca.s 8 (System.Single) IL_00E2: ldloca.s 9 (System.Single) IL_00E4: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_00E9: brfalse => Label4 IL_00EE: ldloc.3 IL_00EF: ldfld CitizenAI CitizenInfo::m_citizenAI IL_00F4: ldloc.1 IL_00F5: ldloc.0 IL_00F6: ldfld Array16`1 CitizenManager::m_instances IL_00FB: ldfld CitizenInstance[] Array16`1::m_buffer IL_0100: ldloc.1 IL_0101: ldelema CitizenInstance IL_0106: ldarg.s 4 IL_0108: ldloc.s 10 (NetInfo+LaneType) IL_010A: ldloc.s 11 (VehicleInfo+VehicleType) IL_010C: ldloc.2 IL_010D: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_0112: ldarg.s 7 IL_0114: ldloca.s 6 (PathUnit+Position) IL_0116: callvirt virtual System.Boolean CitizenAI::FindPathPosition(System.UInt16 instanceID, CitizenInstance& citizenData, UnityEngine.Vector3 pos, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, System.Boolean allowUnderground, Position& position) IL_011B: brfalse => Label5 IL_0120: ldloc.0 IL_0121: ldfld Array16`1 CitizenManager::m_instances IL_0126: ldfld CitizenInstance[] Array16`1::m_buffer IL_012B: ldloc.1 IL_012C: ldelema CitizenInstance IL_0131: ldfld Flags CitizenInstance::m_flags IL_0136: ldc.i4 8192 IL_013B: and IL_013C: brtrue => Label6 IL_0141: ldloc.s 10 (NetInfo+LaneType) IL_0143: ldc.i4.8 IL_0144: or IL_0145: conv.u1 IL_0146: stloc.s 10 (NetInfo+LaneType) IL_0148: ldloc.0 IL_0149: ldfld Array16`1 CitizenManager::m_instances IL_014E: ldfld CitizenInstance[] Array16`1::m_buffer IL_0153: ldloc.1 IL_0154: ldelema CitizenInstance IL_0159: ldfld System.UInt32 CitizenInstance::m_citizen IL_015E: stloc.s 13 (System.UInt32) IL_0160: ldloc.s 13 (System.UInt32) IL_0162: brfalse => Label7 IL_0167: ldloc.0 IL_0168: ldfld Array32`1 CitizenManager::m_citizens IL_016D: ldfld Citizen[] Array32`1::m_buffer IL_0172: ldloc.s 13 (System.UInt32) IL_0174: conv.u IL_0175: ldelema Citizen IL_017A: ldfld Flags Citizen::m_flags IL_017F: ldc.i4 512 IL_0184: and IL_0185: brfalse => Label8 IL_018A: ldloc.s 10 (NetInfo+LaneType) IL_018C: ldc.i4.s 64 IL_018E: or IL_018F: conv.u1 IL_0190: stloc.s 10 (NetInfo+LaneType) IL_0192: Label6 IL_0192: Label7 IL_0192: Label8 IL_0192: ldarg.s 5 IL_0194: brfalse => Label9 IL_0199: ldloc.s 8 (System.Single) IL_019B: ldc.r4 10 IL_01A0: bge.un => Label10 IL_01A5: Label9 IL_01A5: ldloca.s 5 (PathUnit+Position) IL_01A7: initobj PathUnit+Position IL_01AD: Label10 IL_01AD: ldloca.s 7 (PathUnit+Position) IL_01AF: initobj PathUnit+Position IL_01B5: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_01BA: stloc.s 15 (SimulationManager) IL_01BC: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_01C1: ldloca.s 14 (System.UInt32) IL_01C3: ldloc.s 15 (SimulationManager) IL_01C5: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_01CA: ldloc.s 15 (SimulationManager) IL_01CC: ldfld System.UInt32 SimulationManager::m_currentBuildIndex IL_01D1: ldloc.s 4 (PathUnit+Position) IL_01D3: ldloc.s 5 (PathUnit+Position) IL_01D5: ldloc.s 6 (PathUnit+Position) IL_01D7: ldloc.s 7 (PathUnit+Position) IL_01D9: ldloc.s 10 (NetInfo+LaneType) IL_01DB: ldloc.s 11 (VehicleInfo+VehicleType) IL_01DD: ldloc.2 IL_01DE: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_01E3: ldc.r4 20000 IL_01E8: callvirt System.Boolean PathManager::CreatePath(System.UInt32& unit, ColossalFramework.Math.Randomizer& randomizer, System.UInt32 buildIndex, Position startPosA, Position startPosB, Position endPosA, Position endPosB, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, System.Single maxLength) IL_01ED: brfalse => Label11 IL_01F2: ldarg.2 IL_01F3: ldfld System.UInt32 Vehicle::m_path IL_01F8: brfalse => Label12 IL_01FD: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_0202: ldarg.2 IL_0203: ldfld System.UInt32 Vehicle::m_path IL_0208: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit) IL_020D: Label12 IL_020D: ldarg.2 IL_020E: ldloc.s 14 (System.UInt32) IL_0210: stfld System.UInt32 Vehicle::m_path IL_0215: ldarg.2 IL_0216: dup IL_0217: ldfld Flags Vehicle::m_flags IL_021C: ldc.i4 256 IL_0221: or IL_0222: stfld Flags Vehicle::m_flags IL_0227: ldc.i4.1 IL_0228: br => Label14 IL_022D: Label4 IL_022D: Label5 IL_022D: Label11 IL_022D: ldc.i4.0 IL_022E: // end original IL_022E: Label13 IL_022E: Label14 IL_022E: stloc 16 (System.Boolean) IL_0232: Label0 IL_0232: ldloc 16 (System.Boolean) IL_0236: ret DONE ### Patch: virtual System.Void TrolleybusAI::CalculateSegmentPosition(System.UInt16 vehicleID, Vehicle& vehicleData, Position position, System.UInt32 laneID, System.Byte offset, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) ### Replacement: static System.Void TrolleybusAI::TrolleybusAI.CalculateSegmentPosition_Patch0(TrolleybusAI this, System.UInt16 vehicleID, Vehicle& vehicleData, Position position, System.UInt32 laneID, System.Byte offset, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) IL_0000: Local var 0: NetManager IL_0000: Local var 1: NetInfo IL_0000: Local var 2: NetInfo/Lane IL_0000: Local var 3: System.Single IL_0000: // start original IL_0000: ldarg.2 IL_0001: ldfld Flags Vehicle::m_flags IL_0006: ldc.i4 3072 IL_000B: and IL_000C: brfalse => Label0 IL_0011: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0016: stloc.0 IL_0017: ldloc.0 IL_0018: ldfld Array16`1 NetManager::m_segments IL_001D: ldfld NetSegment[] Array16`1::m_buffer IL_0022: ldarga.s 3 IL_0024: ldfld System.UInt16 Position::m_segment IL_0029: ldelema NetSegment IL_002E: call NetInfo NetSegment::get_Info() IL_0033: stloc.1 IL_0034: ldloc.1 IL_0035: ldfld Lane[] NetInfo::m_lanes IL_003A: brfalse => Label1 IL_003F: ldloc.1 IL_0040: ldfld Lane[] NetInfo::m_lanes IL_0045: ldlen IL_0046: conv.i4 IL_0047: ldarga.s 3 IL_0049: ldfld System.Byte Position::m_lane IL_004E: ble => Label2 IL_0053: ldloc.1 IL_0054: ldfld Lane[] NetInfo::m_lanes IL_0059: ldarga.s 3 IL_005B: ldfld System.Byte Position::m_lane IL_0060: ldelem.ref IL_0061: stloc.2 IL_0062: ldloc.2 IL_0063: ldfld System.Single Lane::m_stopOffset IL_0068: stloc.3 IL_0069: ldloc.0 IL_006A: ldfld Array16`1 NetManager::m_segments IL_006F: ldfld NetSegment[] Array16`1::m_buffer IL_0074: ldarga.s 3 IL_0076: ldfld System.UInt16 Position::m_segment IL_007B: ldelema NetSegment IL_0080: ldfld Flags NetSegment::m_flags IL_0085: ldc.i4.s 16 IL_0087: and IL_0088: brfalse => Label3 IL_008D: ldloc.3 IL_008E: neg IL_008F: stloc.3 IL_0090: Label3 IL_0090: ldloc.0 IL_0091: ldfld Array32`1 NetManager::m_lanes IL_0096: ldfld NetLane[] Array32`1::m_buffer IL_009B: ldarg.s 4 IL_009D: conv.u IL_009E: ldelema NetLane IL_00A3: ldarg.s 5 IL_00A5: conv.r4 IL_00A6: ldc.r4 0.003921569 IL_00AB: mul IL_00AC: ldloc.3 IL_00AD: ldarg.s 6 IL_00AF: ldarg.s 7 IL_00B1: call System.Void NetLane::CalculateStopPositionAndDirection(System.Single laneOffset, System.Single stopOffset, UnityEngine.Vector3& position, UnityEngine.Vector3& direction) IL_00B6: ldarg.0 IL_00B7: ldarg.1 IL_00B8: ldarg.2 IL_00B9: ldarg.3 IL_00BA: ldarg.s 4 IL_00BC: ldloc.1 IL_00BD: ldarg.s 8 IL_00BF: call static System.Void TrafficManager.Patch.PatchCommons::GetCustomSpeed(VehicleAI ai, System.UInt16 vehicleId, Vehicle& data, Position position, System.UInt32 laneID, NetInfo info, System.Single& maxSpeed) IL_00C4: br => Label4 IL_00C9: Label0 IL_00C9: Label1 IL_00C9: Label2 IL_00C9: ldarg.0 IL_00CA: ldarg.1 IL_00CB: ldarg.2 IL_00CC: ldarg.3 IL_00CD: ldarg.s 4 IL_00CF: ldarg.s 5 IL_00D1: ldarg.s 6 IL_00D3: ldarg.s 7 IL_00D5: ldarg.s 8 IL_00D7: call virtual System.Void CarAI::CalculateSegmentPosition(System.UInt16 vehicleID, Vehicle& vehicleData, Position position, System.UInt32 laneID, System.Byte offset, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) IL_00DC: // end original IL_00DC: Label4 IL_00DC: ret DONE ### Patch: System.Boolean TrolleybusAI::StartPathFind(System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays) ### Replacement: static System.Boolean TrolleybusAI::TrolleybusAI.StartPathFind_Patch1(TrolleybusAI this, System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays) IL_0000: Local var 0: VehicleInfo IL_0000: Local var 1: PathUnit/Position IL_0000: Local var 2: PathUnit/Position IL_0000: Local var 3: PathUnit/Position IL_0000: Local var 4: PathUnit/Position IL_0000: Local var 5: System.Single IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Single IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Boolean IL_0000: Local var 10: System.UInt32 IL_0000: Local var 11: System.Boolean IL_0000: Local var 12: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 11 (System.Boolean) IL_0009: ldc.i4 0 IL_000E: stloc 12 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 12 (System.Boolean) IL_0017: ldloc 12 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldarg 1 IL_0024: ldarg 2 IL_0028: call static System.Void TrafficManager.Patch._VehicleAI._TrolleybusAI.StartPathFindPatch::Prefix(System.UInt16 vehicleID, Vehicle& vehicleData) IL_002D: Label1 IL_002D: nop IL_002E: ldloc 12 (System.Boolean) IL_0032: brfalse => Label0 IL_0037: // start original IL_0037: ldarg.0 IL_0038: ldfld VehicleInfo VehicleAI::m_info IL_003D: stloc.0 IL_003E: ldarg.2 IL_003F: ldfld Flags Vehicle::m_flags IL_0044: ldc.i4 805306368 IL_0049: and IL_004A: ldc.i4.0 IL_004B: ceq IL_004D: ldc.i4.0 IL_004E: ceq IL_0050: stloc.s 9 (System.Boolean) IL_0052: ldarg.3 IL_0053: ldc.i4.s 9 IL_0055: ldc.i4.1 IL_0056: ldloc.0 IL_0057: ldfld VehicleType VehicleInfo::m_vehicleType IL_005C: ldloc.0 IL_005D: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_0062: ldloc.s 9 (System.Boolean) IL_0064: ldc.i4.0 IL_0065: ldc.r4 32 IL_006A: ldloca.s 1 (PathUnit+Position) IL_006C: ldloca.s 2 (PathUnit+Position) IL_006E: ldloca.s 5 (System.Single) IL_0070: ldloca.s 6 (System.Single) IL_0072: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_0077: brfalse => Label2 IL_007C: ldarg.s 4 IL_007E: ldc.i4.s 9 IL_0080: ldc.i4.1 IL_0081: ldloc.0 IL_0082: ldfld VehicleType VehicleInfo::m_vehicleType IL_0087: ldloc.0 IL_0088: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_008D: ldc.i4.0 IL_008E: ldc.i4.0 IL_008F: ldc.r4 32 IL_0094: ldloca.s 3 (PathUnit+Position) IL_0096: ldloca.s 4 (PathUnit+Position) IL_0098: ldloca.s 7 (System.Single) IL_009A: ldloca.s 8 (System.Single) IL_009C: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_00A1: brfalse => Label3 IL_00A6: ldarg.s 5 IL_00A8: brfalse => Label4 IL_00AD: ldloc.s 6 (System.Single) IL_00AF: ldloc.s 5 (System.Single) IL_00B1: ldc.r4 1.2 IL_00B6: mul IL_00B7: ble.un => Label5 IL_00BC: Label4 IL_00BC: ldloca.s 2 (PathUnit+Position) IL_00BE: initobj PathUnit+Position IL_00C4: Label5 IL_00C4: ldarg.s 6 IL_00C6: brfalse => Label6 IL_00CB: ldloc.s 8 (System.Single) IL_00CD: ldloc.s 7 (System.Single) IL_00CF: ldc.r4 1.2 IL_00D4: mul IL_00D5: ble.un => Label7 IL_00DA: Label6 IL_00DA: ldloca.s 4 (PathUnit+Position) IL_00DC: initobj PathUnit+Position IL_00E2: Label7 IL_00E2: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_00E7: ldloca.s 10 (System.UInt32) IL_00E9: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_00EE: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_00F3: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_00F8: ldfld System.UInt32 SimulationManager::m_currentBuildIndex IL_00FD: ldloc.1 IL_00FE: ldloc.2 IL_00FF: ldloc.3 IL_0100: ldloc.s 4 (PathUnit+Position) IL_0102: ldc.i4.1 IL_0103: ldloc.0 IL_0104: ldfld VehicleType VehicleInfo::m_vehicleType IL_0109: ldloc.0 IL_010A: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_010F: ldc.r4 20000 IL_0114: ldc.i4.0 IL_0115: ldc.i4.0 IL_0116: ldc.i4.1 IL_0117: ldc.i4.0 IL_0118: callvirt System.Boolean PathManager::CreatePath(System.UInt32& unit, ColossalFramework.Math.Randomizer& randomizer, System.UInt32 buildIndex, Position startPosA, Position startPosB, Position endPosA, Position endPosB, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, System.Single maxLength, System.Boolean isHeavyVehicle, System.Boolean ignoreBlocked, System.Boolean stablePath, System.Boolean skipQueue) IL_011D: brfalse => Label8 IL_0122: ldarg.2 IL_0123: ldfld System.UInt32 Vehicle::m_path IL_0128: brfalse => Label9 IL_012D: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_0132: ldarg.2 IL_0133: ldfld System.UInt32 Vehicle::m_path IL_0138: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit) IL_013D: Label9 IL_013D: ldarg.2 IL_013E: ldloc.s 10 (System.UInt32) IL_0140: stfld System.UInt32 Vehicle::m_path IL_0145: ldarg.2 IL_0146: dup IL_0147: ldfld Flags Vehicle::m_flags IL_014C: ldc.i4 256 IL_0151: or IL_0152: stfld Flags Vehicle::m_flags IL_0157: ldc.i4.1 IL_0158: br => Label10 IL_015D: Label2 IL_015D: Label3 IL_015D: Label8 IL_015D: ldc.i4.0 IL_015E: // end original IL_015E: Label10 IL_015E: stloc 11 (System.Boolean) IL_0162: Label0 IL_0162: ldloc 11 (System.Boolean) IL_0166: ret DONE ### Patch: virtual System.Void TramBaseAI::CalculateSegmentPosition(System.UInt16 vehicleID, Vehicle& vehicleData, Position position, System.UInt32 laneID, System.Byte offset, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) ### Replacement: static System.Void TramBaseAI::TramBaseAI.CalculateSegmentPosition_Patch0(TramBaseAI this, System.UInt16 vehicleID, Vehicle& vehicleData, Position position, System.UInt32 laneID, System.Byte offset, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) IL_0000: Local var 0: NetManager IL_0000: Local var 1: NetInfo IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: ldarg.2 IL_0003: ldarg.3 IL_0004: ldarg.s 4 IL_0006: ldarg.s 5 IL_0008: ldarg.s 6 IL_000A: ldarg.s 7 IL_000C: ldarg.s 8 IL_000E: call static System.Void TrafficManager.Patch._VehicleAI.VehicleAICommons::CustomCalculateSegmentPosition_NoSlowDriving(VehicleAI instance, System.UInt16 vehicleId, Vehicle& vehicleData, Position position, System.UInt32 laneId, System.Byte offset, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) IL_0013: // end original IL_0013: ret DONE ### Patch: virtual System.Void TramBaseAI::CalculateSegmentPosition(System.UInt16 vehicleID, Vehicle& vehicleData, Position nextPosition, Position position, System.UInt32 laneID, System.Byte offset, Position prevPos, System.UInt32 prevLaneID, System.Byte prevOffset, System.Int32 index, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) ### Replacement: static System.Void TramBaseAI::TramBaseAI.CalculateSegmentPosition_Patch1(TramBaseAI this, System.UInt16 vehicleID, Vehicle& vehicleData, Position nextPosition, Position position, System.UInt32 laneID, System.Byte offset, Position prevPos, System.UInt32 prevLaneID, System.Byte prevOffset, System.Int32 index, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) IL_0000: Local var 0: NetManager IL_0000: Local var 1: UnityEngine.Vector3 IL_0000: Local var 2: Vehicle/Frame IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Single IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: ColossalFramework.Math.Segment3 IL_0000: Local var 11: System.UInt16 IL_0000: Local var 12: System.UInt16 IL_0000: Local var 13: System.UInt16 IL_0000: Local var 14: NetNode/Flags IL_0000: Local var 15: NetLane/Flags IL_0000: Local var 16: System.Boolean IL_0000: Local var 17: System.Boolean IL_0000: Local var 18: System.Boolean IL_0000: Local var 19: System.Boolean IL_0000: Local var 20: System.Single IL_0000: Local var 21: System.Boolean IL_0000: Local var 22: NetNode/Flags IL_0000: Local var 23: System.UInt32 IL_0000: Local var 24: System.UInt32 IL_0000: Local var 25: System.UInt32 IL_0000: Local var 26: System.UInt32 IL_0000: Local var 27: RoadBaseAI/TrafficLightState IL_0000: Local var 28: RoadBaseAI/TrafficLightState IL_0000: Local var 29: System.Boolean IL_0000: Local var 30: System.Boolean IL_0000: Local var 31: NetInfo IL_0000: Local var 32: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 32 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 32 (System.Boolean) IL_000E: ldloc 32 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg.0 IL_0018: ldarg 1 IL_001C: ldarg 2 IL_0020: ldarg 3 IL_0024: ldarg 4 IL_0028: ldarg 5 IL_002C: ldarg 6 IL_0030: ldarg 7 IL_0034: ldarg 8 IL_0038: ldarg 9 IL_003C: ldarg 10 IL_0040: ldarg 11 IL_0044: ldarg 12 IL_0048: ldarg 13 IL_004C: call static System.Boolean TrafficManager.Patch._VehicleAI._TramBaseAI.CalculateSegmentPositionPatch2::Prefix(TrolleybusAI __instance, System.UInt16 vehicleID, Vehicle& vehicleData, Position nextPosition, Position position, System.UInt32 laneID, System.Byte offset, Position prevPos, System.UInt32 prevLaneID, System.Byte prevOffset, System.Int32 index, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) IL_0051: stloc 32 (System.Boolean) IL_0055: Label1 IL_0055: nop IL_0056: ldloc 32 (System.Boolean) IL_005A: brfalse => Label0 IL_005F: // start original IL_005F: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0064: stloc.0 IL_0065: ldloc.0 IL_0066: ldfld Array32`1 NetManager::m_lanes IL_006B: ldfld NetLane[] Array32`1::m_buffer IL_0070: ldarg.s 5 IL_0072: conv.u IL_0073: ldelema NetLane IL_0078: ldarg.s 6 IL_007A: conv.r4 IL_007B: ldc.r4 0.003921569 IL_0080: mul IL_0081: ldarg.s 11 IL_0083: ldarg.s 12 IL_0085: call System.Void NetLane::CalculatePositionAndDirection(System.Single laneOffset, UnityEngine.Vector3& position, UnityEngine.Vector3& direction) IL_008A: ldloc.0 IL_008B: ldfld Array32`1 NetManager::m_lanes IL_0090: ldfld NetLane[] Array32`1::m_buffer IL_0095: ldarg.s 8 IL_0097: conv.u IL_0098: ldelema NetLane IL_009D: ldarg.s 9 IL_009F: conv.r4 IL_00A0: ldc.r4 0.003921569 IL_00A5: mul IL_00A6: call UnityEngine.Vector3 NetLane::CalculatePosition(System.Single laneOffset) IL_00AB: stloc.1 IL_00AC: ldarg.2 IL_00AD: call Frame Vehicle::GetLastFrameData() IL_00B2: stloc.2 IL_00B3: ldloca.s 2 (Vehicle+Frame) IL_00B5: ldfld UnityEngine.Vector3 Frame::m_position IL_00BA: stloc.3 IL_00BB: ldloca.s 2 (Vehicle+Frame) IL_00BD: ldfld UnityEngine.Vector3 Frame::m_position IL_00C2: stloc.s 4 (UnityEngine.Vector3) IL_00C4: ldloca.s 2 (Vehicle+Frame) IL_00C6: ldfld UnityEngine.Quaternion Frame::m_rotation IL_00CB: ldc.r4 0 IL_00D0: ldc.r4 0 IL_00D5: ldarg.0 IL_00D6: ldfld VehicleInfo VehicleAI::m_info IL_00DB: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_00E0: ldfld System.Single VehicleInfoGen::m_wheelBase IL_00E5: ldc.r4 0.5 IL_00EA: mul IL_00EB: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_00F0: call static UnityEngine.Vector3 UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation, UnityEngine.Vector3 point) IL_00F5: stloc.s 5 (UnityEngine.Vector3) IL_00F7: ldloc.3 IL_00F8: ldloc.s 5 (UnityEngine.Vector3) IL_00FA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00FF: stloc.3 IL_0100: ldloc.s 4 (UnityEngine.Vector3) IL_0102: ldloc.s 5 (UnityEngine.Vector3) IL_0104: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0109: stloc.s 4 (UnityEngine.Vector3) IL_010B: ldloca.s 2 (Vehicle+Frame) IL_010D: ldflda UnityEngine.Vector3 Frame::m_velocity IL_0112: call System.Single UnityEngine.Vector3::get_sqrMagnitude() IL_0117: stloc.s 6 (System.Single) IL_0119: ldc.r4 0.5 IL_011E: ldloc.s 6 (System.Single) IL_0120: mul IL_0121: ldarg.0 IL_0122: ldfld VehicleInfo VehicleAI::m_info IL_0127: ldfld System.Single VehicleInfo::m_braking IL_012C: div IL_012D: stloc.s 7 (System.Single) IL_012F: ldloc.3 IL_0130: ldloc.1 IL_0131: call static System.Single UnityEngine.Vector3::Distance(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0136: stloc.s 8 (System.Single) IL_0138: ldloc.s 4 (UnityEngine.Vector3) IL_013A: ldloc.1 IL_013B: call static System.Single UnityEngine.Vector3::Distance(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0140: stloc.s 9 (System.Single) IL_0142: ldloc.s 8 (System.Single) IL_0144: ldloc.s 9 (System.Single) IL_0146: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_014B: ldloc.s 7 (System.Single) IL_014D: ldc.r4 1 IL_0152: sub IL_0153: blt.un => Label2 IL_0158: ldloca.s 10 (ColossalFramework.Math.Segment3) IL_015A: ldarg.s 11 IL_015C: ldobj UnityEngine.Vector3 IL_0161: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a IL_0166: ldarg.s 6 IL_0168: ldarga.s 4 IL_016A: ldfld System.Byte Position::m_offset IL_016F: bge => Label3 IL_0174: ldloca.s 10 (ColossalFramework.Math.Segment3) IL_0176: ldarg.s 11 IL_0178: ldobj UnityEngine.Vector3 IL_017D: ldarg.s 12 IL_017F: call UnityEngine.Vector3 UnityEngine.Vector3::get_normalized() IL_0184: ldarg.0 IL_0185: ldfld VehicleInfo VehicleAI::m_info IL_018A: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_018F: ldflda UnityEngine.Vector3 VehicleInfoGen::m_size IL_0194: ldfld System.Single UnityEngine.Vector3::z IL_0199: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_019E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_01A3: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b IL_01A8: ldloc.0 IL_01A9: ldfld Array16`1 NetManager::m_segments IL_01AE: ldfld NetSegment[] Array16`1::m_buffer IL_01B3: ldarga.s 4 IL_01B5: ldfld System.UInt16 Position::m_segment IL_01BA: ldelema NetSegment IL_01BF: ldfld System.UInt16 NetSegment::m_startNode IL_01C4: stloc.s 11 (System.UInt16) IL_01C6: ldloc.0 IL_01C7: ldfld Array16`1 NetManager::m_segments IL_01CC: ldfld NetSegment[] Array16`1::m_buffer IL_01D1: ldarga.s 4 IL_01D3: ldfld System.UInt16 Position::m_segment IL_01D8: ldelema NetSegment IL_01DD: ldfld System.UInt16 NetSegment::m_endNode IL_01E2: stloc.s 12 (System.UInt16) IL_01E4: br => Label4 IL_01E9: Label3 IL_01E9: ldloca.s 10 (ColossalFramework.Math.Segment3) IL_01EB: ldarg.s 11 IL_01ED: ldobj UnityEngine.Vector3 IL_01F2: ldarg.s 12 IL_01F4: call UnityEngine.Vector3 UnityEngine.Vector3::get_normalized() IL_01F9: ldarg.0 IL_01FA: ldfld VehicleInfo VehicleAI::m_info IL_01FF: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_0204: ldflda UnityEngine.Vector3 VehicleInfoGen::m_size IL_0209: ldfld System.Single UnityEngine.Vector3::z IL_020E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0213: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0218: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b IL_021D: ldloc.0 IL_021E: ldfld Array16`1 NetManager::m_segments IL_0223: ldfld NetSegment[] Array16`1::m_buffer IL_0228: ldarga.s 4 IL_022A: ldfld System.UInt16 Position::m_segment IL_022F: ldelema NetSegment IL_0234: ldfld System.UInt16 NetSegment::m_endNode IL_0239: stloc.s 11 (System.UInt16) IL_023B: ldloc.0 IL_023C: ldfld Array16`1 NetManager::m_segments IL_0241: ldfld NetSegment[] Array16`1::m_buffer IL_0246: ldarga.s 4 IL_0248: ldfld System.UInt16 Position::m_segment IL_024D: ldelema NetSegment IL_0252: ldfld System.UInt16 NetSegment::m_startNode IL_0257: stloc.s 12 (System.UInt16) IL_0259: Label4 IL_0259: ldarg.s 9 IL_025B: brtrue => Label5 IL_0260: ldloc.0 IL_0261: ldfld Array16`1 NetManager::m_segments IL_0266: ldfld NetSegment[] Array16`1::m_buffer IL_026B: ldarga.s 7 IL_026D: ldfld System.UInt16 Position::m_segment IL_0272: ldelema NetSegment IL_0277: ldfld System.UInt16 NetSegment::m_startNode IL_027C: stloc.s 13 (System.UInt16) IL_027E: br => Label6 IL_0283: Label5 IL_0283: ldloc.0 IL_0284: ldfld Array16`1 NetManager::m_segments IL_0289: ldfld NetSegment[] Array16`1::m_buffer IL_028E: ldarga.s 7 IL_0290: ldfld System.UInt16 Position::m_segment IL_0295: ldelema NetSegment IL_029A: ldfld System.UInt16 NetSegment::m_endNode IL_029F: stloc.s 13 (System.UInt16) IL_02A1: Label6 IL_02A1: ldloc.s 11 (System.UInt16) IL_02A3: ldloc.s 13 (System.UInt16) IL_02A5: bne.un => Label7 IL_02AA: ldloc.0 IL_02AB: ldfld Array16`1 NetManager::m_nodes IL_02B0: ldfld NetNode[] Array16`1::m_buffer IL_02B5: ldloc.s 11 (System.UInt16) IL_02B7: ldelema NetNode IL_02BC: ldfld Flags NetNode::m_flags IL_02C1: stloc.s 14 (NetNode+Flags) IL_02C3: ldloc.0 IL_02C4: ldfld Array32`1 NetManager::m_lanes IL_02C9: ldfld NetLane[] Array32`1::m_buffer IL_02CE: ldarg.s 8 IL_02D0: conv.u IL_02D1: ldelema NetLane IL_02D6: ldfld System.UInt16 NetLane::m_flags IL_02DB: stloc.s 15 (NetLane+Flags) IL_02DD: ldloc.s 14 (NetNode+Flags) IL_02DF: ldc.i4 8388608 IL_02E4: and IL_02E5: ldc.i4.0 IL_02E6: ceq IL_02E8: ldc.i4.0 IL_02E9: ceq IL_02EB: stloc.s 16 (System.Boolean) IL_02ED: ldloc.s 14 (NetNode+Flags) IL_02EF: ldc.i4 2097152 IL_02F4: and IL_02F5: ldc.i4.0 IL_02F6: ceq IL_02F8: ldc.i4.0 IL_02F9: ceq IL_02FB: stloc.s 17 (System.Boolean) IL_02FD: ldloc.s 15 (NetLane+Flags) IL_02FF: ldc.i4.8 IL_0300: and IL_0301: ldc.i4.0 IL_0302: ceq IL_0304: ldc.i4.0 IL_0305: ceq IL_0307: stloc.s 18 (System.Boolean) IL_0309: ldloc.s 15 (NetLane+Flags) IL_030B: ldc.i4 3072 IL_0310: and IL_0311: brfalse => Label8 IL_0316: ldloc.s 14 (NetNode+Flags) IL_0318: ldc.i4 25165952 IL_031D: and IL_031E: ldc.i4 128 IL_0323: ceq IL_0325: br => Label9 IL_032A: Label8 IL_032A: ldc.i4.0 IL_032B: Label9 IL_032B: stloc.s 19 (System.Boolean) IL_032D: ldloc.s 19 (System.Boolean) IL_032F: brfalse => Label10 IL_0334: ldarg.2 IL_0335: ldfld Flags2 Vehicle::m_flags2 IL_033A: ldc.i4.4 IL_033B: and IL_033C: brtrue => Label11 IL_0341: ldloc.s 6 (System.Single) IL_0343: ldc.r4 0.01 IL_0348: bge.un => Label12 IL_034D: ldarg.2 IL_034E: dup IL_034F: ldfld Flags2 Vehicle::m_flags2 IL_0354: ldc.i4.4 IL_0355: or IL_0356: stfld Flags2 Vehicle::m_flags2 IL_035B: Label12 IL_035B: ldarg.s 13 IL_035D: ldc.r4 0 IL_0362: stind.r4 IL_0363: br => Label38 IL_0368: Label10 IL_0368: Label11 IL_0368: ldloc.s 14 (NetNode+Flags) IL_036A: ldc.i4 20971648 IL_036F: and IL_0370: ldc.i4 128 IL_0375: bne.un => Label13 IL_037A: ldloc.0 IL_037B: ldfld Array16`1 NetManager::m_nodes IL_0380: ldfld NetNode[] Array16`1::m_buffer IL_0385: ldloc.s 11 (System.UInt16) IL_0387: ldelema NetNode IL_038C: call System.Int32 NetNode::CountSegments() IL_0391: ldc.i4.2 IL_0392: beq => Label14 IL_0397: ldarg.2 IL_0398: ldarg.1 IL_0399: call System.Single Vehicle::CalculateTotalLength(System.UInt16 vehicleID) IL_039E: ldc.r4 2 IL_03A3: add IL_03A4: stloc.s 20 (System.Single) IL_03A6: ldloc.0 IL_03A7: ldfld Array32`1 NetManager::m_lanes IL_03AC: ldfld NetLane[] Array32`1::m_buffer IL_03B1: ldarg.s 5 IL_03B3: conv.u IL_03B4: ldelema NetLane IL_03B9: ldloc.s 20 (System.Single) IL_03BB: call System.Boolean NetLane::CheckSpace(System.Single len) IL_03C0: brtrue => Label15 IL_03C5: ldc.i4.0 IL_03C6: stloc.s 21 (System.Boolean) IL_03C8: ldarga.s 3 IL_03CA: ldfld System.UInt16 Position::m_segment IL_03CF: brfalse => Label16 IL_03D4: ldloc.0 IL_03D5: ldfld Array32`1 NetManager::m_lanes IL_03DA: ldfld NetLane[] Array32`1::m_buffer IL_03DF: ldarg.s 5 IL_03E1: conv.u IL_03E2: ldelema NetLane IL_03E7: ldfld System.Single NetLane::m_length IL_03EC: ldc.r4 30 IL_03F1: bge.un => Label17 IL_03F6: ldloc.0 IL_03F7: ldfld Array16`1 NetManager::m_nodes IL_03FC: ldfld NetNode[] Array16`1::m_buffer IL_0401: ldloc.s 12 (System.UInt16) IL_0403: ldelema NetNode IL_0408: ldfld Flags NetNode::m_flags IL_040D: stloc.s 22 (NetNode+Flags) IL_040F: ldloc.s 22 (NetNode+Flags) IL_0411: ldc.i4 20971648 IL_0416: and IL_0417: ldc.i4 128 IL_041C: bne.un => Label18 IL_0421: ldloc.0 IL_0422: ldfld Array16`1 NetManager::m_nodes IL_0427: ldfld NetNode[] Array16`1::m_buffer IL_042C: ldloc.s 12 (System.UInt16) IL_042E: ldelema NetNode IL_0433: call System.Int32 NetNode::CountSegments() IL_0438: ldc.i4.2 IL_0439: bne.un => Label19 IL_043E: Label18 IL_043E: ldarg.3 IL_043F: call static System.UInt32 PathManager::GetLaneID(Position pathPos) IL_0444: stloc.s 23 (System.UInt32) IL_0446: ldloc.s 23 (System.UInt32) IL_0448: brfalse => Label20 IL_044D: ldloc.0 IL_044E: ldfld Array32`1 NetManager::m_lanes IL_0453: ldfld NetLane[] Array32`1::m_buffer IL_0458: ldloc.s 23 (System.UInt32) IL_045A: conv.u IL_045B: ldelema NetLane IL_0460: ldloc.s 20 (System.Single) IL_0462: call System.Boolean NetLane::CheckSpace(System.Single len) IL_0467: stloc.s 21 (System.Boolean) IL_0469: Label16 IL_0469: Label17 IL_0469: Label19 IL_0469: Label20 IL_0469: ldloc.s 21 (System.Boolean) IL_046B: brtrue => Label21 IL_0470: ldarg.2 IL_0471: dup IL_0472: ldfld Flags2 Vehicle::m_flags2 IL_0477: ldc.i4.4 IL_0478: or IL_0479: stfld Flags2 Vehicle::m_flags2 IL_047E: ldarg.s 13 IL_0480: ldc.r4 0 IL_0485: stind.r4 IL_0486: br => Label39 IL_048B: Label13 IL_048B: Label14 IL_048B: Label15 IL_048B: Label21 IL_048B: ldloc.s 16 (System.Boolean) IL_048D: brfalse => Label22 IL_0492: ldloc.s 18 (System.Boolean) IL_0494: brfalse => Label23 IL_0499: ldloc.s 17 (System.Boolean) IL_049B: brfalse => Label24 IL_04A0: Label23 IL_04A0: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_04A5: ldfld System.UInt32 SimulationManager::m_currentFrameIndex IL_04AA: stloc.s 24 (System.UInt32) IL_04AC: ldloc.s 13 (System.UInt16) IL_04AE: ldc.i4.8 IL_04AF: shl IL_04B0: ldc.i4 32768 IL_04B5: div.un IL_04B6: stloc.s 25 (System.UInt32) IL_04B8: ldloc.s 24 (System.UInt32) IL_04BA: ldloc.s 25 (System.UInt32) IL_04BC: sub IL_04BD: ldc.i4 255 IL_04C2: and IL_04C3: stloc.s 26 (System.UInt32) IL_04C5: ldloc.s 13 (System.UInt16) IL_04C7: ldloc.0 IL_04C8: ldfld Array16`1 NetManager::m_segments IL_04CD: ldfld NetSegment[] Array16`1::m_buffer IL_04D2: ldarga.s 7 IL_04D4: ldfld System.UInt16 Position::m_segment IL_04D9: ldelema NetSegment IL_04DE: ldloc.s 24 (System.UInt32) IL_04E0: ldloc.s 25 (System.UInt32) IL_04E2: sub IL_04E3: ldloca.s 27 (RoadBaseAI+TrafficLightState) IL_04E5: ldloca.s 28 (RoadBaseAI+TrafficLightState) IL_04E7: ldloca.s 29 (System.Boolean) IL_04E9: ldloca.s 30 (System.Boolean) IL_04EB: call static System.Void RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData, System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState& pedestrianLightState, System.Boolean& vehicles, System.Boolean& pedestrians) IL_04F0: ldloc.s 29 (System.Boolean) IL_04F2: brtrue => Label25 IL_04F7: ldloc.s 26 (System.UInt32) IL_04F9: ldc.i4 196 IL_04FE: blt.un => Label26 IL_0503: ldc.i4.1 IL_0504: stloc.s 29 (System.Boolean) IL_0506: ldloc.s 13 (System.UInt16) IL_0508: ldloc.0 IL_0509: ldfld Array16`1 NetManager::m_segments IL_050E: ldfld NetSegment[] Array16`1::m_buffer IL_0513: ldarga.s 7 IL_0515: ldfld System.UInt16 Position::m_segment IL_051A: ldelema NetSegment IL_051F: ldloc.s 24 (System.UInt32) IL_0521: ldloc.s 25 (System.UInt32) IL_0523: sub IL_0524: ldloc.s 27 (RoadBaseAI+TrafficLightState) IL_0526: ldloc.s 28 (RoadBaseAI+TrafficLightState) IL_0528: ldloc.s 29 (System.Boolean) IL_052A: ldloc.s 30 (System.Boolean) IL_052C: call static System.Void RoadBaseAI::SetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData, System.UInt32 frame, TrafficLightState vehicleLightState, TrafficLightState pedestrianLightState, System.Boolean vehicles, System.Boolean pedestrians) IL_0531: Label25 IL_0531: Label26 IL_0531: ldloc.s 27 (RoadBaseAI+TrafficLightState) IL_0533: ldc.i4.1 IL_0534: beq => Label27 IL_0539: ldloc.s 27 (RoadBaseAI+TrafficLightState) IL_053B: ldc.i4.3 IL_053C: beq => Label28 IL_0541: ldloc.s 27 (RoadBaseAI+TrafficLightState) IL_0543: ldc.i4.2 IL_0544: beq => Label29 IL_0549: br => Label30 IL_054E: Label27 IL_054E: ldloc.s 26 (System.UInt32) IL_0550: ldc.i4.s 60 IL_0552: bge.un => Label31 IL_0557: ldarg.2 IL_0558: dup IL_0559: ldfld Flags2 Vehicle::m_flags2 IL_055E: ldc.i4.4 IL_055F: or IL_0560: stfld Flags2 Vehicle::m_flags2 IL_0565: ldarg.s 13 IL_0567: ldc.r4 0 IL_056C: stind.r4 IL_056D: br => Label40 IL_0572: Label31 IL_0572: br => Label32 IL_0577: Label28 IL_0577: ldloc.s 26 (System.UInt32) IL_0579: ldc.i4.s 30 IL_057B: blt.un => Label33 IL_0580: ldarg.2 IL_0581: dup IL_0582: ldfld Flags2 Vehicle::m_flags2 IL_0587: ldc.i4.4 IL_0588: or IL_0589: stfld Flags2 Vehicle::m_flags2 IL_058E: ldarg.s 13 IL_0590: ldc.r4 0 IL_0595: stind.r4 IL_0596: br => Label41 IL_059B: Label33 IL_059B: br => Label34 IL_05A0: Label29 IL_05A0: ldarg.2 IL_05A1: dup IL_05A2: ldfld Flags2 Vehicle::m_flags2 IL_05A7: ldc.i4.4 IL_05A8: or IL_05A9: stfld Flags2 Vehicle::m_flags2 IL_05AE: ldarg.s 13 IL_05B0: ldc.r4 0 IL_05B5: stind.r4 IL_05B6: br => Label42 IL_05BB: Label2 IL_05BB: Label7 IL_05BB: Label22 IL_05BB: Label24 IL_05BB: Label30 IL_05BB: Label32 IL_05BB: Label34 IL_05BB: ldloc.0 IL_05BC: ldfld Array16`1 NetManager::m_segments IL_05C1: ldfld NetSegment[] Array16`1::m_buffer IL_05C6: ldarga.s 4 IL_05C8: ldfld System.UInt16 Position::m_segment IL_05CD: ldelema NetSegment IL_05D2: call NetInfo NetSegment::get_Info() IL_05D7: stloc.s 31 (NetInfo) IL_05D9: ldloc.s 31 (NetInfo) IL_05DB: ldfld Lane[] NetInfo::m_lanes IL_05E0: brfalse => Label35 IL_05E5: ldloc.s 31 (NetInfo) IL_05E7: ldfld Lane[] NetInfo::m_lanes IL_05EC: ldlen IL_05ED: conv.i4 IL_05EE: ldarga.s 4 IL_05F0: ldfld System.Byte Position::m_lane IL_05F5: ble => Label36 IL_05FA: ldarg.s 13 IL_05FC: ldarg.0 IL_05FD: ldarg.1 IL_05FE: ldarg.2 IL_05FF: ldloc.s 31 (NetInfo) IL_0601: ldfld Lane[] NetInfo::m_lanes IL_0606: ldarga.s 4 IL_0608: ldfld System.Byte Position::m_lane IL_060D: ldelem.ref IL_060E: ldfld System.Single Lane::m_speedLimit IL_0613: ldloc.0 IL_0614: ldfld Array32`1 NetManager::m_lanes IL_0619: ldfld NetLane[] Array32`1::m_buffer IL_061E: ldarg.s 5 IL_0620: conv.u IL_0621: ldelema NetLane IL_0626: ldfld System.Single NetLane::m_curve IL_062B: callvirt virtual System.Single VehicleAI::CalculateTargetSpeed(System.UInt16 vehicleID, Vehicle& data, System.Single speedLimit, System.Single curve) IL_0630: stind.r4 IL_0631: br => Label37 IL_0636: Label35 IL_0636: Label36 IL_0636: ldarg.s 13 IL_0638: ldarg.0 IL_0639: ldarg.1 IL_063A: ldarg.2 IL_063B: ldc.r4 1 IL_0640: ldc.r4 0 IL_0645: callvirt virtual System.Single VehicleAI::CalculateTargetSpeed(System.UInt16 vehicleID, Vehicle& data, System.Single speedLimit, System.Single curve) IL_064A: stind.r4 IL_064B: // end original IL_064B: Label37 IL_064B: Label38 IL_064B: Label39 IL_064B: Label40 IL_064B: Label41 IL_064B: Label42 IL_064B: Label0 IL_064B: ret DONE ### Patch: virtual System.Void TramBaseAI::SimulationStep(System.UInt16 vehicleID, Vehicle& data, UnityEngine.Vector3 physicsLodRefPos) ### Replacement: static System.Void TramBaseAI::TramBaseAI.SimulationStep_Patch0(TramBaseAI this, System.UInt16 vehicleID, Vehicle& data, UnityEngine.Vector3 physicsLodRefPos) IL_0000: Local var 0: System.Byte IL_0000: Local var 1: System.UInt16 IL_0000: Local var 2: VehicleManager IL_0000: Local var 3: VehicleInfo IL_0000: Local var 4: System.Int32 IL_0000: // start original IL_0000: ldarg.2 IL_0001: ldfld Flags Vehicle::m_flags IL_0006: ldc.i4 256 IL_000B: and IL_000C: brfalse => Label0 IL_0011: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_0016: ldfld Array32`1 PathManager::m_pathUnits IL_001B: ldfld PathUnit[] Array32`1::m_buffer IL_0020: ldarg.2 IL_0021: ldfld System.UInt32 Vehicle::m_path IL_0026: conv.u IL_0027: ldelema PathUnit IL_002C: ldfld System.Byte PathUnit::m_pathFindFlags IL_0031: stloc.0 IL_0032: ldloc.0 IL_0033: ldc.i4.4 IL_0034: and IL_0035: brfalse => Label1 IL_003A: ldarg.0 IL_003B: ldarg.1 IL_003C: ldarg.2 IL_003D: callvirt virtual System.Void TramBaseAI::PathfindSuccess(System.UInt16 vehicleID, Vehicle& data) IL_0042: ldarg.0 IL_0043: ldarg.1 IL_0044: ldarg.2 IL_0045: callvirt virtual System.Boolean TramBaseAI::PathFindReady(System.UInt16 vehicleID, Vehicle& vehicleData) IL_004A: pop IL_004B: br => Label2 IL_0050: Label1 IL_0050: ldloc.0 IL_0051: ldc.i4.8 IL_0052: and IL_0053: brtrue => Label3 IL_0058: ldarg.2 IL_0059: ldfld System.UInt32 Vehicle::m_path IL_005E: brtrue => Label4 IL_0063: Label3 IL_0063: ldarg.2 IL_0064: dup IL_0065: ldfld Flags Vehicle::m_flags IL_006A: ldc.i4 -257 IL_006F: and IL_0070: stfld Flags Vehicle::m_flags IL_0075: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_007A: ldarg.2 IL_007B: ldfld System.UInt32 Vehicle::m_path IL_0080: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit) IL_0085: ldarg.2 IL_0086: ldc.i4.0 IL_0087: stfld System.UInt32 Vehicle::m_path IL_008C: ldarg.0 IL_008D: ldarg.1 IL_008E: ldarg.2 IL_008F: callvirt virtual System.Void TramBaseAI::PathfindFailure(System.UInt16 vehicleID, Vehicle& data) IL_0094: br => Label16 IL_0099: Label2 IL_0099: Label4 IL_0099: br => Label5 IL_009E: Label0 IL_009E: ldarg.2 IL_009F: ldfld Flags Vehicle::m_flags IL_00A4: ldc.i4 65536 IL_00A9: and IL_00AA: brfalse => Label6 IL_00AF: ldarg.0 IL_00B0: ldarg.1 IL_00B1: ldarg.2 IL_00B2: callvirt virtual System.Boolean VehicleAI::TrySpawn(System.UInt16 vehicleID, Vehicle& vehicleData) IL_00B7: pop IL_00B8: Label5 IL_00B8: Label6 IL_00B8: call static TrafficManager.API.Manager.IManagerFactory TrafficManager.Constants::get_ManagerFactory() IL_00BD: callvirt abstract virtual TrafficManager.API.Manager.IExtVehicleManager TrafficManager.API.Manager.IManagerFactory::get_ExtVehicleManager() IL_00C2: ldarg.1 IL_00C3: ldarg.2 IL_00C4: callvirt abstract virtual System.Void TrafficManager.API.Manager.IExtVehicleManager::UpdateVehiclePosition(System.UInt16 vehicleId, Vehicle& vehicleData) IL_00C9: ldsfld System.Boolean TrafficManager.State.Options::advancedAI IL_00CE: brfalse => Label15 IL_00D3: ldarg.2 IL_00D4: ldfld Flags Vehicle::m_flags IL_00D9: ldc.i4.4 IL_00DA: and IL_00DB: brfalse => Label15 IL_00E0: call static TrafficManager.API.Manager.IManagerFactory TrafficManager.Constants::get_ManagerFactory() IL_00E5: callvirt abstract virtual TrafficManager.API.Manager.IExtVehicleManager TrafficManager.API.Manager.IManagerFactory::get_ExtVehicleManager() IL_00EA: ldarg.1 IL_00EB: ldarg.2 IL_00EC: callvirt abstract virtual System.Void TrafficManager.API.Manager.IExtVehicleManager::LogTraffic(System.UInt16 vehicleId, Vehicle& vehicle) IL_00F1: Label15 IL_00F1: ldarg.1 IL_00F2: stloc.1 IL_00F3: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_00F8: stloc.2 IL_00F9: ldloc.2 IL_00FA: ldfld Array16`1 VehicleManager::m_vehicles IL_00FF: ldfld Vehicle[] Array16`1::m_buffer IL_0104: ldloc.1 IL_0105: ldelema Vehicle IL_010A: call VehicleInfo Vehicle::get_Info() IL_010F: stloc.3 IL_0110: ldloc.3 IL_0111: ldfld VehicleAI VehicleInfo::m_vehicleAI IL_0116: ldloc.1 IL_0117: ldloc.2 IL_0118: ldfld Array16`1 VehicleManager::m_vehicles IL_011D: ldfld Vehicle[] Array16`1::m_buffer IL_0122: ldloc.1 IL_0123: ldelema Vehicle IL_0128: ldarg.1 IL_0129: ldarg.2 IL_012A: ldc.i4.0 IL_012B: callvirt virtual System.Void VehicleAI::SimulationStep(System.UInt16 vehicleID, Vehicle& vehicleData, System.UInt16 leaderID, Vehicle& leaderData, System.Int32 lodPhysics) IL_0130: ldarg.2 IL_0131: ldfld Flags Vehicle::m_flags IL_0136: ldc.i4.3 IL_0137: and IL_0138: ldc.i4.1 IL_0139: beq => Label7 IL_013E: br => Label17 IL_0143: Label7 IL_0143: ldloc.2 IL_0144: ldfld Array16`1 VehicleManager::m_vehicles IL_0149: ldfld Vehicle[] Array16`1::m_buffer IL_014E: ldloc.1 IL_014F: ldelema Vehicle IL_0154: ldfld System.UInt16 Vehicle::m_trailingVehicle IL_0159: stloc.1 IL_015A: ldc.i4.0 IL_015B: stloc.s 4 (System.Int32) IL_015D: br => Label8 IL_0162: Label12 IL_0162: ldloc.2 IL_0163: ldfld Array16`1 VehicleManager::m_vehicles IL_0168: ldfld Vehicle[] Array16`1::m_buffer IL_016D: ldloc.1 IL_016E: ldelema Vehicle IL_0173: call VehicleInfo Vehicle::get_Info() IL_0178: stloc.3 IL_0179: ldloc.3 IL_017A: ldfld VehicleAI VehicleInfo::m_vehicleAI IL_017F: ldloc.1 IL_0180: ldloc.2 IL_0181: ldfld Array16`1 VehicleManager::m_vehicles IL_0186: ldfld Vehicle[] Array16`1::m_buffer IL_018B: ldloc.1 IL_018C: ldelema Vehicle IL_0191: ldarg.1 IL_0192: ldarg.2 IL_0193: ldc.i4.0 IL_0194: callvirt virtual System.Void VehicleAI::SimulationStep(System.UInt16 vehicleID, Vehicle& vehicleData, System.UInt16 leaderID, Vehicle& leaderData, System.Int32 lodPhysics) IL_0199: ldarg.2 IL_019A: ldfld Flags Vehicle::m_flags IL_019F: ldc.i4.3 IL_01A0: and IL_01A1: ldc.i4.1 IL_01A2: beq => Label9 IL_01A7: br => Label18 IL_01AC: Label9 IL_01AC: ldloc.2 IL_01AD: ldfld Array16`1 VehicleManager::m_vehicles IL_01B2: ldfld Vehicle[] Array16`1::m_buffer IL_01B7: ldloc.1 IL_01B8: ldelema Vehicle IL_01BD: ldfld System.UInt16 Vehicle::m_trailingVehicle IL_01C2: stloc.1 IL_01C3: ldloc.s 4 (System.Int32) IL_01C5: ldc.i4.1 IL_01C6: add IL_01C7: dup IL_01C8: stloc.s 4 (System.Int32) IL_01CA: ldc.i4 16384 IL_01CF: ble => Label10 IL_01D4: ldc.i4.1 IL_01D5: ldstr "Invalid list detected!\n" IL_01DA: call static System.String System.Environment::get_StackTrace() IL_01DF: call static System.String System.String::Concat(System.String str0, System.String str1) IL_01E4: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_01E9: br => Label11 IL_01EE: Label8 IL_01EE: Label10 IL_01EE: ldloc.1 IL_01EF: brtrue => Label12 IL_01F4: Label11 IL_01F4: ldarg.2 IL_01F5: ldfld Flags Vehicle::m_flags IL_01FA: ldc.i4 196868 IL_01FF: and IL_0200: brfalse => Label13 IL_0205: ldarg.2 IL_0206: ldfld System.Byte Vehicle::m_blockCounter IL_020B: ldc.i4 255 IL_0210: bne.un => Label14 IL_0215: ldsfld TrafficManager.Manager.Impl.VehicleBehaviorManager TrafficManager.Manager.Impl.VehicleBehaviorManager::Instance IL_021A: ldarg.1 IL_021B: ldarg.2 IL_021C: callvirt System.Boolean TrafficManager.Manager.Impl.VehicleBehaviorManager::MayDespawn(System.UInt16 vehicleId, Vehicle& vehicleData) IL_0221: brfalse => Label14 IL_0226: Label13 IL_0226: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_022B: ldarg.1 IL_022C: callvirt System.Void VehicleManager::ReleaseVehicle(System.UInt16 vehicle) IL_0231: // end original IL_0231: Label14 IL_0231: Label16 IL_0231: Label17 IL_0231: Label18 IL_0231: ret DONE ### Patch: System.Boolean TramBaseAI::StartPathFind(System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays) ### Replacement: static System.Boolean TramBaseAI::TramBaseAI.StartPathFind_Patch1(TramBaseAI this, System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays) IL_0000: Local var 0: VehicleInfo IL_0000: Local var 1: PathUnit/Position IL_0000: Local var 2: PathUnit/Position IL_0000: Local var 3: PathUnit/Position IL_0000: Local var 4: PathUnit/Position IL_0000: Local var 5: System.Single IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Single IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Boolean IL_0000: Local var 10: System.Boolean IL_0000: Local var 11: System.UInt32 IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 12 (System.Boolean) IL_0009: ldc.i4 0 IL_000E: stloc 13 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 13 (System.Boolean) IL_0017: ldloc 13 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldarg 1 IL_0024: ldarg 2 IL_0028: call static System.Void TrafficManager.Patch._VehicleAI._TramBaseAI.StartPathFindPatch::Prefix(System.UInt16 vehicleID, Vehicle& vehicleData) IL_002D: Label1 IL_002D: nop IL_002E: ldloc 13 (System.Boolean) IL_0032: brfalse => Label0 IL_0037: // start original IL_0037: ldarg.0 IL_0038: ldfld VehicleInfo VehicleAI::m_info IL_003D: stloc.0 IL_003E: ldloc.0 IL_003F: ldfld VehicleType VehicleInfo::m_vehicleType IL_0044: ldc.i4.2 IL_0045: bne.un => Label2 IL_004A: ldc.i4.1 IL_004B: stloc.s 9 (System.Boolean) IL_004D: ldc.i4.1 IL_004E: stloc.s 10 (System.Boolean) IL_0050: br => Label3 IL_0055: Label2 IL_0055: ldarg.2 IL_0056: ldfld Flags Vehicle::m_flags IL_005B: ldc.i4 805306368 IL_0060: and IL_0061: ldc.i4.0 IL_0062: ceq IL_0064: ldc.i4.0 IL_0065: ceq IL_0067: stloc.s 9 (System.Boolean) IL_0069: ldc.i4.0 IL_006A: stloc.s 10 (System.Boolean) IL_006C: Label3 IL_006C: ldarg.3 IL_006D: ldc.i4.s 9 IL_006F: ldc.i4.1 IL_0070: ldloc.0 IL_0071: ldfld VehicleType VehicleInfo::m_vehicleType IL_0076: ldloc.0 IL_0077: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_007C: ldloc.s 9 (System.Boolean) IL_007E: ldc.i4.0 IL_007F: ldc.r4 32 IL_0084: ldloca.s 1 (PathUnit+Position) IL_0086: ldloca.s 2 (PathUnit+Position) IL_0088: ldloca.s 5 (System.Single) IL_008A: ldloca.s 6 (System.Single) IL_008C: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_0091: brfalse => Label4 IL_0096: ldarg.s 4 IL_0098: ldc.i4.s 9 IL_009A: ldc.i4.1 IL_009B: ldloc.0 IL_009C: ldfld VehicleType VehicleInfo::m_vehicleType IL_00A1: ldloc.0 IL_00A2: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_00A7: ldloc.s 10 (System.Boolean) IL_00A9: ldc.i4.0 IL_00AA: ldc.r4 32 IL_00AF: ldloca.s 3 (PathUnit+Position) IL_00B1: ldloca.s 4 (PathUnit+Position) IL_00B3: ldloca.s 7 (System.Single) IL_00B5: ldloca.s 8 (System.Single) IL_00B7: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_00BC: brfalse => Label5 IL_00C1: ldarg.s 5 IL_00C3: brfalse => Label6 IL_00C8: ldloc.s 6 (System.Single) IL_00CA: ldloc.s 5 (System.Single) IL_00CC: ldc.r4 1.2 IL_00D1: mul IL_00D2: ble.un => Label7 IL_00D7: Label6 IL_00D7: ldloca.s 2 (PathUnit+Position) IL_00D9: initobj PathUnit+Position IL_00DF: Label7 IL_00DF: ldarg.s 6 IL_00E1: brfalse => Label8 IL_00E6: ldloc.s 8 (System.Single) IL_00E8: ldloc.s 7 (System.Single) IL_00EA: ldc.r4 1.2 IL_00EF: mul IL_00F0: ble.un => Label9 IL_00F5: Label8 IL_00F5: ldloca.s 4 (PathUnit+Position) IL_00F7: initobj PathUnit+Position IL_00FD: Label9 IL_00FD: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_0102: ldloca.s 11 (System.UInt32) IL_0104: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0109: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_010E: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0113: ldfld System.UInt32 SimulationManager::m_currentBuildIndex IL_0118: ldloc.1 IL_0119: ldloc.2 IL_011A: ldloc.3 IL_011B: ldloc.s 4 (PathUnit+Position) IL_011D: ldc.i4.1 IL_011E: ldloc.0 IL_011F: ldfld VehicleType VehicleInfo::m_vehicleType IL_0124: ldloc.0 IL_0125: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_012A: ldc.r4 20000 IL_012F: ldc.i4.0 IL_0130: ldc.i4.0 IL_0131: ldc.i4.1 IL_0132: ldc.i4.0 IL_0133: callvirt System.Boolean PathManager::CreatePath(System.UInt32& unit, ColossalFramework.Math.Randomizer& randomizer, System.UInt32 buildIndex, Position startPosA, Position startPosB, Position endPosA, Position endPosB, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, System.Single maxLength, System.Boolean isHeavyVehicle, System.Boolean ignoreBlocked, System.Boolean stablePath, System.Boolean skipQueue) IL_0138: brfalse => Label10 IL_013D: ldarg.2 IL_013E: ldfld System.UInt32 Vehicle::m_path IL_0143: brfalse => Label11 IL_0148: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_014D: ldarg.2 IL_014E: ldfld System.UInt32 Vehicle::m_path IL_0153: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit) IL_0158: Label11 IL_0158: ldarg.2 IL_0159: ldloc.s 11 (System.UInt32) IL_015B: stfld System.UInt32 Vehicle::m_path IL_0160: ldarg.2 IL_0161: dup IL_0162: ldfld Flags Vehicle::m_flags IL_0167: ldc.i4 256 IL_016C: or IL_016D: stfld Flags Vehicle::m_flags IL_0172: ldc.i4.1 IL_0173: br => Label12 IL_0178: Label4 IL_0178: Label5 IL_0178: Label10 IL_0178: ldc.i4.0 IL_0179: // end original IL_0179: Label12 IL_0179: stloc 12 (System.Boolean) IL_017D: Label0 IL_017D: ldloc 12 (System.Boolean) IL_0181: ret DONE ### Patch: virtual System.Void TrainAI::CalculateSegmentPosition(System.UInt16 vehicleID, Vehicle& vehicleData, Position position, System.UInt32 laneID, System.Byte offset, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) ### Replacement: static System.Void TrainAI::TrainAI.CalculateSegmentPosition_Patch0(TrainAI this, System.UInt16 vehicleID, Vehicle& vehicleData, Position position, System.UInt32 laneID, System.Byte offset, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) IL_0000: Local var 0: NetManager IL_0000: Local var 1: NetInfo IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: ldarg.2 IL_0003: ldarg.3 IL_0004: ldarg.s 4 IL_0006: ldarg.s 5 IL_0008: ldarg.s 6 IL_000A: ldarg.s 7 IL_000C: ldarg.s 8 IL_000E: call static System.Void TrafficManager.Patch._VehicleAI.VehicleAICommons::CustomCalculateSegmentPosition_NoSlowDriving(VehicleAI instance, System.UInt16 vehicleId, Vehicle& vehicleData, Position position, System.UInt32 laneId, System.Byte offset, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) IL_0013: // end original IL_0013: ret DONE ### Patch: System.Void TrainAI::CheckNextLane(System.UInt16 vehicleID, Vehicle& vehicleData, System.Single& maxSpeed, Position position, System.UInt32 laneID, System.Byte offset, Position prevPos, System.UInt32 prevLaneID, System.Byte prevOffset, ColossalFramework.Math.Bezier3 bezier) ### Replacement: static System.Void TrainAI::TrainAI.CheckNextLane_Patch1(TrainAI this, System.UInt16 vehicleID, Vehicle& vehicleData, System.Single& maxSpeed, Position position, System.UInt32 laneID, System.Byte offset, Position prevPos, System.UInt32 prevLaneID, System.Byte prevOffset, ColossalFramework.Math.Bezier3 bezier) IL_0000: Local var 0: NetManager IL_0000: Local var 1: Vehicle/Frame IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: System.Single IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Single IL_0000: Local var 8: UnityEngine.Vector3 IL_0000: Local var 9: ColossalFramework.Math.Segment3 IL_0000: Local var 10: UnityEngine.Vector3 IL_0000: Local var 11: System.UInt16 IL_0000: Local var 12: System.UInt16 IL_0000: Local var 13: NetNode/Flags IL_0000: Local var 14: NetLane/Flags IL_0000: Local var 15: System.Boolean IL_0000: Local var 16: System.Boolean IL_0000: Local var 17: System.UInt32 IL_0000: Local var 18: System.UInt32 IL_0000: Local var 19: System.UInt32 IL_0000: Local var 20: RoadBaseAI/TrafficLightState IL_0000: Local var 21: RoadBaseAI/TrafficLightState IL_0000: Local var 22: System.Boolean IL_0000: Local var 23: System.Boolean IL_0000: Local var 24: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 24 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 24 (System.Boolean) IL_000E: ldloc 24 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg.0 IL_0018: ldarg 1 IL_001C: ldarg 2 IL_0020: ldarg 3 IL_0024: ldarg 4 IL_0028: ldarg 5 IL_002C: ldarg 6 IL_0030: ldarg 7 IL_0034: ldarg 8 IL_0038: ldarg 9 IL_003C: ldarg 10 IL_0040: call static System.Boolean TrafficManager.Patch._VehicleAI._TrainAI.CheckNextLanePatch::Prefix(TrainAI __instance, System.UInt16 vehicleID, Vehicle& vehicleData, System.Single& maxSpeed, Position position, System.UInt32 laneID, System.Byte offset, Position prevPos, System.UInt32 prevLaneID, System.Byte prevOffset, ColossalFramework.Math.Bezier3 bezier) IL_0045: stloc 24 (System.Boolean) IL_0049: Label1 IL_0049: nop IL_004A: ldloc 24 (System.Boolean) IL_004E: brfalse => Label0 IL_0053: // start original IL_0053: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0058: stloc.0 IL_0059: ldarg.2 IL_005A: call Frame Vehicle::GetLastFrameData() IL_005F: stloc.1 IL_0060: ldloca.s 1 (Vehicle+Frame) IL_0062: ldfld UnityEngine.Vector3 Frame::m_position IL_0067: stloc.2 IL_0068: ldloca.s 1 (Vehicle+Frame) IL_006A: ldfld UnityEngine.Vector3 Frame::m_position IL_006F: stloc.3 IL_0070: ldloca.s 1 (Vehicle+Frame) IL_0072: ldfld UnityEngine.Quaternion Frame::m_rotation IL_0077: ldc.r4 0 IL_007C: ldc.r4 0 IL_0081: ldarg.0 IL_0082: ldfld VehicleInfo VehicleAI::m_info IL_0087: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_008C: ldfld System.Single VehicleInfoGen::m_wheelBase IL_0091: ldc.r4 0.5 IL_0096: mul IL_0097: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_009C: call static UnityEngine.Vector3 UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation, UnityEngine.Vector3 point) IL_00A1: stloc.s 4 (UnityEngine.Vector3) IL_00A3: ldloc.2 IL_00A4: ldloc.s 4 (UnityEngine.Vector3) IL_00A6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00AB: stloc.2 IL_00AC: ldloc.3 IL_00AD: ldloc.s 4 (UnityEngine.Vector3) IL_00AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00B4: stloc.3 IL_00B5: ldc.r4 0.5 IL_00BA: ldloca.s 1 (Vehicle+Frame) IL_00BC: ldflda UnityEngine.Vector3 Frame::m_velocity IL_00C1: call System.Single UnityEngine.Vector3::get_sqrMagnitude() IL_00C6: mul IL_00C7: ldarg.0 IL_00C8: ldfld VehicleInfo VehicleAI::m_info IL_00CD: ldfld System.Single VehicleInfo::m_braking IL_00D2: div IL_00D3: stloc.s 5 (System.Single) IL_00D5: ldloc.2 IL_00D6: ldarga.s 10 IL_00D8: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a IL_00DD: call static System.Single UnityEngine.Vector3::Distance(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00E2: stloc.s 6 (System.Single) IL_00E4: ldloc.3 IL_00E5: ldarga.s 10 IL_00E7: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a IL_00EC: call static System.Single UnityEngine.Vector3::Distance(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00F1: stloc.s 7 (System.Single) IL_00F3: ldloc.s 6 (System.Single) IL_00F5: ldloc.s 7 (System.Single) IL_00F7: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_00FC: ldloc.s 5 (System.Single) IL_00FE: ldc.r4 5 IL_0103: sub IL_0104: blt.un => Label2 IL_0109: ldloc.0 IL_010A: ldfld Array32`1 NetManager::m_lanes IL_010F: ldfld NetLane[] Array32`1::m_buffer IL_0114: ldarg.s 5 IL_0116: conv.u IL_0117: ldelema NetLane IL_011C: ldc.r4 1000 IL_0121: ldarg.1 IL_0122: call System.Boolean NetLane::CheckSpace(System.Single len, System.UInt16 ignoreID) IL_0127: brtrue => Label3 IL_012C: ldarg.2 IL_012D: dup IL_012E: ldfld Flags2 Vehicle::m_flags2 IL_0133: ldc.i4.4 IL_0134: or IL_0135: stfld Flags2 Vehicle::m_flags2 IL_013A: ldarg.2 IL_013B: ldc.i4.0 IL_013C: stfld System.Byte Vehicle::m_waitCounter IL_0141: ldarg.3 IL_0142: ldc.r4 0 IL_0147: stind.r4 IL_0148: br => Label32 IL_014D: Label3 IL_014D: ldarga.s 10 IL_014F: ldc.r4 0.5 IL_0154: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0159: stloc.s 8 (UnityEngine.Vector3) IL_015B: ldarg.2 IL_015C: ldflda ColossalFramework.Math.Segment3 Vehicle::m_segment IL_0161: ldfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a IL_0166: ldloc.s 8 (UnityEngine.Vector3) IL_0168: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_016D: call static System.Single UnityEngine.Vector3::SqrMagnitude(UnityEngine.Vector3 a) IL_0172: ldarga.s 10 IL_0174: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a IL_0179: ldloc.s 8 (UnityEngine.Vector3) IL_017B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0180: call static System.Single UnityEngine.Vector3::SqrMagnitude(UnityEngine.Vector3 a) IL_0185: bge.un => Label4 IL_018A: ldloca.s 9 (ColossalFramework.Math.Segment3) IL_018C: ldarg.2 IL_018D: ldflda ColossalFramework.Math.Segment3 Vehicle::m_segment IL_0192: ldfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a IL_0197: ldloc.s 8 (UnityEngine.Vector3) IL_0199: call System.Void ColossalFramework.Math.Segment3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b) IL_019E: br => Label5 IL_01A3: Label4 IL_01A3: ldloca.s 9 (ColossalFramework.Math.Segment3) IL_01A5: ldarga.s 10 IL_01A7: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a IL_01AC: ldloc.s 8 (UnityEngine.Vector3) IL_01AE: call System.Void ColossalFramework.Math.Segment3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b) IL_01B3: Label5 IL_01B3: ldloca.s 9 (ColossalFramework.Math.Segment3) IL_01B5: call System.Single ColossalFramework.Math.Segment3::LengthSqr() IL_01BA: ldc.r4 3 IL_01BF: blt.un => Label6 IL_01C4: ldloca.s 9 (ColossalFramework.Math.Segment3) IL_01C6: dup IL_01C7: ldfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a IL_01CC: ldloca.s 9 (ColossalFramework.Math.Segment3) IL_01CE: ldfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b IL_01D3: ldloca.s 9 (ColossalFramework.Math.Segment3) IL_01D5: ldfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a IL_01DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_01DF: stloc.s 10 (UnityEngine.Vector3) IL_01E1: ldloca.s 10 (UnityEngine.Vector3) IL_01E3: call UnityEngine.Vector3 UnityEngine.Vector3::get_normalized() IL_01E8: ldc.r4 2.5 IL_01ED: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_01F2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_01F7: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a IL_01FC: ldarg.1 IL_01FD: ldarg.2 IL_01FE: ldloc.s 9 (ColossalFramework.Math.Segment3) IL_0200: ldarg.1 IL_0201: call static System.Boolean TrainAI::CheckOverlap(System.UInt16 vehicleID, Vehicle& vehicleData, ColossalFramework.Math.Segment3 segment, System.UInt16 ignoreVehicle) IL_0206: brfalse => Label7 IL_020B: ldarg.2 IL_020C: dup IL_020D: ldfld Flags2 Vehicle::m_flags2 IL_0212: ldc.i4.4 IL_0213: or IL_0214: stfld Flags2 Vehicle::m_flags2 IL_0219: ldarg.2 IL_021A: ldc.i4.0 IL_021B: stfld System.Byte Vehicle::m_waitCounter IL_0220: ldarg.3 IL_0221: ldc.r4 0 IL_0226: stind.r4 IL_0227: br => Label33 IL_022C: Label6 IL_022C: Label7 IL_022C: ldloca.s 9 (ColossalFramework.Math.Segment3) IL_022E: ldloc.s 8 (UnityEngine.Vector3) IL_0230: ldarga.s 10 IL_0232: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::d IL_0237: call System.Void ColossalFramework.Math.Segment3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b) IL_023C: ldloca.s 9 (ColossalFramework.Math.Segment3) IL_023E: call System.Single ColossalFramework.Math.Segment3::LengthSqr() IL_0243: ldc.r4 1 IL_0248: blt.un => Label8 IL_024D: ldarg.1 IL_024E: ldarg.2 IL_024F: ldloc.s 9 (ColossalFramework.Math.Segment3) IL_0251: ldarg.1 IL_0252: call static System.Boolean TrainAI::CheckOverlap(System.UInt16 vehicleID, Vehicle& vehicleData, ColossalFramework.Math.Segment3 segment, System.UInt16 ignoreVehicle) IL_0257: brfalse => Label9 IL_025C: ldarg.2 IL_025D: dup IL_025E: ldfld Flags2 Vehicle::m_flags2 IL_0263: ldc.i4.4 IL_0264: or IL_0265: stfld Flags2 Vehicle::m_flags2 IL_026A: ldarg.2 IL_026B: ldc.i4.0 IL_026C: stfld System.Byte Vehicle::m_waitCounter IL_0271: ldarg.3 IL_0272: ldc.r4 0 IL_0277: stind.r4 IL_0278: br => Label34 IL_027D: Label8 IL_027D: Label9 IL_027D: ldarg.0 IL_027E: ldfld VehicleInfo VehicleAI::m_info IL_0283: ldfld VehicleType VehicleInfo::m_vehicleType IL_0288: ldc.i4 2048 IL_028D: beq => Label10 IL_0292: ldarg.s 6 IL_0294: ldarga.s 4 IL_0296: ldfld System.Byte Position::m_offset IL_029B: bge => Label11 IL_02A0: ldloc.0 IL_02A1: ldfld Array16`1 NetManager::m_segments IL_02A6: ldfld NetSegment[] Array16`1::m_buffer IL_02AB: ldarga.s 4 IL_02AD: ldfld System.UInt16 Position::m_segment IL_02B2: ldelema NetSegment IL_02B7: ldfld System.UInt16 NetSegment::m_startNode IL_02BC: stloc.s 11 (System.UInt16) IL_02BE: br => Label12 IL_02C3: Label11 IL_02C3: ldloc.0 IL_02C4: ldfld Array16`1 NetManager::m_segments IL_02C9: ldfld NetSegment[] Array16`1::m_buffer IL_02CE: ldarga.s 4 IL_02D0: ldfld System.UInt16 Position::m_segment IL_02D5: ldelema NetSegment IL_02DA: ldfld System.UInt16 NetSegment::m_endNode IL_02DF: stloc.s 11 (System.UInt16) IL_02E1: Label12 IL_02E1: ldarg.s 9 IL_02E3: brtrue => Label13 IL_02E8: ldloc.0 IL_02E9: ldfld Array16`1 NetManager::m_segments IL_02EE: ldfld NetSegment[] Array16`1::m_buffer IL_02F3: ldarga.s 7 IL_02F5: ldfld System.UInt16 Position::m_segment IL_02FA: ldelema NetSegment IL_02FF: ldfld System.UInt16 NetSegment::m_startNode IL_0304: stloc.s 12 (System.UInt16) IL_0306: br => Label14 IL_030B: Label13 IL_030B: ldloc.0 IL_030C: ldfld Array16`1 NetManager::m_segments IL_0311: ldfld NetSegment[] Array16`1::m_buffer IL_0316: ldarga.s 7 IL_0318: ldfld System.UInt16 Position::m_segment IL_031D: ldelema NetSegment IL_0322: ldfld System.UInt16 NetSegment::m_endNode IL_0327: stloc.s 12 (System.UInt16) IL_0329: Label14 IL_0329: ldloc.s 11 (System.UInt16) IL_032B: ldloc.s 12 (System.UInt16) IL_032D: bne.un => Label15 IL_0332: ldloc.0 IL_0333: ldfld Array16`1 NetManager::m_nodes IL_0338: ldfld NetNode[] Array16`1::m_buffer IL_033D: ldloc.s 11 (System.UInt16) IL_033F: ldelema NetNode IL_0344: ldfld Flags NetNode::m_flags IL_0349: stloc.s 13 (NetNode+Flags) IL_034B: ldloc.0 IL_034C: ldfld Array32`1 NetManager::m_lanes IL_0351: ldfld NetLane[] Array32`1::m_buffer IL_0356: ldarg.s 8 IL_0358: conv.u IL_0359: ldelema NetLane IL_035E: ldfld System.UInt16 NetLane::m_flags IL_0363: stloc.s 14 (NetLane+Flags) IL_0365: ldloc.s 13 (NetNode+Flags) IL_0367: ldc.i4 8388608 IL_036C: and IL_036D: ldc.i4.0 IL_036E: ceq IL_0370: ldc.i4.0 IL_0371: ceq IL_0373: stloc.s 15 (System.Boolean) IL_0375: ldloc.s 14 (NetLane+Flags) IL_0377: ldc.i4 3072 IL_037C: and IL_037D: brfalse => Label16 IL_0382: ldloc.s 13 (NetNode+Flags) IL_0384: ldc.i4 25165952 IL_0389: and IL_038A: ldc.i4 128 IL_038F: ceq IL_0391: br => Label17 IL_0396: Label16 IL_0396: ldc.i4.0 IL_0397: Label17 IL_0397: stloc.s 16 (System.Boolean) IL_0399: ldloc.s 15 (System.Boolean) IL_039B: brfalse => Label18 IL_03A0: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_03A5: ldfld System.UInt32 SimulationManager::m_currentFrameIndex IL_03AA: stloc.s 17 (System.UInt32) IL_03AC: ldloc.s 12 (System.UInt16) IL_03AE: ldc.i4.8 IL_03AF: shl IL_03B0: ldc.i4 32768 IL_03B5: div.un IL_03B6: stloc.s 18 (System.UInt32) IL_03B8: ldloc.s 17 (System.UInt32) IL_03BA: ldloc.s 18 (System.UInt32) IL_03BC: sub IL_03BD: ldc.i4 255 IL_03C2: and IL_03C3: stloc.s 19 (System.UInt32) IL_03C5: ldloc.s 12 (System.UInt16) IL_03C7: ldloc.0 IL_03C8: ldfld Array16`1 NetManager::m_segments IL_03CD: ldfld NetSegment[] Array16`1::m_buffer IL_03D2: ldarga.s 7 IL_03D4: ldfld System.UInt16 Position::m_segment IL_03D9: ldelema NetSegment IL_03DE: ldloc.s 17 (System.UInt32) IL_03E0: ldloc.s 18 (System.UInt32) IL_03E2: sub IL_03E3: ldloca.s 20 (RoadBaseAI+TrafficLightState) IL_03E5: ldloca.s 21 (RoadBaseAI+TrafficLightState) IL_03E7: ldloca.s 22 (System.Boolean) IL_03E9: ldloca.s 23 (System.Boolean) IL_03EB: call static System.Void RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData, System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState& pedestrianLightState, System.Boolean& vehicles, System.Boolean& pedestrians) IL_03F0: ldloc.s 22 (System.Boolean) IL_03F2: brtrue => Label19 IL_03F7: ldloc.s 19 (System.UInt32) IL_03F9: ldc.i4 196 IL_03FE: blt.un => Label20 IL_0403: ldc.i4.1 IL_0404: stloc.s 22 (System.Boolean) IL_0406: ldloc.s 12 (System.UInt16) IL_0408: ldloc.0 IL_0409: ldfld Array16`1 NetManager::m_segments IL_040E: ldfld NetSegment[] Array16`1::m_buffer IL_0413: ldarga.s 7 IL_0415: ldfld System.UInt16 Position::m_segment IL_041A: ldelema NetSegment IL_041F: ldloc.s 17 (System.UInt32) IL_0421: ldloc.s 18 (System.UInt32) IL_0423: sub IL_0424: ldloc.s 20 (RoadBaseAI+TrafficLightState) IL_0426: ldloc.s 21 (RoadBaseAI+TrafficLightState) IL_0428: ldloc.s 22 (System.Boolean) IL_042A: ldloc.s 23 (System.Boolean) IL_042C: call static System.Void RoadBaseAI::SetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData, System.UInt32 frame, TrafficLightState vehicleLightState, TrafficLightState pedestrianLightState, System.Boolean vehicles, System.Boolean pedestrians) IL_0431: Label19 IL_0431: Label20 IL_0431: ldloc.s 20 (RoadBaseAI+TrafficLightState) IL_0433: ldc.i4.1 IL_0434: beq => Label21 IL_0439: ldloc.s 20 (RoadBaseAI+TrafficLightState) IL_043B: ldc.i4.3 IL_043C: beq => Label22 IL_0441: ldloc.s 20 (RoadBaseAI+TrafficLightState) IL_0443: ldc.i4.2 IL_0444: beq => Label23 IL_0449: br => Label24 IL_044E: Label21 IL_044E: ldloc.s 19 (System.UInt32) IL_0450: ldc.i4.s 60 IL_0452: bge.un => Label25 IL_0457: ldarg.2 IL_0458: dup IL_0459: ldfld Flags2 Vehicle::m_flags2 IL_045E: ldc.i4.4 IL_045F: or IL_0460: stfld Flags2 Vehicle::m_flags2 IL_0465: ldarg.2 IL_0466: ldc.i4.0 IL_0467: stfld System.Byte Vehicle::m_waitCounter IL_046C: ldarg.3 IL_046D: ldc.r4 0 IL_0472: stind.r4 IL_0473: br => Label35 IL_0478: Label25 IL_0478: br => Label26 IL_047D: Label22 IL_047D: ldloc.s 19 (System.UInt32) IL_047F: ldc.i4.s 30 IL_0481: blt.un => Label27 IL_0486: ldarg.2 IL_0487: dup IL_0488: ldfld Flags2 Vehicle::m_flags2 IL_048D: ldc.i4.4 IL_048E: or IL_048F: stfld Flags2 Vehicle::m_flags2 IL_0494: ldarg.2 IL_0495: ldc.i4.0 IL_0496: stfld System.Byte Vehicle::m_waitCounter IL_049B: ldarg.3 IL_049C: ldc.r4 0 IL_04A1: stind.r4 IL_04A2: br => Label36 IL_04A7: Label27 IL_04A7: br => Label28 IL_04AC: Label23 IL_04AC: ldarg.2 IL_04AD: dup IL_04AE: ldfld Flags2 Vehicle::m_flags2 IL_04B3: ldc.i4.4 IL_04B4: or IL_04B5: stfld Flags2 Vehicle::m_flags2 IL_04BA: ldarg.2 IL_04BB: ldc.i4.0 IL_04BC: stfld System.Byte Vehicle::m_waitCounter IL_04C1: ldarg.3 IL_04C2: ldc.r4 0 IL_04C7: stind.r4 IL_04C8: br => Label37 IL_04CD: Label18 IL_04CD: Label24 IL_04CD: Label26 IL_04CD: Label28 IL_04CD: ldloc.s 16 (System.Boolean) IL_04CF: brfalse => Label29 IL_04D4: ldarg.2 IL_04D5: ldfld Flags2 Vehicle::m_flags2 IL_04DA: ldc.i4.4 IL_04DB: and IL_04DC: brfalse => Label30 IL_04E1: ldarg.2 IL_04E2: ldarg.2 IL_04E3: ldfld System.Byte Vehicle::m_waitCounter IL_04E8: ldc.i4.1 IL_04E9: add IL_04EA: ldc.i4.4 IL_04EB: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_04F0: conv.u1 IL_04F1: stfld System.Byte Vehicle::m_waitCounter IL_04F6: ldarg.2 IL_04F7: ldfld System.Byte Vehicle::m_waitCounter IL_04FC: ldc.i4.4 IL_04FD: bge => Label31 IL_0502: ldarg.3 IL_0503: ldc.r4 0 IL_0508: stind.r4 IL_0509: br => Label38 IL_050E: Label31 IL_050E: ldarg.2 IL_050F: dup IL_0510: ldfld Flags2 Vehicle::m_flags2 IL_0515: ldc.i4.s -5 IL_0517: and IL_0518: stfld Flags2 Vehicle::m_flags2 IL_051D: ldarg.2 IL_051E: ldc.i4.0 IL_051F: stfld System.Byte Vehicle::m_waitCounter IL_0524: // end original IL_0524: Label2 IL_0524: Label10 IL_0524: Label15 IL_0524: Label29 IL_0524: Label30 IL_0524: Label32 IL_0524: Label33 IL_0524: Label34 IL_0524: Label35 IL_0524: Label36 IL_0524: Label37 IL_0524: Label38 IL_0524: Label0 IL_0524: ret DONE ### Patch: System.Void TrainAI::ForceTrafficLights(System.UInt16 vehicleID, Vehicle& vehicleData, System.Boolean reserveSpace) ### Replacement: static System.Void TrainAI::TrainAI.ForceTrafficLights_Patch1(TrainAI this, System.UInt16 vehicleID, Vehicle& vehicleData, System.Boolean reserveSpace) IL_0000: Local var 0: System.UInt32 IL_0000: Local var 1: NetManager IL_0000: Local var 2: PathManager IL_0000: Local var 3: System.Byte IL_0000: Local var 4: PathUnit/Position IL_0000: Local var 5: System.Int32 IL_0000: Local var 6: System.UInt32 IL_0000: Local var 7: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 7 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 7 (System.Boolean) IL_000E: ldloc 7 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg.0 IL_0018: ldarg 1 IL_001C: ldarg 2 IL_0020: ldarg 3 IL_0024: call static System.Boolean TrafficManager.Patch._VehicleAI._TrainAI.ForceTrafficLightsPatch::Prefix(TrainAI __instance, System.UInt16 vehicleID, Vehicle& vehicleData, System.Boolean reserveSpace) IL_0029: stloc 7 (System.Boolean) IL_002D: Label1 IL_002D: nop IL_002E: ldloc 7 (System.Boolean) IL_0032: brfalse => Label0 IL_0037: // start original IL_0037: ldarg.2 IL_0038: ldfld System.UInt32 Vehicle::m_path IL_003D: stloc.0 IL_003E: ldloc.0 IL_003F: brfalse => Label2 IL_0044: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0049: stloc.1 IL_004A: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_004F: stloc.2 IL_0050: ldarg.2 IL_0051: ldfld System.Byte Vehicle::m_pathPositionIndex IL_0056: stloc.3 IL_0057: ldloc.3 IL_0058: ldc.i4 255 IL_005D: bne.un => Label3 IL_0062: ldc.i4.0 IL_0063: stloc.3 IL_0064: Label3 IL_0064: ldloc.3 IL_0065: ldc.i4.1 IL_0066: shr IL_0067: conv.u1 IL_0068: stloc.3 IL_0069: ldc.i4.0 IL_006A: stloc.s 5 (System.Int32) IL_006C: br => Label4 IL_0071: Label13 IL_0071: ldloc.2 IL_0072: ldfld Array32`1 PathManager::m_pathUnits IL_0077: ldfld PathUnit[] Array32`1::m_buffer IL_007C: ldloc.0 IL_007D: conv.u IL_007E: ldelema PathUnit IL_0083: ldloc.3 IL_0084: ldloca.s 4 (PathUnit+Position) IL_0086: call System.Boolean PathUnit::GetPosition(System.Int32 index, Position& position) IL_008B: brfalse => Label5 IL_0090: ldarg.3 IL_0091: brfalse => Label6 IL_0096: ldloc.s 5 (System.Int32) IL_0098: ldc.i4.1 IL_0099: blt => Label7 IL_009E: ldloc.s 5 (System.Int32) IL_00A0: ldc.i4.2 IL_00A1: bgt => Label8 IL_00A6: ldloc.s 4 (PathUnit+Position) IL_00A8: call static System.UInt32 PathManager::GetLaneID(Position pathPos) IL_00AD: stloc.s 6 (System.UInt32) IL_00AF: ldloc.s 6 (System.UInt32) IL_00B1: brfalse => Label9 IL_00B6: ldloc.1 IL_00B7: ldfld Array32`1 NetManager::m_lanes IL_00BC: ldfld NetLane[] Array32`1::m_buffer IL_00C1: ldloc.s 6 (System.UInt32) IL_00C3: conv.u IL_00C4: ldelema NetLane IL_00C9: ldarg.0 IL_00CA: ldfld VehicleInfo VehicleAI::m_info IL_00CF: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_00D4: ldflda UnityEngine.Vector3 VehicleInfoGen::m_size IL_00D9: ldfld System.Single UnityEngine.Vector3::z IL_00DE: ldarg.1 IL_00DF: call System.Boolean NetLane::ReserveSpace(System.Single len, System.UInt16 reserveID) IL_00E4: starg.s 3 IL_00E6: Label6 IL_00E6: Label7 IL_00E6: Label8 IL_00E6: Label9 IL_00E6: ldloc.s 4 (PathUnit+Position) IL_00E8: call static System.Void TrainAI::ForceTrafficLights(Position position) IL_00ED: br => Label10 IL_00F2: Label5 IL_00F2: br => Label14 IL_00F7: Label10 IL_00F7: ldloc.3 IL_00F8: ldc.i4.1 IL_00F9: add IL_00FA: conv.u1 IL_00FB: dup IL_00FC: stloc.3 IL_00FD: ldloc.2 IL_00FE: ldfld Array32`1 PathManager::m_pathUnits IL_0103: ldfld PathUnit[] Array32`1::m_buffer IL_0108: ldloc.0 IL_0109: conv.u IL_010A: ldelema PathUnit IL_010F: ldfld System.Byte PathUnit::m_positionCount IL_0114: blt => Label11 IL_0119: ldloc.2 IL_011A: ldfld Array32`1 PathManager::m_pathUnits IL_011F: ldfld PathUnit[] Array32`1::m_buffer IL_0124: ldloc.0 IL_0125: conv.u IL_0126: ldelema PathUnit IL_012B: ldfld System.UInt32 PathUnit::m_nextPathUnit IL_0130: stloc.0 IL_0131: ldc.i4.0 IL_0132: stloc.3 IL_0133: ldloc.0 IL_0134: brtrue => Label12 IL_0139: br => Label15 IL_013E: Label11 IL_013E: Label12 IL_013E: ldloc.s 5 (System.Int32) IL_0140: ldc.i4.1 IL_0141: add IL_0142: stloc.s 5 (System.Int32) IL_0144: Label4 IL_0144: ldloc.s 5 (System.Int32) IL_0146: ldc.i4.6 IL_0147: blt => Label13 IL_014C: // end original IL_014C: Label2 IL_014C: Label14 IL_014C: Label15 IL_014C: Label0 IL_014C: ret DONE ### Patch: virtual System.Void TrainAI::SimulationStep(System.UInt16 vehicleID, Vehicle& vehicleData, Frame& frameData, System.UInt16 leaderID, Vehicle& leaderData, System.Int32 lodPhysics) ### Replacement: static System.Void TrainAI::TrainAI.SimulationStep_Patch1(TrainAI this, System.UInt16 vehicleID, Vehicle& vehicleData, Frame& frameData, System.UInt16 leaderID, Vehicle& leaderData, System.Int32 lodPhysics) IL_0000: Local var 0: System.Boolean IL_0000: Local var 1: System.UInt16 IL_0000: Local var 2: VehicleInfo IL_0000: Local var 3: TrainAI IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: UnityEngine.Vector3 IL_0000: Local var 7: System.Single IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: UnityEngine.Vector3 IL_0000: Local var 11: System.Single IL_0000: Local var 12: UnityEngine.Quaternion IL_0000: Local var 13: UnityEngine.Vector3 IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: System.Single IL_0000: Local var 17: System.Single IL_0000: Local var 18: VehicleManager IL_0000: Local var 19: Vehicle/Frame IL_0000: Local var 20: VehicleInfo IL_0000: Local var 21: System.Single IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: UnityEngine.Vector3 IL_0000: Local var 25: UnityEngine.Vector3 IL_0000: Local var 26: System.Int32 IL_0000: Local var 27: System.Single IL_0000: Local var 28: System.Single IL_0000: Local var 29: System.Single IL_0000: Local var 30: System.Single IL_0000: Local var 31: System.Int32 IL_0000: Local var 32: NetManager IL_0000: Local var 33: System.Byte IL_0000: Local var 34: System.Byte IL_0000: Local var 35: PathManager IL_0000: Local var 36: PathUnit/Position IL_0000: Local var 37: System.UInt32 IL_0000: Local var 38: System.UInt32 IL_0000: Local var 39: System.Single IL_0000: Local var 40: System.Boolean IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: System.Single IL_0000: Local var 44: System.Single IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: System.Single IL_0000: Local var 48: System.Single IL_0000: Local var 49: System.Int32 IL_0000: Local var 50: System.Int32 IL_0000: Local var 51: System.Boolean IL_0000: Local var 52: NetManager IL_0000: Local var 53: System.Byte IL_0000: Local var 54: System.Byte IL_0000: Local var 55: PathManager IL_0000: Local var 56: PathUnit/Position IL_0000: Local var 57: System.UInt32 IL_0000: Local var 58: System.UInt32 IL_0000: Local var 59: System.Single IL_0000: Local var 60: System.Boolean IL_0000: Local var 61: System.Single IL_0000: Local var 62: UnityEngine.Vector3 IL_0000: Local var 63: System.Single IL_0000: Local var 64: UnityEngine.Vector3 IL_0000: Local var 65: System.Single IL_0000: Local var 66: System.Single IL_0000: Local var 67: System.Single IL_0000: Local var 68: System.Single IL_0000: Local var 69: UnityEngine.Vector3 IL_0000: Local var 70: UnityEngine.Vector3 IL_0000: Local var 71: UnityEngine.Vector3 IL_0000: Local var 72: UnityEngine.Vector3 IL_0000: Local var 73: UnityEngine.Vector3 IL_0000: Local var 74: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 74 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 74 (System.Boolean) IL_000E: ldloc 74 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg.0 IL_0018: ldarg.0 IL_0019: ldfld VehicleInfo VehicleAI::m_info IL_001E: ldarg 1 IL_0022: ldarg 2 IL_0026: ldarg 3 IL_002A: ldarg 4 IL_002E: ldarg 5 IL_0032: ldarg 6 IL_0036: call static System.Boolean TrafficManager.Patch._VehicleAI._TrainAI.SimulationStep2Patch::Prefix(TrainAI __instance, VehicleInfo ___m_info, System.UInt16 vehicleID, Vehicle& vehicleData, Frame& frameData, System.UInt16 leaderID, Vehicle& leaderData, System.Int32 lodPhysics) IL_003B: stloc 74 (System.Boolean) IL_003F: Label1 IL_003F: nop IL_0040: ldloc 74 (System.Boolean) IL_0044: brfalse => Label0 IL_0049: // start original IL_0049: ldarg.s 5 IL_004B: ldfld Flags Vehicle::m_flags IL_0050: ldc.i4 4096 IL_0055: and IL_0056: ldc.i4.0 IL_0057: ceq IL_0059: ldc.i4.0 IL_005A: ceq IL_005C: stloc.0 IL_005D: ldloc.0 IL_005E: brfalse => Label2 IL_0063: ldarg.2 IL_0064: ldfld System.UInt16 Vehicle::m_trailingVehicle IL_0069: br => Label3 IL_006E: Label2 IL_006E: ldarg.2 IL_006F: ldfld System.UInt16 Vehicle::m_leadingVehicle IL_0074: Label3 IL_0074: stloc.1 IL_0075: ldarg.s 4 IL_0077: ldarg.1 IL_0078: beq => Label4 IL_007D: ldarg.s 5 IL_007F: call VehicleInfo Vehicle::get_Info() IL_0084: stloc.2 IL_0085: br => Label5 IL_008A: Label4 IL_008A: ldarg.0 IL_008B: ldfld VehicleInfo VehicleAI::m_info IL_0090: stloc.2 IL_0091: Label5 IL_0091: ldloc.2 IL_0092: ldfld VehicleAI VehicleInfo::m_vehicleAI IL_0097: isinst TrainAI IL_009C: stloc.3 IL_009D: ldloc.1 IL_009E: brfalse => Label6 IL_00A3: ldarg.3 IL_00A4: dup IL_00A5: ldfld UnityEngine.Vector3 Frame::m_position IL_00AA: ldarg.3 IL_00AB: ldfld UnityEngine.Vector3 Frame::m_velocity IL_00B0: ldc.r4 0.4 IL_00B5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_00BA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BF: stfld UnityEngine.Vector3 Frame::m_position IL_00C4: br => Label7 IL_00C9: Label6 IL_00C9: ldarg.3 IL_00CA: dup IL_00CB: ldfld UnityEngine.Vector3 Frame::m_position IL_00D0: ldarg.3 IL_00D1: ldfld UnityEngine.Vector3 Frame::m_velocity IL_00D6: ldc.r4 0.5 IL_00DB: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_00E0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00E5: stfld UnityEngine.Vector3 Frame::m_position IL_00EA: Label7 IL_00EA: ldarg.3 IL_00EB: dup IL_00EC: ldfld UnityEngine.Vector3 Frame::m_swayPosition IL_00F1: ldarg.3 IL_00F2: ldfld UnityEngine.Vector3 Frame::m_swayVelocity IL_00F7: ldc.r4 0.5 IL_00FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0101: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0106: stfld UnityEngine.Vector3 Frame::m_swayPosition IL_010B: ldarg.3 IL_010C: ldfld UnityEngine.Vector3 Frame::m_position IL_0111: stloc.s 4 (UnityEngine.Vector3) IL_0113: ldarg.3 IL_0114: ldfld UnityEngine.Vector3 Frame::m_position IL_0119: stloc.s 5 (UnityEngine.Vector3) IL_011B: ldarg.3 IL_011C: ldfld UnityEngine.Quaternion Frame::m_rotation IL_0121: ldc.r4 0 IL_0126: ldc.r4 0 IL_012B: ldarg.0 IL_012C: ldfld VehicleInfo VehicleAI::m_info IL_0131: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_0136: ldfld System.Single VehicleInfoGen::m_wheelBase IL_013B: ldc.r4 0.5 IL_0140: mul IL_0141: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0146: call static UnityEngine.Vector3 UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation, UnityEngine.Vector3 point) IL_014B: stloc.s 6 (UnityEngine.Vector3) IL_014D: ldloc.0 IL_014E: brfalse => Label8 IL_0153: ldloc.s 4 (UnityEngine.Vector3) IL_0155: ldloc.s 6 (UnityEngine.Vector3) IL_0157: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_015C: stloc.s 4 (UnityEngine.Vector3) IL_015E: ldloc.s 5 (UnityEngine.Vector3) IL_0160: ldloc.s 6 (UnityEngine.Vector3) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 5 (UnityEngine.Vector3) IL_0169: br => Label9 IL_016E: Label8 IL_016E: ldloc.s 4 (UnityEngine.Vector3) IL_0170: ldloc.s 6 (UnityEngine.Vector3) IL_0172: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0177: stloc.s 4 (UnityEngine.Vector3) IL_0179: ldloc.s 5 (UnityEngine.Vector3) IL_017B: ldloc.s 6 (UnityEngine.Vector3) IL_017D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0182: stloc.s 5 (UnityEngine.Vector3) IL_0184: Label9 IL_0184: ldarg.0 IL_0185: ldfld VehicleInfo VehicleAI::m_info IL_018A: ldfld System.Single VehicleInfo::m_acceleration IL_018F: stloc.s 7 (System.Single) IL_0191: ldarg.0 IL_0192: ldfld VehicleInfo VehicleAI::m_info IL_0197: ldfld System.Single VehicleInfo::m_braking IL_019C: stloc.s 8 (System.Single) IL_019E: ldarg.3 IL_019F: ldflda UnityEngine.Vector3 Frame::m_velocity IL_01A4: call System.Single UnityEngine.Vector3::get_magnitude() IL_01A9: stloc.s 9 (System.Single) IL_01AB: ldarg.2 IL_01AC: ldfld UnityEngine.Vector4 Vehicle::m_targetPos1 IL_01B1: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_01B6: ldloc.s 4 (UnityEngine.Vector3) IL_01B8: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_01BD: stloc.s 10 (UnityEngine.Vector3) IL_01BF: ldloca.s 10 (UnityEngine.Vector3) IL_01C1: call System.Single UnityEngine.Vector3::get_sqrMagnitude() IL_01C6: stloc.s 11 (System.Single) IL_01C8: ldarg.3 IL_01C9: ldfld UnityEngine.Quaternion Frame::m_rotation IL_01CE: call static UnityEngine.Quaternion UnityEngine.Quaternion::Inverse(UnityEngine.Quaternion rotation) IL_01D3: stloc.s 12 (UnityEngine.Quaternion) IL_01D5: ldloc.s 12 (UnityEngine.Quaternion) IL_01D7: ldarg.3 IL_01D8: ldfld UnityEngine.Vector3 Frame::m_velocity IL_01DD: call static UnityEngine.Vector3 UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation, UnityEngine.Vector3 point) IL_01E2: stloc.s 13 (UnityEngine.Vector3) IL_01E4: call static UnityEngine.Vector3 UnityEngine.Vector3::get_forward() IL_01E9: stloc.s 14 (UnityEngine.Vector3) IL_01EB: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero() IL_01F0: stloc.s 15 (UnityEngine.Vector3) IL_01F2: ldc.r4 0 IL_01F7: stloc.s 16 (System.Single) IL_01F9: ldc.r4 0.5 IL_01FE: stloc.s 17 (System.Single) IL_0200: ldloc.1 IL_0201: brfalse => Label10 IL_0206: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_020B: stloc.s 18 (VehicleManager) IL_020D: ldloc.s 18 (VehicleManager) IL_020F: ldfld Array16`1 VehicleManager::m_vehicles IL_0214: ldfld Vehicle[] Array16`1::m_buffer IL_0219: ldloc.1 IL_021A: ldelema Vehicle IL_021F: call Frame Vehicle::GetLastFrameData() IL_0224: stloc.s 19 (Vehicle+Frame) IL_0226: ldloc.s 18 (VehicleManager) IL_0228: ldfld Array16`1 VehicleManager::m_vehicles IL_022D: ldfld Vehicle[] Array16`1::m_buffer IL_0232: ldloc.1 IL_0233: ldelema Vehicle IL_0238: call VehicleInfo Vehicle::get_Info() IL_023D: stloc.s 20 (VehicleInfo) IL_023F: ldarg.2 IL_0240: ldfld Flags Vehicle::m_flags IL_0245: ldc.i4.8 IL_0246: and IL_0247: ldc.i4.0 IL_0248: ceq IL_024A: ldc.i4.0 IL_024B: ceq IL_024D: ldloc.0 IL_024E: beq => Label11 IL_0253: ldarg.0 IL_0254: ldfld VehicleInfo VehicleAI::m_info IL_0259: ldfld System.Single VehicleInfo::m_attachOffsetBack IL_025E: ldarg.0 IL_025F: ldfld VehicleInfo VehicleAI::m_info IL_0264: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_0269: ldflda UnityEngine.Vector3 VehicleInfoGen::m_size IL_026E: ldfld System.Single UnityEngine.Vector3::z IL_0273: ldc.r4 0.5 IL_0278: mul IL_0279: sub IL_027A: stloc.s 21 (System.Single) IL_027C: br => Label12 IL_0281: Label11 IL_0281: ldarg.0 IL_0282: ldfld VehicleInfo VehicleAI::m_info IL_0287: ldfld System.Single VehicleInfo::m_attachOffsetFront IL_028C: ldarg.0 IL_028D: ldfld VehicleInfo VehicleAI::m_info IL_0292: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_0297: ldflda UnityEngine.Vector3 VehicleInfoGen::m_size IL_029C: ldfld System.Single UnityEngine.Vector3::z IL_02A1: ldc.r4 0.5 IL_02A6: mul IL_02A7: sub IL_02A8: stloc.s 21 (System.Single) IL_02AA: Label12 IL_02AA: ldloc.s 18 (VehicleManager) IL_02AC: ldfld Array16`1 VehicleManager::m_vehicles IL_02B1: ldfld Vehicle[] Array16`1::m_buffer IL_02B6: ldloc.1 IL_02B7: ldelema Vehicle IL_02BC: ldfld Flags Vehicle::m_flags IL_02C1: ldc.i4.8 IL_02C2: and IL_02C3: ldc.i4.0 IL_02C4: ceq IL_02C6: ldc.i4.0 IL_02C7: ceq IL_02C9: ldloc.0 IL_02CA: beq => Label13 IL_02CF: ldloc.s 20 (VehicleInfo) IL_02D1: ldfld System.Single VehicleInfo::m_attachOffsetFront IL_02D6: ldloc.s 20 (VehicleInfo) IL_02D8: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_02DD: ldflda UnityEngine.Vector3 VehicleInfoGen::m_size IL_02E2: ldfld System.Single UnityEngine.Vector3::z IL_02E7: ldc.r4 0.5 IL_02EC: mul IL_02ED: sub IL_02EE: stloc.s 22 (System.Single) IL_02F0: br => Label14 IL_02F5: Label13 IL_02F5: ldloc.s 20 (VehicleInfo) IL_02F7: ldfld System.Single VehicleInfo::m_attachOffsetBack IL_02FC: ldloc.s 20 (VehicleInfo) IL_02FE: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_0303: ldflda UnityEngine.Vector3 VehicleInfoGen::m_size IL_0308: ldfld System.Single UnityEngine.Vector3::z IL_030D: ldc.r4 0.5 IL_0312: mul IL_0313: sub IL_0314: stloc.s 22 (System.Single) IL_0316: Label14 IL_0316: ldarg.3 IL_0317: ldfld UnityEngine.Vector3 Frame::m_position IL_031C: stloc.s 23 (UnityEngine.Vector3) IL_031E: ldloc.0 IL_031F: brfalse => Label15 IL_0324: ldloc.s 23 (UnityEngine.Vector3) IL_0326: ldarg.3 IL_0327: ldfld UnityEngine.Quaternion Frame::m_rotation IL_032C: ldc.r4 0 IL_0331: ldc.r4 0 IL_0336: ldloc.s 21 (System.Single) IL_0338: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_033D: call static UnityEngine.Vector3 UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation, UnityEngine.Vector3 point) IL_0342: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0347: stloc.s 23 (UnityEngine.Vector3) IL_0349: br => Label16 IL_034E: Label15 IL_034E: ldloc.s 23 (UnityEngine.Vector3) IL_0350: ldarg.3 IL_0351: ldfld UnityEngine.Quaternion Frame::m_rotation IL_0356: ldc.r4 0 IL_035B: ldc.r4 0 IL_0360: ldloc.s 21 (System.Single) IL_0362: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0367: call static UnityEngine.Vector3 UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation, UnityEngine.Vector3 point) IL_036C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0371: stloc.s 23 (UnityEngine.Vector3) IL_0373: Label16 IL_0373: ldloca.s 19 (Vehicle+Frame) IL_0375: ldfld UnityEngine.Vector3 Frame::m_position IL_037A: stloc.s 24 (UnityEngine.Vector3) IL_037C: ldloc.0 IL_037D: brfalse => Label17 IL_0382: ldloc.s 24 (UnityEngine.Vector3) IL_0384: ldloca.s 19 (Vehicle+Frame) IL_0386: ldfld UnityEngine.Quaternion Frame::m_rotation IL_038B: ldc.r4 0 IL_0390: ldc.r4 0 IL_0395: ldloc.s 22 (System.Single) IL_0397: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_039C: call static UnityEngine.Vector3 UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation, UnityEngine.Vector3 point) IL_03A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_03A6: stloc.s 24 (UnityEngine.Vector3) IL_03A8: br => Label18 IL_03AD: Label17 IL_03AD: ldloc.s 24 (UnityEngine.Vector3) IL_03AF: ldloca.s 19 (Vehicle+Frame) IL_03B1: ldfld UnityEngine.Quaternion Frame::m_rotation IL_03B6: ldc.r4 0 IL_03BB: ldc.r4 0 IL_03C0: ldloc.s 22 (System.Single) IL_03C2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_03C7: call static UnityEngine.Vector3 UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation, UnityEngine.Vector3 point) IL_03CC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_03D1: stloc.s 24 (UnityEngine.Vector3) IL_03D3: Label18 IL_03D3: ldloca.s 19 (Vehicle+Frame) IL_03D5: ldfld UnityEngine.Vector3 Frame::m_position IL_03DA: stloc.s 25 (UnityEngine.Vector3) IL_03DC: ldloca.s 19 (Vehicle+Frame) IL_03DE: ldfld UnityEngine.Quaternion Frame::m_rotation IL_03E3: ldc.r4 0 IL_03E8: ldc.r4 0 IL_03ED: ldloc.s 20 (VehicleInfo) IL_03EF: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_03F4: ldfld System.Single VehicleInfoGen::m_wheelBase IL_03F9: ldc.r4 0.5 IL_03FE: mul IL_03FF: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0404: call static UnityEngine.Vector3 UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation, UnityEngine.Vector3 point) IL_0409: stloc.s 6 (UnityEngine.Vector3) IL_040B: ldloc.0 IL_040C: brfalse => Label19 IL_0411: ldloc.s 25 (UnityEngine.Vector3) IL_0413: ldloc.s 6 (UnityEngine.Vector3) IL_0415: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_041A: stloc.s 25 (UnityEngine.Vector3) IL_041C: br => Label20 IL_0421: Label19 IL_0421: ldloc.s 25 (UnityEngine.Vector3) IL_0423: ldloc.s 6 (UnityEngine.Vector3) IL_0425: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_042A: stloc.s 25 (UnityEngine.Vector3) IL_042C: Label20 IL_042C: ldarg.2 IL_042D: ldfld UnityEngine.Vector4 Vehicle::m_targetPos1 IL_0432: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0437: ldarg.2 IL_0438: ldfld UnityEngine.Vector4 Vehicle::m_targetPos0 IL_043D: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: ldarg.2 IL_0448: ldfld UnityEngine.Vector4 Vehicle::m_targetPos0 IL_044D: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0452: ldloc.s 5 (UnityEngine.Vector3) IL_0454: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0459: call static System.Single UnityEngine.Vector3::Dot(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs) IL_045E: ldc.r4 0 IL_0463: bge.un => Label21 IL_0468: ldarg.2 IL_0469: ldfld System.UInt32 Vehicle::m_path IL_046E: brfalse => Label22 IL_0473: ldarg.s 5 IL_0475: ldfld Flags Vehicle::m_flags IL_047A: ldc.i4 256 IL_047F: and IL_0480: brtrue => Label23 IL_0485: ldc.i4.m1 IL_0486: stloc.s 26 (System.Int32) IL_0488: ldloc.3 IL_0489: ldarg.1 IL_048A: ldarg.2 IL_048B: ldarg.2 IL_048C: ldfld UnityEngine.Vector4 Vehicle::m_targetPos0 IL_0491: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0496: ldloc.s 5 (UnityEngine.Vector3) IL_0498: ldc.i4.0 IL_0499: ldarg.s 5 IL_049B: ldloca.s 26 (System.Int32) IL_049D: ldc.i4.0 IL_049E: ldc.i4.0 IL_049F: ldloc.s 5 (UnityEngine.Vector3) IL_04A1: ldarg.2 IL_04A2: ldfld UnityEngine.Vector4 Vehicle::m_targetPos0 IL_04A7: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_04AC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B1: call static System.Single UnityEngine.Vector3::SqrMagnitude(UnityEngine.Vector3 a) IL_04B6: ldc.r4 1 IL_04BB: add IL_04BC: ldc.r4 1 IL_04C1: callvirt System.Void TrainAI::UpdatePathTargetPositions(System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 refPos1, UnityEngine.Vector3 refPos2, System.UInt16 leaderID, Vehicle& leaderData, System.Int32& index, System.Int32 max1, System.Int32 max2, System.Single minSqrDistanceA, System.Single minSqrDistanceB) IL_04C6: ldc.r4 0 IL_04CB: stloc.s 11 (System.Single) IL_04CD: Label21 IL_04CD: Label22 IL_04CD: Label23 IL_04CD: ldloc.s 23 (UnityEngine.Vector3) IL_04CF: ldloc.s 24 (UnityEngine.Vector3) IL_04D1: call static System.Single UnityEngine.Vector3::Distance(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04D6: ldc.r4 2 IL_04DB: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_04E0: stloc.s 27 (System.Single) IL_04E2: ldc.r4 1 IL_04E7: stloc.s 28 (System.Single) IL_04E9: ldloc.s 27 (System.Single) IL_04EB: ldloc.s 27 (System.Single) IL_04ED: mul IL_04EE: stloc.s 29 (System.Single) IL_04F0: ldloc.s 28 (System.Single) IL_04F2: ldloc.s 28 (System.Single) IL_04F4: mul IL_04F5: stloc.s 30 (System.Single) IL_04F7: ldc.i4.0 IL_04F8: stloc.s 31 (System.Int32) IL_04FA: ldloc.s 11 (System.Single) IL_04FC: ldloc.s 29 (System.Single) IL_04FE: bge.un => Label24 IL_0503: ldarg.2 IL_0504: ldfld System.UInt32 Vehicle::m_path IL_0509: brfalse => Label25 IL_050E: ldarg.s 5 IL_0510: ldfld Flags Vehicle::m_flags IL_0515: ldc.i4 256 IL_051A: and IL_051B: brtrue => Label26 IL_0520: ldloc.3 IL_0521: ldarg.1 IL_0522: ldarg.2 IL_0523: ldloc.s 5 (UnityEngine.Vector3) IL_0525: ldloc.s 4 (UnityEngine.Vector3) IL_0527: ldc.i4.0 IL_0528: ldarg.s 5 IL_052A: ldloca.s 31 (System.Int32) IL_052C: ldc.i4.1 IL_052D: ldc.i4.2 IL_052E: ldloc.s 29 (System.Single) IL_0530: ldloc.s 30 (System.Single) IL_0532: callvirt System.Void TrainAI::UpdatePathTargetPositions(System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 refPos1, UnityEngine.Vector3 refPos2, System.UInt16 leaderID, Vehicle& leaderData, System.Int32& index, System.Int32 max1, System.Int32 max2, System.Single minSqrDistanceA, System.Single minSqrDistanceB) IL_0537: Label25 IL_0537: Label26 IL_0537: br => Label27 IL_053C: Label28 IL_053C: ldarg.2 IL_053D: ldloc.s 31 (System.Int32) IL_053F: ldarg.2 IL_0540: ldloc.s 31 (System.Int32) IL_0542: ldc.i4.1 IL_0543: sub IL_0544: call UnityEngine.Vector4 Vehicle::GetTargetPos(System.Int32 index) IL_0549: call System.Void Vehicle::SetTargetPos(System.Int32 index, UnityEngine.Vector4 pos) IL_054E: ldloc.s 31 (System.Int32) IL_0550: ldc.i4.1 IL_0551: add IL_0552: stloc.s 31 (System.Int32) IL_0554: Label27 IL_0554: ldloc.s 31 (System.Int32) IL_0556: ldc.i4.4 IL_0557: blt => Label28 IL_055C: ldarg.2 IL_055D: ldfld UnityEngine.Vector4 Vehicle::m_targetPos1 IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0567: ldloc.s 4 (UnityEngine.Vector3) IL_0569: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_056E: stloc.s 10 (UnityEngine.Vector3) IL_0570: ldloca.s 10 (UnityEngine.Vector3) IL_0572: call System.Single UnityEngine.Vector3::get_sqrMagnitude() IL_0577: stloc.s 11 (System.Single) IL_0579: Label24 IL_0579: ldarg.2 IL_057A: ldfld System.UInt32 Vehicle::m_path IL_057F: brfalse => Label29 IL_0584: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0589: stloc.s 32 (NetManager) IL_058B: ldarg.2 IL_058C: ldfld System.Byte Vehicle::m_pathPositionIndex IL_0591: stloc.s 33 (System.Byte) IL_0593: ldarg.2 IL_0594: ldfld System.Byte Vehicle::m_lastPathOffset IL_0599: stloc.s 34 (System.Byte) IL_059B: ldloc.s 33 (System.Byte) IL_059D: ldc.i4 255 IL_05A2: bne.un => Label30 IL_05A7: ldc.i4.0 IL_05A8: stloc.s 33 (System.Byte) IL_05AA: Label30 IL_05AA: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_05AF: stloc.s 35 (PathManager) IL_05B1: ldloc.s 35 (PathManager) IL_05B3: ldfld Array32`1 PathManager::m_pathUnits IL_05B8: ldfld PathUnit[] Array32`1::m_buffer IL_05BD: ldarg.2 IL_05BE: ldfld System.UInt32 Vehicle::m_path IL_05C3: conv.u IL_05C4: ldelema PathUnit IL_05C9: ldloc.s 33 (System.Byte) IL_05CB: ldc.i4.1 IL_05CC: shr IL_05CD: ldloca.s 36 (PathUnit+Position) IL_05CF: call System.Boolean PathUnit::GetPosition(System.Int32 index, Position& position) IL_05D4: brfalse => Label31 IL_05D9: ldloc.s 32 (NetManager) IL_05DB: ldfld Array16`1 NetManager::m_segments IL_05E0: ldfld NetSegment[] Array16`1::m_buffer IL_05E5: ldloca.s 36 (PathUnit+Position) IL_05E7: ldfld System.UInt16 Position::m_segment IL_05EC: ldelema NetSegment IL_05F1: ldarg.0 IL_05F2: ldfld VehicleInfo VehicleAI::m_info IL_05F7: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_05FC: ldflda UnityEngine.Vector3 VehicleInfoGen::m_size IL_0601: ldfld System.Single UnityEngine.Vector3::z IL_0606: ldc.r4 3 IL_060B: mul IL_060C: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_0611: ldarg.0 IL_0612: callvirt virtual System.Int32 VehicleAI::GetNoiseLevel() IL_0617: call System.Void NetSegment::AddTraffic(System.Int32 amount, System.Int32 noise) IL_061C: ldloc.s 33 (System.Byte) IL_061E: ldc.i4.1 IL_061F: and IL_0620: brfalse => Label32 IL_0625: ldloc.s 34 (System.Byte) IL_0627: brfalse => Label33 IL_062C: ldarg.s 5 IL_062E: ldfld Flags Vehicle::m_flags IL_0633: ldc.i4 256 IL_0638: and IL_0639: brfalse => Label34 IL_063E: Label32 IL_063E: Label33 IL_063E: ldloc.s 36 (PathUnit+Position) IL_0640: call static System.UInt32 PathManager::GetLaneID(Position pathPos) IL_0645: stloc.s 37 (System.UInt32) IL_0647: ldloc.s 37 (System.UInt32) IL_0649: brfalse => Label35 IL_064E: ldloc.s 32 (NetManager) IL_0650: ldfld Array32`1 NetManager::m_lanes IL_0655: ldfld NetLane[] Array32`1::m_buffer IL_065A: ldloc.s 37 (System.UInt32) IL_065C: conv.u IL_065D: ldelema NetLane IL_0662: ldarg.0 IL_0663: ldfld VehicleInfo VehicleAI::m_info IL_0668: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_066D: ldflda UnityEngine.Vector3 VehicleInfoGen::m_size IL_0672: ldfld System.Single UnityEngine.Vector3::z IL_0677: call System.Void NetLane::ReserveSpace(System.Single len) IL_067C: Label35 IL_067C: br => Label36 IL_0681: Label34 IL_0681: ldloc.s 35 (PathManager) IL_0683: ldfld Array32`1 PathManager::m_pathUnits IL_0688: ldfld PathUnit[] Array32`1::m_buffer IL_068D: ldarg.2 IL_068E: ldfld System.UInt32 Vehicle::m_path IL_0693: conv.u IL_0694: ldelema PathUnit IL_0699: ldloc.s 33 (System.Byte) IL_069B: ldc.i4.1 IL_069C: shr IL_069D: ldloca.s 36 (PathUnit+Position) IL_069F: call System.Boolean PathUnit::GetNextPosition(System.Int32 index, Position& position) IL_06A4: brfalse => Label37 IL_06A9: ldloc.s 36 (PathUnit+Position) IL_06AB: call static System.UInt32 PathManager::GetLaneID(Position pathPos) IL_06B0: stloc.s 38 (System.UInt32) IL_06B2: ldloc.s 38 (System.UInt32) IL_06B4: brfalse => Label38 IL_06B9: ldloc.s 32 (NetManager) IL_06BB: ldfld Array32`1 NetManager::m_lanes IL_06C0: ldfld NetLane[] Array32`1::m_buffer IL_06C5: ldloc.s 38 (System.UInt32) IL_06C7: conv.u IL_06C8: ldelema NetLane IL_06CD: ldarg.0 IL_06CE: ldfld VehicleInfo VehicleAI::m_info IL_06D3: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_06D8: ldflda UnityEngine.Vector3 VehicleInfoGen::m_size IL_06DD: ldfld System.Single UnityEngine.Vector3::z IL_06E2: call System.Void NetLane::ReserveSpace(System.Single len) IL_06E7: Label29 IL_06E7: Label31 IL_06E7: Label36 IL_06E7: Label37 IL_06E7: Label38 IL_06E7: ldloc.s 12 (UnityEngine.Quaternion) IL_06E9: ldloc.s 10 (UnityEngine.Vector3) IL_06EB: call static UnityEngine.Vector3 UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation, UnityEngine.Vector3 point) IL_06F0: stloc.s 10 (UnityEngine.Vector3) IL_06F2: ldarg.0 IL_06F3: ldfld VehicleInfo VehicleAI::m_info IL_06F8: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_06FD: ldfld System.Single VehicleInfoGen::m_wheelBase IL_0702: ldloc.s 20 (VehicleInfo) IL_0704: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_0709: ldfld System.Single VehicleInfoGen::m_wheelBase IL_070E: add IL_070F: ldc.r4 -0.5 IL_0714: mul IL_0715: ldloc.s 21 (System.Single) IL_0717: sub IL_0718: ldloc.s 22 (System.Single) IL_071A: sub IL_071B: stloc.s 39 (System.Single) IL_071D: ldc.i4.0 IL_071E: stloc.s 40 (System.Boolean) IL_0720: ldarg.2 IL_0721: ldfld System.UInt32 Vehicle::m_path IL_0726: brfalse => Label39 IL_072B: ldarg.s 5 IL_072D: ldfld Flags Vehicle::m_flags IL_0732: ldc.i4 256 IL_0737: and IL_0738: brtrue => Label40 IL_073D: ldloc.s 4 (UnityEngine.Vector3) IL_073F: ldarg.2 IL_0740: ldfld UnityEngine.Vector4 Vehicle::m_targetPos1 IL_0745: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_074A: ldloc.s 25 (UnityEngine.Vector3) IL_074C: ldloc.s 39 (System.Single) IL_074E: ldloca.s 41 (System.Single) IL_0750: ldloca.s 42 (System.Single) IL_0752: call static System.Boolean ColossalFramework.Math.Line3::Intersect(UnityEngine.Vector3 a, UnityEngine.Vector3 b, UnityEngine.Vector3 c, System.Single r, System.Single& u1, System.Single& u2) IL_0757: brfalse => Label41 IL_075C: ldloc.s 10 (UnityEngine.Vector3) IL_075E: ldloc.s 41 (System.Single) IL_0760: ldloc.s 42 (System.Single) IL_0762: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0767: ldc.r4 0.6 IL_076C: div IL_076D: ldc.r4 0 IL_0772: ldc.r4 2 IL_0777: call static System.Single UnityEngine.Mathf::Clamp(System.Single value, System.Single min, System.Single max) IL_077C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0781: stloc.s 15 (UnityEngine.Vector3) IL_0783: br => Label42 IL_0788: Label41 IL_0788: ldloc.s 4 (UnityEngine.Vector3) IL_078A: ldarg.2 IL_078B: ldfld UnityEngine.Vector4 Vehicle::m_targetPos1 IL_0790: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0795: ldloc.s 25 (UnityEngine.Vector3) IL_0797: ldloca.s 41 (System.Single) IL_0799: call static System.Single ColossalFramework.Math.Line3::DistanceSqr(UnityEngine.Vector3 a, UnityEngine.Vector3 b, UnityEngine.Vector3 p, System.Single& u) IL_079E: pop IL_079F: ldloc.s 10 (UnityEngine.Vector3) IL_07A1: ldloc.s 41 (System.Single) IL_07A3: ldc.r4 0.6 IL_07A8: div IL_07A9: ldc.r4 0 IL_07AE: ldc.r4 2 IL_07B3: call static System.Single UnityEngine.Mathf::Clamp(System.Single value, System.Single min, System.Single max) IL_07B8: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_07BD: stloc.s 15 (UnityEngine.Vector3) IL_07BF: Label42 IL_07BF: ldc.i4.1 IL_07C0: stloc.s 40 (System.Boolean) IL_07C2: Label39 IL_07C2: Label40 IL_07C2: ldloc.s 40 (System.Boolean) IL_07C4: brfalse => Label43 IL_07C9: ldloc.s 25 (UnityEngine.Vector3) IL_07CB: ldloc.s 4 (UnityEngine.Vector3) IL_07CD: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07D2: ldloc.s 4 (UnityEngine.Vector3) IL_07D4: ldloc.s 5 (UnityEngine.Vector3) IL_07D6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07DB: call static System.Single UnityEngine.Vector3::Dot(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs) IL_07E0: ldc.r4 0 IL_07E5: bge.un => Label44 IL_07EA: ldc.r4 0 IL_07EF: stloc.s 17 (System.Single) IL_07F1: Label44 IL_07F1: br => Label45 IL_07F6: Label43 IL_07F6: ldloc.s 25 (UnityEngine.Vector3) IL_07F8: ldloc.s 4 (UnityEngine.Vector3) IL_07FA: call static System.Single UnityEngine.Vector3::Distance(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07FF: stloc.s 43 (System.Single) IL_0801: ldc.r4 0 IL_0806: stloc.s 17 (System.Single) IL_0808: ldloc.s 12 (UnityEngine.Quaternion) IL_080A: ldloc.s 25 (UnityEngine.Vector3) IL_080C: ldloc.s 4 (UnityEngine.Vector3) IL_080E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0813: ldc.r4 0 IL_0818: ldloc.s 43 (System.Single) IL_081A: ldloc.s 39 (System.Single) IL_081C: sub IL_081D: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0822: ldc.r4 1 IL_0827: ldloc.s 43 (System.Single) IL_0829: ldc.r4 0.6 IL_082E: mul IL_082F: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0834: div IL_0835: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_083A: call static UnityEngine.Vector3 UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation, UnityEngine.Vector3 point) IL_083F: stloc.s 15 (UnityEngine.Vector3) IL_0841: Label45 IL_0841: br => Label46 IL_0846: Label10 IL_0846: ldloc.s 9 (System.Single) IL_0848: ldloc.s 7 (System.Single) IL_084A: add IL_084B: ldc.r4 0.5 IL_0850: ldc.r4 0.5 IL_0855: ldloc.s 9 (System.Single) IL_0857: ldloc.s 7 (System.Single) IL_0859: add IL_085A: mul IL_085B: ldloc.s 8 (System.Single) IL_085D: div IL_085E: add IL_085F: mul IL_0860: stloc.s 44 (System.Single) IL_0862: ldloc.s 9 (System.Single) IL_0864: ldloc.s 7 (System.Single) IL_0866: add IL_0867: ldc.r4 2 IL_086C: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0871: stloc.s 45 (System.Single) IL_0873: ldloc.s 44 (System.Single) IL_0875: ldloc.s 45 (System.Single) IL_0877: sub IL_0878: ldc.r4 2 IL_087D: div IL_087E: ldc.r4 1 IL_0883: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0888: stloc.s 46 (System.Single) IL_088A: ldloc.s 45 (System.Single) IL_088C: ldloc.s 45 (System.Single) IL_088E: mul IL_088F: stloc.s 47 (System.Single) IL_0891: ldloc.s 46 (System.Single) IL_0893: ldloc.s 46 (System.Single) IL_0895: mul IL_0896: stloc.s 48 (System.Single) IL_0898: ldarg.2 IL_0899: ldfld UnityEngine.Vector4 Vehicle::m_targetPos1 IL_089E: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_08A3: ldarg.2 IL_08A4: ldfld UnityEngine.Vector4 Vehicle::m_targetPos0 IL_08A9: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_08AE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_08B3: ldarg.2 IL_08B4: ldfld UnityEngine.Vector4 Vehicle::m_targetPos0 IL_08B9: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_08BE: ldloc.s 5 (UnityEngine.Vector3) IL_08C0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_08C5: call static System.Single UnityEngine.Vector3::Dot(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs) IL_08CA: ldc.r4 0 IL_08CF: bge.un => Label47 IL_08D4: ldarg.2 IL_08D5: ldfld System.UInt32 Vehicle::m_path IL_08DA: brfalse => Label48 IL_08DF: ldarg.s 5 IL_08E1: ldfld Flags Vehicle::m_flags IL_08E6: ldc.i4 768 IL_08EB: and IL_08EC: brtrue => Label49 IL_08F1: ldc.i4.m1 IL_08F2: stloc.s 49 (System.Int32) IL_08F4: ldloc.3 IL_08F5: ldarg.1 IL_08F6: ldarg.2 IL_08F7: ldarg.2 IL_08F8: ldfld UnityEngine.Vector4 Vehicle::m_targetPos0 IL_08FD: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0902: ldloc.s 5 (UnityEngine.Vector3) IL_0904: ldarg.s 4 IL_0906: ldarg.s 5 IL_0908: ldloca.s 49 (System.Int32) IL_090A: ldc.i4.0 IL_090B: ldc.i4.0 IL_090C: ldloc.s 5 (UnityEngine.Vector3) IL_090E: ldarg.2 IL_090F: ldfld UnityEngine.Vector4 Vehicle::m_targetPos0 IL_0914: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0919: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_091E: call static System.Single UnityEngine.Vector3::SqrMagnitude(UnityEngine.Vector3 a) IL_0923: ldc.r4 1 IL_0928: add IL_0929: ldc.r4 1 IL_092E: callvirt System.Void TrainAI::UpdatePathTargetPositions(System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 refPos1, UnityEngine.Vector3 refPos2, System.UInt16 leaderID, Vehicle& leaderData, System.Int32& index, System.Int32 max1, System.Int32 max2, System.Single minSqrDistanceA, System.Single minSqrDistanceB) IL_0933: ldc.r4 0 IL_0938: stloc.s 11 (System.Single) IL_093A: Label47 IL_093A: Label48 IL_093A: Label49 IL_093A: ldc.i4.0 IL_093B: stloc.s 50 (System.Int32) IL_093D: ldc.i4.0 IL_093E: stloc.s 51 (System.Boolean) IL_0940: ldloc.s 11 (System.Single) IL_0942: ldloc.s 47 (System.Single) IL_0944: blt => Label50 IL_0949: ldarg.2 IL_094A: ldflda UnityEngine.Vector4 Vehicle::m_targetPos3 IL_094F: ldfld System.Single UnityEngine.Vector4::w IL_0954: ldc.r4 0.01 IL_0959: bge.un => Label51 IL_095E: Label50 IL_095E: ldarg.s 5 IL_0960: ldfld Flags Vehicle::m_flags IL_0965: ldc.i4 768 IL_096A: and IL_096B: brtrue => Label52 IL_0970: ldarg.2 IL_0971: ldfld System.UInt32 Vehicle::m_path IL_0976: brfalse => Label53 IL_097B: ldloc.3 IL_097C: ldarg.1 IL_097D: ldarg.2 IL_097E: ldloc.s 5 (UnityEngine.Vector3) IL_0980: ldloc.s 4 (UnityEngine.Vector3) IL_0982: ldarg.s 4 IL_0984: ldarg.s 5 IL_0986: ldloca.s 50 (System.Int32) IL_0988: ldc.i4.1 IL_0989: ldc.i4.4 IL_098A: ldloc.s 47 (System.Single) IL_098C: ldloc.s 48 (System.Single) IL_098E: callvirt System.Void TrainAI::UpdatePathTargetPositions(System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 refPos1, UnityEngine.Vector3 refPos2, System.UInt16 leaderID, Vehicle& leaderData, System.Int32& index, System.Int32 max1, System.Int32 max2, System.Single minSqrDistanceA, System.Single minSqrDistanceB) IL_0993: Label53 IL_0993: ldloc.s 50 (System.Int32) IL_0995: ldc.i4.4 IL_0996: bge => Label54 IL_099B: ldc.i4.1 IL_099C: stloc.s 51 (System.Boolean) IL_099E: br => Label55 IL_09A3: Label56 IL_09A3: ldarg.2 IL_09A4: ldloc.s 50 (System.Int32) IL_09A6: ldarg.2 IL_09A7: ldloc.s 50 (System.Int32) IL_09A9: ldc.i4.1 IL_09AA: sub IL_09AB: call UnityEngine.Vector4 Vehicle::GetTargetPos(System.Int32 index) IL_09B0: call System.Void Vehicle::SetTargetPos(System.Int32 index, UnityEngine.Vector4 pos) IL_09B5: ldloc.s 50 (System.Int32) IL_09B7: ldc.i4.1 IL_09B8: add IL_09B9: stloc.s 50 (System.Int32) IL_09BB: Label55 IL_09BB: ldloc.s 50 (System.Int32) IL_09BD: ldc.i4.4 IL_09BE: blt => Label56 IL_09C3: Label54 IL_09C3: ldarg.2 IL_09C4: ldfld UnityEngine.Vector4 Vehicle::m_targetPos1 IL_09C9: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_09CE: ldloc.s 4 (UnityEngine.Vector3) IL_09D0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09D5: stloc.s 10 (UnityEngine.Vector3) IL_09D7: ldloca.s 10 (UnityEngine.Vector3) IL_09D9: call System.Single UnityEngine.Vector3::get_sqrMagnitude() IL_09DE: stloc.s 11 (System.Single) IL_09E0: Label51 IL_09E0: Label52 IL_09E0: ldarg.s 5 IL_09E2: ldfld Flags Vehicle::m_flags IL_09E7: ldc.i4 768 IL_09EC: and IL_09ED: brtrue => Label57 IL_09F2: ldarg.0 IL_09F3: ldfld VehicleInfo VehicleAI::m_info IL_09F8: ldfld VehicleType VehicleInfo::m_vehicleType IL_09FD: ldc.i4 2048 IL_0A02: beq => Label58 IL_0A07: ldarg.0 IL_0A08: ldarg.1 IL_0A09: ldarg.2 IL_0A0A: ldloc.s 9 (System.Single) IL_0A0C: ldc.r4 0.1 IL_0A11: cgt IL_0A13: call System.Void TrainAI::ForceTrafficLights(System.UInt16 vehicleID, Vehicle& vehicleData, System.Boolean reserveSpace) IL_0A18: Label57 IL_0A18: Label58 IL_0A18: ldarg.2 IL_0A19: ldfld System.UInt32 Vehicle::m_path IL_0A1E: brfalse => Label59 IL_0A23: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0A28: stloc.s 52 (NetManager) IL_0A2A: ldarg.2 IL_0A2B: ldfld System.Byte Vehicle::m_pathPositionIndex IL_0A30: stloc.s 53 (System.Byte) IL_0A32: ldarg.2 IL_0A33: ldfld System.Byte Vehicle::m_lastPathOffset IL_0A38: stloc.s 54 (System.Byte) IL_0A3A: ldloc.s 53 (System.Byte) IL_0A3C: ldc.i4 255 IL_0A41: bne.un => Label60 IL_0A46: ldc.i4.0 IL_0A47: stloc.s 53 (System.Byte) IL_0A49: Label60 IL_0A49: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_0A4E: stloc.s 55 (PathManager) IL_0A50: ldloc.s 55 (PathManager) IL_0A52: ldfld Array32`1 PathManager::m_pathUnits IL_0A57: ldfld PathUnit[] Array32`1::m_buffer IL_0A5C: ldarg.2 IL_0A5D: ldfld System.UInt32 Vehicle::m_path IL_0A62: conv.u IL_0A63: ldelema PathUnit IL_0A68: ldloc.s 53 (System.Byte) IL_0A6A: ldc.i4.1 IL_0A6B: shr IL_0A6C: ldloca.s 56 (PathUnit+Position) IL_0A6E: call System.Boolean PathUnit::GetPosition(System.Int32 index, Position& position) IL_0A73: brfalse => Label61 IL_0A78: ldloc.s 52 (NetManager) IL_0A7A: ldfld Array16`1 NetManager::m_segments IL_0A7F: ldfld NetSegment[] Array16`1::m_buffer IL_0A84: ldloca.s 56 (PathUnit+Position) IL_0A86: ldfld System.UInt16 Position::m_segment IL_0A8B: ldelema NetSegment IL_0A90: ldarg.0 IL_0A91: ldfld VehicleInfo VehicleAI::m_info IL_0A96: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_0A9B: ldflda UnityEngine.Vector3 VehicleInfoGen::m_size IL_0AA0: ldfld System.Single UnityEngine.Vector3::z IL_0AA5: ldc.r4 3 IL_0AAA: mul IL_0AAB: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_0AB0: ldarg.0 IL_0AB1: callvirt virtual System.Int32 VehicleAI::GetNoiseLevel() IL_0AB6: call System.Void NetSegment::AddTraffic(System.Int32 amount, System.Int32 noise) IL_0ABB: ldloc.s 53 (System.Byte) IL_0ABD: ldc.i4.1 IL_0ABE: and IL_0ABF: brfalse => Label62 IL_0AC4: ldloc.s 54 (System.Byte) IL_0AC6: brfalse => Label63 IL_0ACB: ldarg.s 5 IL_0ACD: ldfld Flags Vehicle::m_flags IL_0AD2: ldc.i4 256 IL_0AD7: and IL_0AD8: brfalse => Label64 IL_0ADD: Label62 IL_0ADD: Label63 IL_0ADD: ldloc.s 56 (PathUnit+Position) IL_0ADF: call static System.UInt32 PathManager::GetLaneID(Position pathPos) IL_0AE4: stloc.s 57 (System.UInt32) IL_0AE6: ldloc.s 57 (System.UInt32) IL_0AE8: brfalse => Label65 IL_0AED: ldloc.s 52 (NetManager) IL_0AEF: ldfld Array32`1 NetManager::m_lanes IL_0AF4: ldfld NetLane[] Array32`1::m_buffer IL_0AF9: ldloc.s 57 (System.UInt32) IL_0AFB: conv.u IL_0AFC: ldelema NetLane IL_0B01: ldarg.0 IL_0B02: ldfld VehicleInfo VehicleAI::m_info IL_0B07: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_0B0C: ldflda UnityEngine.Vector3 VehicleInfoGen::m_size IL_0B11: ldfld System.Single UnityEngine.Vector3::z IL_0B16: ldarg.1 IL_0B17: call System.Boolean NetLane::ReserveSpace(System.Single len, System.UInt16 reserveID) IL_0B1C: pop IL_0B1D: Label65 IL_0B1D: br => Label66 IL_0B22: Label64 IL_0B22: ldloc.s 55 (PathManager) IL_0B24: ldfld Array32`1 PathManager::m_pathUnits IL_0B29: ldfld PathUnit[] Array32`1::m_buffer IL_0B2E: ldarg.2 IL_0B2F: ldfld System.UInt32 Vehicle::m_path IL_0B34: conv.u IL_0B35: ldelema PathUnit IL_0B3A: ldloc.s 53 (System.Byte) IL_0B3C: ldc.i4.1 IL_0B3D: shr IL_0B3E: ldloca.s 56 (PathUnit+Position) IL_0B40: call System.Boolean PathUnit::GetNextPosition(System.Int32 index, Position& position) IL_0B45: brfalse => Label67 IL_0B4A: ldloc.s 56 (PathUnit+Position) IL_0B4C: call static System.UInt32 PathManager::GetLaneID(Position pathPos) IL_0B51: stloc.s 58 (System.UInt32) IL_0B53: ldloc.s 58 (System.UInt32) IL_0B55: brfalse => Label68 IL_0B5A: ldloc.s 52 (NetManager) IL_0B5C: ldfld Array32`1 NetManager::m_lanes IL_0B61: ldfld NetLane[] Array32`1::m_buffer IL_0B66: ldloc.s 58 (System.UInt32) IL_0B68: conv.u IL_0B69: ldelema NetLane IL_0B6E: ldarg.0 IL_0B6F: ldfld VehicleInfo VehicleAI::m_info IL_0B74: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_0B79: ldflda UnityEngine.Vector3 VehicleInfoGen::m_size IL_0B7E: ldfld System.Single UnityEngine.Vector3::z IL_0B83: ldarg.1 IL_0B84: call System.Boolean NetLane::ReserveSpace(System.Single len, System.UInt16 reserveID) IL_0B89: pop IL_0B8A: Label59 IL_0B8A: Label61 IL_0B8A: Label66 IL_0B8A: Label67 IL_0B8A: Label68 IL_0B8A: ldarg.s 5 IL_0B8C: ldfld Flags Vehicle::m_flags IL_0B91: ldc.i4 512 IL_0B96: and IL_0B97: brfalse => Label69 IL_0B9C: ldc.r4 0 IL_0BA1: stloc.s 59 (System.Single) IL_0BA3: br => Label70 IL_0BA8: Label69 IL_0BA8: ldarg.2 IL_0BA9: ldflda UnityEngine.Vector4 Vehicle::m_targetPos1 IL_0BAE: ldfld System.Single UnityEngine.Vector4::w IL_0BB3: ldarg.s 4 IL_0BB5: ldarg.s 5 IL_0BB7: call static System.Single TrainAI::GetMaxSpeed(System.UInt16 leaderID, Vehicle& leaderData) IL_0BBC: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0BC1: stloc.s 59 (System.Single) IL_0BC3: Label70 IL_0BC3: ldloc.s 12 (UnityEngine.Quaternion) IL_0BC5: ldloc.s 10 (UnityEngine.Vector3) IL_0BC7: call static UnityEngine.Vector3 UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation, UnityEngine.Vector3 point) IL_0BCC: stloc.s 10 (UnityEngine.Vector3) IL_0BCE: ldloc.0 IL_0BCF: brfalse => Label71 IL_0BD4: ldloc.s 10 (UnityEngine.Vector3) IL_0BD6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a) IL_0BDB: stloc.s 10 (UnityEngine.Vector3) IL_0BDD: Label71 IL_0BDD: ldc.i4.0 IL_0BDE: stloc.s 60 (System.Boolean) IL_0BE0: ldc.r4 0 IL_0BE5: stloc.s 61 (System.Single) IL_0BE7: ldloc.s 11 (System.Single) IL_0BE9: ldc.r4 1 IL_0BEE: ble.un => Label72 IL_0BF3: ldloc.s 10 (UnityEngine.Vector3) IL_0BF5: ldloca.s 61 (System.Single) IL_0BF7: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0BFC: stloc.s 14 (UnityEngine.Vector3) IL_0BFE: ldloc.s 61 (System.Single) IL_0C00: ldc.r4 1 IL_0C05: ble.un => Label73 IL_0C0A: ldloc.s 10 (UnityEngine.Vector3) IL_0C0C: stloc.s 62 (UnityEngine.Vector3) IL_0C0E: ldloc.s 9 (System.Single) IL_0C10: ldc.r4 2 IL_0C15: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0C1A: stloc.s 45 (System.Single) IL_0C1C: ldloc.s 45 (System.Single) IL_0C1E: ldloc.s 45 (System.Single) IL_0C20: mul IL_0C21: stloc.s 47 (System.Single) IL_0C23: ldloc.s 11 (System.Single) IL_0C25: ldloc.s 47 (System.Single) IL_0C27: ble.un => Label74 IL_0C2C: ldloc.s 45 (System.Single) IL_0C2E: ldloc.s 11 (System.Single) IL_0C30: call static System.Single UnityEngine.Mathf::Sqrt(System.Single f) IL_0C35: div IL_0C36: stloc.s 63 (System.Single) IL_0C38: ldloca.s 62 (UnityEngine.Vector3) IL_0C3A: dup IL_0C3B: ldfld System.Single UnityEngine.Vector3::x IL_0C40: ldloc.s 63 (System.Single) IL_0C42: mul IL_0C43: stfld System.Single UnityEngine.Vector3::x IL_0C48: ldloca.s 62 (UnityEngine.Vector3) IL_0C4A: dup IL_0C4B: ldfld System.Single UnityEngine.Vector3::y IL_0C50: ldloc.s 63 (System.Single) IL_0C52: mul IL_0C53: stfld System.Single UnityEngine.Vector3::y IL_0C58: Label74 IL_0C58: ldloca.s 62 (UnityEngine.Vector3) IL_0C5A: ldfld System.Single UnityEngine.Vector3::z IL_0C5F: ldc.r4 -1 IL_0C64: bge.un => Label75 IL_0C69: ldarg.2 IL_0C6A: ldfld System.UInt32 Vehicle::m_path IL_0C6F: brfalse => Label76 IL_0C74: ldarg.s 5 IL_0C76: ldfld Flags Vehicle::m_flags IL_0C7B: ldc.i4 256 IL_0C80: and IL_0C81: brtrue => Label77 IL_0C86: ldarg.2 IL_0C87: ldfld UnityEngine.Vector4 Vehicle::m_targetPos1 IL_0C8C: ldarg.2 IL_0C8D: ldfld UnityEngine.Vector4 Vehicle::m_targetPos0 IL_0C92: call static UnityEngine.Vector4 UnityEngine.Vector4::op_Subtraction(UnityEngine.Vector4 a, UnityEngine.Vector4 b) IL_0C97: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0C9C: stloc.s 64 (UnityEngine.Vector3) IL_0C9E: ldloc.s 12 (UnityEngine.Quaternion) IL_0CA0: ldloc.s 64 (UnityEngine.Vector3) IL_0CA2: call static UnityEngine.Vector3 UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation, UnityEngine.Vector3 point) IL_0CA7: stloc.s 64 (UnityEngine.Vector3) IL_0CA9: ldloc.0 IL_0CAA: brfalse => Label78 IL_0CAF: ldloc.s 64 (UnityEngine.Vector3) IL_0CB1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a) IL_0CB6: stloc.s 64 (UnityEngine.Vector3) IL_0CB8: Label78 IL_0CB8: ldloca.s 64 (UnityEngine.Vector3) IL_0CBA: ldfld System.Single UnityEngine.Vector3::z IL_0CBF: ldc.r4 -0.01 IL_0CC4: bge.un => Label79 IL_0CC9: ldloca.s 10 (UnityEngine.Vector3) IL_0CCB: ldfld System.Single UnityEngine.Vector3::z IL_0CD0: ldloca.s 10 (UnityEngine.Vector3) IL_0CD2: ldfld System.Single UnityEngine.Vector3::x IL_0CD7: call static System.Single UnityEngine.Mathf::Abs(System.Single f) IL_0CDC: ldc.r4 -10 IL_0CE1: mul IL_0CE2: bge.un => Label80 IL_0CE7: ldloc.s 9 (System.Single) IL_0CE9: ldc.r4 0.01 IL_0CEE: bge.un => Label81 IL_0CF3: ldarg.s 4 IL_0CF5: ldarg.s 5 IL_0CF7: call static System.Void TrainAI::Reverse(System.UInt16 leaderID, Vehicle& leaderData) IL_0CFC: br => Label107 IL_0D01: Label81 IL_0D01: ldloca.s 62 (UnityEngine.Vector3) IL_0D03: ldc.r4 0 IL_0D08: stfld System.Single UnityEngine.Vector3::z IL_0D0D: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero() IL_0D12: stloc.s 10 (UnityEngine.Vector3) IL_0D14: ldc.r4 0 IL_0D19: stloc.s 59 (System.Single) IL_0D1B: br => Label82 IL_0D20: Label80 IL_0D20: ldloc.s 5 (UnityEngine.Vector3) IL_0D22: ldarg.2 IL_0D23: ldfld UnityEngine.Vector4 Vehicle::m_targetPos1 IL_0D28: ldarg.2 IL_0D29: ldfld UnityEngine.Vector4 Vehicle::m_targetPos0 IL_0D2E: call static UnityEngine.Vector4 UnityEngine.Vector4::op_Subtraction(UnityEngine.Vector4 a, UnityEngine.Vector4 b) IL_0D33: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0D38: call static UnityEngine.Vector3 UnityEngine.Vector3::Normalize(UnityEngine.Vector3 value) IL_0D3D: ldarg.0 IL_0D3E: ldfld VehicleInfo VehicleAI::m_info IL_0D43: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_0D48: ldfld System.Single VehicleInfoGen::m_wheelBase IL_0D4D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0D52: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0D57: stloc.s 4 (UnityEngine.Vector3) IL_0D59: ldc.i4.m1 IL_0D5A: stloc.s 50 (System.Int32) IL_0D5C: ldloc.3 IL_0D5D: ldarg.1 IL_0D5E: ldarg.2 IL_0D5F: ldarg.2 IL_0D60: ldfld UnityEngine.Vector4 Vehicle::m_targetPos0 IL_0D65: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0D6A: ldarg.2 IL_0D6B: ldfld UnityEngine.Vector4 Vehicle::m_targetPos1 IL_0D70: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0D75: ldarg.s 4 IL_0D77: ldarg.s 5 IL_0D79: ldloca.s 50 (System.Int32) IL_0D7B: ldc.i4.0 IL_0D7C: ldc.i4.0 IL_0D7D: ldarg.2 IL_0D7E: ldfld UnityEngine.Vector4 Vehicle::m_targetPos1 IL_0D83: ldarg.2 IL_0D84: ldfld UnityEngine.Vector4 Vehicle::m_targetPos0 IL_0D89: call static UnityEngine.Vector4 UnityEngine.Vector4::op_Subtraction(UnityEngine.Vector4 a, UnityEngine.Vector4 b) IL_0D8E: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0D93: call static System.Single UnityEngine.Vector3::SqrMagnitude(UnityEngine.Vector3 a) IL_0D98: ldc.r4 1 IL_0D9D: add IL_0D9E: ldc.r4 1 IL_0DA3: callvirt System.Void TrainAI::UpdatePathTargetPositions(System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 refPos1, UnityEngine.Vector3 refPos2, System.UInt16 leaderID, Vehicle& leaderData, System.Int32& index, System.Int32 max1, System.Int32 max2, System.Single minSqrDistanceA, System.Single minSqrDistanceB) IL_0DA8: Label82 IL_0DA8: br => Label83 IL_0DAD: Label79 IL_0DAD: ldc.i4.m1 IL_0DAE: stloc.s 50 (System.Int32) IL_0DB0: ldloc.3 IL_0DB1: ldarg.1 IL_0DB2: ldarg.2 IL_0DB3: ldarg.2 IL_0DB4: ldfld UnityEngine.Vector4 Vehicle::m_targetPos0 IL_0DB9: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0DBE: ldloc.s 5 (UnityEngine.Vector3) IL_0DC0: ldarg.s 4 IL_0DC2: ldarg.s 5 IL_0DC4: ldloca.s 50 (System.Int32) IL_0DC6: ldc.i4.0 IL_0DC7: ldc.i4.0 IL_0DC8: ldloc.s 5 (UnityEngine.Vector3) IL_0DCA: ldarg.2 IL_0DCB: ldfld UnityEngine.Vector4 Vehicle::m_targetPos0 IL_0DD0: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0DD5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0DDA: call static System.Single UnityEngine.Vector3::SqrMagnitude(UnityEngine.Vector3 a) IL_0DDF: ldc.r4 1 IL_0DE4: add IL_0DE5: ldc.r4 1 IL_0DEA: callvirt System.Void TrainAI::UpdatePathTargetPositions(System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 refPos1, UnityEngine.Vector3 refPos2, System.UInt16 leaderID, Vehicle& leaderData, System.Int32& index, System.Int32 max1, System.Int32 max2, System.Single minSqrDistanceA, System.Single minSqrDistanceB) IL_0DEF: ldarg.2 IL_0DF0: ldloc.s 4 (UnityEngine.Vector3) IL_0DF2: call static UnityEngine.Vector4 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector3 v) IL_0DF7: stfld UnityEngine.Vector4 Vehicle::m_targetPos1 IL_0DFC: ldloca.s 62 (UnityEngine.Vector3) IL_0DFE: ldc.r4 0 IL_0E03: stfld System.Single UnityEngine.Vector3::z IL_0E08: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero() IL_0E0D: stloc.s 10 (UnityEngine.Vector3) IL_0E0F: ldc.r4 0 IL_0E14: stloc.s 59 (System.Single) IL_0E16: Label76 IL_0E16: Label77 IL_0E16: Label83 IL_0E16: ldc.r4 0 IL_0E1B: stloc.s 17 (System.Single) IL_0E1D: Label75 IL_0E1D: ldloc.s 62 (UnityEngine.Vector3) IL_0E1F: ldloca.s 61 (System.Single) IL_0E21: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0E26: stloc.s 14 (UnityEngine.Vector3) IL_0E28: ldc.r4 1.570796 IL_0E2D: ldc.r4 1 IL_0E32: ldloca.s 14 (UnityEngine.Vector3) IL_0E34: ldfld System.Single UnityEngine.Vector3::z IL_0E39: sub IL_0E3A: mul IL_0E3B: stloc.s 65 (System.Single) IL_0E3D: ldloc.s 61 (System.Single) IL_0E3F: ldc.r4 1 IL_0E44: ble.un => Label84 IL_0E49: ldloc.s 65 (System.Single) IL_0E4B: ldloc.s 61 (System.Single) IL_0E4D: div IL_0E4E: stloc.s 65 (System.Single) IL_0E50: Label84 IL_0E50: ldloc.s 59 (System.Single) IL_0E52: ldarg.0 IL_0E53: ldarg.1 IL_0E54: ldarg.2 IL_0E55: ldc.r4 1000 IL_0E5A: ldloc.s 65 (System.Single) IL_0E5C: callvirt virtual System.Single VehicleAI::CalculateTargetSpeed(System.UInt16 vehicleID, Vehicle& data, System.Single speedLimit, System.Single curve) IL_0E61: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0E66: stloc.s 59 (System.Single) IL_0E68: ldloc.s 61 (System.Single) IL_0E6A: stloc.s 66 (System.Single) IL_0E6C: ldloc.s 59 (System.Single) IL_0E6E: ldloc.s 66 (System.Single) IL_0E70: ldarg.2 IL_0E71: ldflda UnityEngine.Vector4 Vehicle::m_targetPos2 IL_0E76: ldfld System.Single UnityEngine.Vector4::w IL_0E7B: ldloc.s 8 (System.Single) IL_0E7D: call static System.Single TrainAI::CalculateMaxSpeed(System.Single targetDistance, System.Single targetSpeed, System.Single maxBraking) IL_0E82: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0E87: stloc.s 59 (System.Single) IL_0E89: ldloc.s 66 (System.Single) IL_0E8B: ldarg.2 IL_0E8C: ldfld UnityEngine.Vector4 Vehicle::m_targetPos2 IL_0E91: ldarg.2 IL_0E92: ldfld UnityEngine.Vector4 Vehicle::m_targetPos1 IL_0E97: call static UnityEngine.Vector4 UnityEngine.Vector4::op_Subtraction(UnityEngine.Vector4 a, UnityEngine.Vector4 b) IL_0E9C: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0EA1: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_0EA6: add IL_0EA7: stloc.s 66 (System.Single) IL_0EA9: ldloc.s 59 (System.Single) IL_0EAB: ldloc.s 66 (System.Single) IL_0EAD: ldarg.2 IL_0EAE: ldflda UnityEngine.Vector4 Vehicle::m_targetPos3 IL_0EB3: ldfld System.Single UnityEngine.Vector4::w IL_0EB8: ldloc.s 8 (System.Single) IL_0EBA: call static System.Single TrainAI::CalculateMaxSpeed(System.Single targetDistance, System.Single targetSpeed, System.Single maxBraking) IL_0EBF: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0EC4: stloc.s 59 (System.Single) IL_0EC6: ldloc.s 66 (System.Single) IL_0EC8: ldarg.2 IL_0EC9: ldfld UnityEngine.Vector4 Vehicle::m_targetPos3 IL_0ECE: ldarg.2 IL_0ECF: ldfld UnityEngine.Vector4 Vehicle::m_targetPos2 IL_0ED4: call static UnityEngine.Vector4 UnityEngine.Vector4::op_Subtraction(UnityEngine.Vector4 a, UnityEngine.Vector4 b) IL_0ED9: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0EDE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_0EE3: add IL_0EE4: stloc.s 66 (System.Single) IL_0EE6: ldloc.s 59 (System.Single) IL_0EE8: ldloc.s 66 (System.Single) IL_0EEA: ldc.r4 0 IL_0EEF: ldloc.s 8 (System.Single) IL_0EF1: call static System.Single TrainAI::CalculateMaxSpeed(System.Single targetDistance, System.Single targetSpeed, System.Single maxBraking) IL_0EF6: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0EFB: stloc.s 59 (System.Single) IL_0EFD: ldloc.s 59 (System.Single) IL_0EFF: ldloc.s 9 (System.Single) IL_0F01: bge.un => Label85 IL_0F06: ldloc.s 7 (System.Single) IL_0F08: ldloc.s 8 (System.Single) IL_0F0A: ldloc.s 9 (System.Single) IL_0F0C: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0F11: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0F16: stloc.s 67 (System.Single) IL_0F18: ldloc.s 59 (System.Single) IL_0F1A: ldloc.s 9 (System.Single) IL_0F1C: ldloc.s 67 (System.Single) IL_0F1E: sub IL_0F1F: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0F24: stloc.s 16 (System.Single) IL_0F26: br => Label86 IL_0F2B: Label85 IL_0F2B: ldloc.s 7 (System.Single) IL_0F2D: ldloc.s 8 (System.Single) IL_0F2F: ldloc.s 9 (System.Single) IL_0F31: neg IL_0F32: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0F37: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0F3C: stloc.s 68 (System.Single) IL_0F3E: ldloc.s 59 (System.Single) IL_0F40: ldloc.s 9 (System.Single) IL_0F42: ldloc.s 68 (System.Single) IL_0F44: add IL_0F45: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0F4A: stloc.s 16 (System.Single) IL_0F4C: Label73 IL_0F4C: Label86 IL_0F4C: br => Label87 IL_0F51: Label72 IL_0F51: ldloc.s 9 (System.Single) IL_0F53: ldc.r4 0.1 IL_0F58: bge.un => Label88 IL_0F5D: ldloc.s 51 (System.Boolean) IL_0F5F: brfalse => Label89 IL_0F64: ldloc.2 IL_0F65: ldfld VehicleAI VehicleInfo::m_vehicleAI IL_0F6A: ldarg.s 4 IL_0F6C: ldarg.s 5 IL_0F6E: callvirt virtual System.Boolean VehicleAI::ArriveAtDestination(System.UInt16 vehicleID, Vehicle& vehicleData) IL_0F73: brfalse => Label90 IL_0F78: ldarg.s 5 IL_0F7A: ldarg.s 4 IL_0F7C: call System.Void Vehicle::Unspawn(System.UInt16 vehicleID) IL_0F81: br => Label108 IL_0F86: Label87 IL_0F86: Label88 IL_0F86: Label89 IL_0F86: Label90 IL_0F86: ldarg.s 5 IL_0F88: ldfld Flags Vehicle::m_flags IL_0F8D: ldc.i4 512 IL_0F92: and IL_0F93: brtrue => Label91 IL_0F98: ldloc.s 59 (System.Single) IL_0F9A: ldc.r4 0.1 IL_0F9F: bge.un => Label92 IL_0FA4: ldc.i4.1 IL_0FA5: stloc.s 60 (System.Boolean) IL_0FA7: Label91 IL_0FA7: Label92 IL_0FA7: ldloc.s 60 (System.Boolean) IL_0FA9: brfalse => Label93 IL_0FAE: ldarg.s 5 IL_0FB0: ldarg.s 5 IL_0FB2: ldfld System.Byte Vehicle::m_blockCounter IL_0FB7: ldc.i4.1 IL_0FB8: add IL_0FB9: ldc.i4 255 IL_0FBE: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0FC3: conv.u1 IL_0FC4: stfld System.Byte Vehicle::m_blockCounter IL_0FC9: br => Label94 IL_0FCE: Label93 IL_0FCE: ldarg.s 5 IL_0FD0: ldc.i4.0 IL_0FD1: stfld System.Byte Vehicle::m_blockCounter IL_0FD6: Label94 IL_0FD6: ldloc.s 61 (System.Single) IL_0FD8: ldc.r4 1 IL_0FDD: ble.un => Label95 IL_0FE2: ldloc.0 IL_0FE3: brfalse => Label96 IL_0FE8: ldloc.s 14 (UnityEngine.Vector3) IL_0FEA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a) IL_0FEF: stloc.s 14 (UnityEngine.Vector3) IL_0FF1: Label96 IL_0FF1: ldloc.s 14 (UnityEngine.Vector3) IL_0FF3: ldloc.s 16 (System.Single) IL_0FF5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0FFA: stloc.s 15 (UnityEngine.Vector3) IL_0FFC: br => Label97 IL_1001: Label95 IL_1001: ldloc.0 IL_1002: brfalse => Label98 IL_1007: ldloc.s 10 (UnityEngine.Vector3) IL_1009: call static UnityEngine.Vector3 UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a) IL_100E: stloc.s 10 (UnityEngine.Vector3) IL_1010: Label98 IL_1010: ldc.r4 0 IL_1015: stloc.s 16 (System.Single) IL_1017: ldloc.s 10 (UnityEngine.Vector3) IL_1019: ldc.r4 0.5 IL_101E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_1023: ldloc.s 13 (UnityEngine.Vector3) IL_1025: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_102A: ldloc.s 8 (System.Single) IL_102C: call static UnityEngine.Vector3 UnityEngine.Vector3::ClampMagnitude(UnityEngine.Vector3 vector, System.Single maxLength) IL_1031: stloc.s 69 (UnityEngine.Vector3) IL_1033: ldloc.s 13 (UnityEngine.Vector3) IL_1035: ldloc.s 69 (UnityEngine.Vector3) IL_1037: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_103C: stloc.s 15 (UnityEngine.Vector3) IL_103E: Label46 IL_103E: Label97 IL_103E: ldloc.s 15 (UnityEngine.Vector3) IL_1040: ldloc.s 13 (UnityEngine.Vector3) IL_1042: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_1047: stloc.s 70 (UnityEngine.Vector3) IL_1049: ldarg.3 IL_104A: ldfld UnityEngine.Quaternion Frame::m_rotation IL_104F: ldloc.s 15 (UnityEngine.Vector3) IL_1051: call static UnityEngine.Vector3 UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation, UnityEngine.Vector3 point) IL_1056: stloc.s 71 (UnityEngine.Vector3) IL_1058: ldarg.2 IL_1059: ldfld UnityEngine.Vector4 Vehicle::m_targetPos0 IL_105E: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_1063: ldloc.s 5 (UnityEngine.Vector3) IL_1065: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_106A: call static UnityEngine.Vector3 UnityEngine.Vector3::Normalize(UnityEngine.Vector3 value) IL_106F: ldloca.s 15 (UnityEngine.Vector3) IL_1071: call System.Single UnityEngine.Vector3::get_magnitude() IL_1076: ldloc.s 17 (System.Single) IL_1078: mul IL_1079: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_107E: stloc.s 72 (UnityEngine.Vector3) IL_1080: ldloc.s 4 (UnityEngine.Vector3) IL_1082: ldloc.s 71 (UnityEngine.Vector3) IL_1084: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_1089: stloc.s 4 (UnityEngine.Vector3) IL_108B: ldloc.s 5 (UnityEngine.Vector3) IL_108D: ldloc.s 72 (UnityEngine.Vector3) IL_108F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_1094: stloc.s 5 (UnityEngine.Vector3) IL_1096: ldloc.0 IL_1097: brfalse => Label99 IL_109C: ldarg.3 IL_109D: ldloc.s 5 (UnityEngine.Vector3) IL_109F: ldloc.s 4 (UnityEngine.Vector3) IL_10A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_10A6: call static UnityEngine.Quaternion UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward) IL_10AB: stfld UnityEngine.Quaternion Frame::m_rotation IL_10B0: ldloc.s 4 (UnityEngine.Vector3) IL_10B2: ldarg.3 IL_10B3: ldfld UnityEngine.Quaternion Frame::m_rotation IL_10B8: ldc.r4 0 IL_10BD: ldc.r4 0 IL_10C2: ldarg.0 IL_10C3: ldfld VehicleInfo VehicleAI::m_info IL_10C8: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_10CD: ldfld System.Single VehicleInfoGen::m_wheelBase IL_10D2: ldc.r4 0.5 IL_10D7: mul IL_10D8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_10DD: call static UnityEngine.Vector3 UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation, UnityEngine.Vector3 point) IL_10E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_10E7: stloc.s 73 (UnityEngine.Vector3) IL_10E9: br => Label100 IL_10EE: Label99 IL_10EE: ldarg.3 IL_10EF: ldloc.s 4 (UnityEngine.Vector3) IL_10F1: ldloc.s 5 (UnityEngine.Vector3) IL_10F3: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_10F8: call static UnityEngine.Quaternion UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward) IL_10FD: stfld UnityEngine.Quaternion Frame::m_rotation IL_1102: ldloc.s 4 (UnityEngine.Vector3) IL_1104: ldarg.3 IL_1105: ldfld UnityEngine.Quaternion Frame::m_rotation IL_110A: ldc.r4 0 IL_110F: ldc.r4 0 IL_1114: ldarg.0 IL_1115: ldfld VehicleInfo VehicleAI::m_info IL_111A: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_111F: ldfld System.Single VehicleInfoGen::m_wheelBase IL_1124: ldc.r4 0.5 IL_1129: mul IL_112A: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_112F: call static UnityEngine.Vector3 UnityEngine.Quaternion::op_Multiply(UnityEngine.Quaternion rotation, UnityEngine.Vector3 point) IL_1134: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_1139: stloc.s 73 (UnityEngine.Vector3) IL_113B: Label100 IL_113B: ldarg.3 IL_113C: ldloc.s 73 (UnityEngine.Vector3) IL_113E: ldarg.3 IL_113F: ldfld UnityEngine.Vector3 Frame::m_position IL_1144: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_1149: stfld UnityEngine.Vector3 Frame::m_velocity IL_114E: ldloc.1 IL_114F: brfalse => Label101 IL_1154: ldarg.3 IL_1155: dup IL_1156: ldfld UnityEngine.Vector3 Frame::m_position IL_115B: ldarg.3 IL_115C: ldfld UnityEngine.Vector3 Frame::m_velocity IL_1161: ldc.r4 0.6 IL_1166: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_116B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_1170: stfld UnityEngine.Vector3 Frame::m_position IL_1175: br => Label102 IL_117A: Label101 IL_117A: ldarg.3 IL_117B: dup IL_117C: ldfld UnityEngine.Vector3 Frame::m_position IL_1181: ldarg.3 IL_1182: ldfld UnityEngine.Vector3 Frame::m_velocity IL_1187: ldc.r4 0.5 IL_118C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_1191: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_1196: stfld UnityEngine.Vector3 Frame::m_position IL_119B: Label102 IL_119B: ldarg.3 IL_119C: ldarg.3 IL_119D: ldfld UnityEngine.Vector3 Frame::m_swayVelocity IL_11A2: ldc.r4 1 IL_11A7: ldarg.0 IL_11A8: ldfld VehicleInfo VehicleAI::m_info IL_11AD: ldfld System.Single VehicleInfo::m_dampers IL_11B2: sub IL_11B3: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_11B8: ldloc.s 70 (UnityEngine.Vector3) IL_11BA: ldc.r4 1 IL_11BF: ldarg.0 IL_11C0: ldfld VehicleInfo VehicleAI::m_info IL_11C5: ldfld System.Single VehicleInfo::m_springs IL_11CA: sub IL_11CB: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_11D0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_11D5: ldarg.3 IL_11D6: ldfld UnityEngine.Vector3 Frame::m_swayPosition IL_11DB: ldarg.0 IL_11DC: ldfld VehicleInfo VehicleAI::m_info IL_11E1: ldfld System.Single VehicleInfo::m_springs IL_11E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_11EB: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_11F0: stfld UnityEngine.Vector3 Frame::m_swayVelocity IL_11F5: ldarg.3 IL_11F6: dup IL_11F7: ldfld UnityEngine.Vector3 Frame::m_swayPosition IL_11FC: ldarg.3 IL_11FD: ldfld UnityEngine.Vector3 Frame::m_swayVelocity IL_1202: ldc.r4 0.5 IL_1207: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_120C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_1211: stfld UnityEngine.Vector3 Frame::m_swayPosition IL_1216: ldarg.3 IL_1217: ldc.r4 0 IL_121C: stfld System.Single Frame::m_steerAngle IL_1221: ldarg.3 IL_1222: dup IL_1223: ldfld System.Single Frame::m_travelDistance IL_1228: ldloca.s 15 (UnityEngine.Vector3) IL_122A: ldfld System.Single UnityEngine.Vector3::z IL_122F: add IL_1230: stfld System.Single Frame::m_travelDistance IL_1235: ldarg.3 IL_1236: ldflda UnityEngine.Vector4 Frame::m_lightIntensity IL_123B: ldloc.0 IL_123C: brfalse => Label103 IL_1241: ldc.r4 0 IL_1246: br => Label104 IL_124B: Label103 IL_124B: ldc.r4 5 IL_1250: Label104 IL_1250: stfld System.Single UnityEngine.Vector4::x IL_1255: ldarg.3 IL_1256: ldflda UnityEngine.Vector4 Frame::m_lightIntensity IL_125B: ldloc.0 IL_125C: brfalse => Label105 IL_1261: ldc.r4 5 IL_1266: br => Label106 IL_126B: Label105 IL_126B: ldc.r4 0 IL_1270: Label106 IL_1270: stfld System.Single UnityEngine.Vector4::y IL_1275: ldarg.3 IL_1276: ldflda UnityEngine.Vector4 Frame::m_lightIntensity IL_127B: ldc.r4 0 IL_1280: stfld System.Single UnityEngine.Vector4::z IL_1285: ldarg.3 IL_1286: ldflda UnityEngine.Vector4 Frame::m_lightIntensity IL_128B: ldc.r4 0 IL_1290: stfld System.Single UnityEngine.Vector4::w IL_1295: ldarg.3 IL_1296: ldarg.2 IL_1297: ldfld Flags Vehicle::m_flags IL_129C: ldc.i4 268435456 IL_12A1: and IL_12A2: ldc.i4.0 IL_12A3: ceq IL_12A5: ldc.i4.0 IL_12A6: ceq IL_12A8: stfld System.Boolean Frame::m_underground IL_12AD: ldarg.3 IL_12AE: ldarg.2 IL_12AF: ldfld Flags Vehicle::m_flags IL_12B4: ldc.i4 536870912 IL_12B9: and IL_12BA: ldc.i4.0 IL_12BB: ceq IL_12BD: ldc.i4.0 IL_12BE: ceq IL_12C0: stfld System.Boolean Frame::m_transition IL_12C5: ldarg.0 IL_12C6: ldarg.1 IL_12C7: ldarg.2 IL_12C8: ldarg.3 IL_12C9: ldarg.s 4 IL_12CB: ldarg.s 5 IL_12CD: ldarg.s 6 IL_12CF: call virtual System.Void VehicleAI::SimulationStep(System.UInt16 vehicleID, Vehicle& vehicleData, Frame& frameData, System.UInt16 leaderID, Vehicle& leaderData, System.Int32 lodPhysics) IL_12D4: // end original IL_12D4: Label107 IL_12D4: Label108 IL_12D4: Label0 IL_12D4: ret DONE ### Patch: virtual System.Void TrainAI::SimulationStep(System.UInt16 vehicleID, Vehicle& data, UnityEngine.Vector3 physicsLodRefPos) ### Replacement: static System.Void TrainAI::TrainAI.SimulationStep_Patch0(TrainAI this, System.UInt16 vehicleID, Vehicle& data, UnityEngine.Vector3 physicsLodRefPos) IL_0000: Local var 0: System.Byte IL_0000: Local var 1: System.Boolean IL_0000: Local var 2: System.UInt16 IL_0000: Local var 3: VehicleManager IL_0000: Local var 4: VehicleInfo IL_0000: Local var 5: System.Boolean IL_0000: Local var 6: System.Int32 IL_0000: Local var 7: System.Int32 IL_0000: // start original IL_0000: ldarg.2 IL_0001: ldfld Flags Vehicle::m_flags IL_0006: ldc.i4 256 IL_000B: and IL_000C: brfalse => Label0 IL_0011: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_0016: ldfld Array32`1 PathManager::m_pathUnits IL_001B: ldfld PathUnit[] Array32`1::m_buffer IL_0020: ldarg.2 IL_0021: ldfld System.UInt32 Vehicle::m_path IL_0026: conv.u IL_0027: ldelema PathUnit IL_002C: ldfld System.Byte PathUnit::m_pathFindFlags IL_0031: stloc.0 IL_0032: ldloc.0 IL_0033: ldc.i4.4 IL_0034: and IL_0035: brfalse => Label1 IL_003A: ldarg.0 IL_003B: ldarg.1 IL_003C: ldarg.2 IL_003D: callvirt virtual System.Boolean TrainAI::PathFindReady(System.UInt16 vehicleID, Vehicle& vehicleData) IL_0042: pop IL_0043: br => Label2 IL_0048: Label1 IL_0048: ldloc.0 IL_0049: ldc.i4.8 IL_004A: and IL_004B: brtrue => Label3 IL_0050: ldarg.2 IL_0051: ldfld System.UInt32 Vehicle::m_path IL_0056: brtrue => Label4 IL_005B: Label3 IL_005B: ldarg.2 IL_005C: dup IL_005D: ldfld Flags Vehicle::m_flags IL_0062: ldc.i4 -257 IL_0067: and IL_0068: stfld Flags Vehicle::m_flags IL_006D: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_0072: ldarg.2 IL_0073: ldfld System.UInt32 Vehicle::m_path IL_0078: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit) IL_007D: ldarg.2 IL_007E: ldc.i4.0 IL_007F: stfld System.UInt32 Vehicle::m_path IL_0084: ldarg.2 IL_0085: ldarg.1 IL_0086: call System.Void Vehicle::Unspawn(System.UInt16 vehicleID) IL_008B: br => Label30 IL_0090: Label2 IL_0090: Label4 IL_0090: br => Label5 IL_0095: Label0 IL_0095: ldarg.2 IL_0096: ldfld Flags Vehicle::m_flags IL_009B: ldc.i4 65536 IL_00A0: and IL_00A1: brfalse => Label6 IL_00A6: ldarg.0 IL_00A7: ldarg.1 IL_00A8: ldarg.2 IL_00A9: callvirt virtual System.Boolean VehicleAI::TrySpawn(System.UInt16 vehicleID, Vehicle& vehicleData) IL_00AE: pop IL_00AF: Label5 IL_00AF: Label6 IL_00AF: call static TrafficManager.API.Manager.IManagerFactory TrafficManager.Constants::get_ManagerFactory() IL_00B4: callvirt abstract virtual TrafficManager.API.Manager.IExtVehicleManager TrafficManager.API.Manager.IManagerFactory::get_ExtVehicleManager() IL_00B9: ldarg.1 IL_00BA: ldarg.2 IL_00BB: callvirt abstract virtual System.Void TrafficManager.API.Manager.IExtVehicleManager::UpdateVehiclePosition(System.UInt16 vehicleId, Vehicle& vehicleData) IL_00C0: ldsfld System.Boolean TrafficManager.State.Options::advancedAI IL_00C5: brfalse => Label29 IL_00CA: ldarg.2 IL_00CB: ldfld Flags Vehicle::m_flags IL_00D0: ldc.i4.4 IL_00D1: and IL_00D2: brfalse => Label29 IL_00D7: call static TrafficManager.API.Manager.IManagerFactory TrafficManager.Constants::get_ManagerFactory() IL_00DC: callvirt abstract virtual TrafficManager.API.Manager.IExtVehicleManager TrafficManager.API.Manager.IManagerFactory::get_ExtVehicleManager() IL_00E1: ldarg.1 IL_00E2: ldarg.2 IL_00E3: callvirt abstract virtual System.Void TrafficManager.API.Manager.IExtVehicleManager::LogTraffic(System.UInt16 vehicleId, Vehicle& vehicle) IL_00E8: Label29 IL_00E8: ldarg.2 IL_00E9: ldfld Flags Vehicle::m_flags IL_00EE: ldc.i4 4096 IL_00F3: and IL_00F4: ldc.i4.0 IL_00F5: ceq IL_00F7: ldc.i4.0 IL_00F8: ceq IL_00FA: stloc.1 IL_00FB: ldloc.1 IL_00FC: brfalse => Label7 IL_0101: ldarg.2 IL_0102: ldarg.1 IL_0103: call System.UInt16 Vehicle::GetLastVehicle(System.UInt16 vehicleID) IL_0108: stloc.2 IL_0109: br => Label8 IL_010E: Label7 IL_010E: ldarg.1 IL_010F: stloc.2 IL_0110: Label8 IL_0110: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_0115: stloc.3 IL_0116: ldloc.3 IL_0117: ldfld Array16`1 VehicleManager::m_vehicles IL_011C: ldfld Vehicle[] Array16`1::m_buffer IL_0121: ldloc.2 IL_0122: ldelema Vehicle IL_0127: call VehicleInfo Vehicle::get_Info() IL_012C: stloc.s 4 (VehicleInfo) IL_012E: ldloc.s 4 (VehicleInfo) IL_0130: ldfld VehicleAI VehicleInfo::m_vehicleAI IL_0135: ldloc.2 IL_0136: ldloc.3 IL_0137: ldfld Array16`1 VehicleManager::m_vehicles IL_013C: ldfld Vehicle[] Array16`1::m_buffer IL_0141: ldloc.2 IL_0142: ldelema Vehicle IL_0147: ldarg.1 IL_0148: ldarg.2 IL_0149: ldc.i4.0 IL_014A: callvirt virtual System.Void VehicleAI::SimulationStep(System.UInt16 vehicleID, Vehicle& vehicleData, System.UInt16 leaderID, Vehicle& leaderData, System.Int32 lodPhysics) IL_014F: ldarg.2 IL_0150: ldfld Flags Vehicle::m_flags IL_0155: ldc.i4.3 IL_0156: and IL_0157: ldc.i4.1 IL_0158: beq => Label9 IL_015D: br => Label31 IL_0162: Label9 IL_0162: ldarg.2 IL_0163: ldfld Flags Vehicle::m_flags IL_0168: ldc.i4 4096 IL_016D: and IL_016E: ldc.i4.0 IL_016F: ceq IL_0171: ldc.i4.0 IL_0172: ceq IL_0174: stloc.s 5 (System.Boolean) IL_0176: ldloc.s 5 (System.Boolean) IL_0178: ldloc.1 IL_0179: beq => Label10 IL_017E: ldloc.s 5 (System.Boolean) IL_0180: stloc.1 IL_0181: ldloc.1 IL_0182: brfalse => Label11 IL_0187: ldarg.2 IL_0188: ldarg.1 IL_0189: call System.UInt16 Vehicle::GetLastVehicle(System.UInt16 vehicleID) IL_018E: stloc.2 IL_018F: br => Label12 IL_0194: Label11 IL_0194: ldarg.1 IL_0195: stloc.2 IL_0196: Label12 IL_0196: ldloc.3 IL_0197: ldfld Array16`1 VehicleManager::m_vehicles IL_019C: ldfld Vehicle[] Array16`1::m_buffer IL_01A1: ldloc.2 IL_01A2: ldelema Vehicle IL_01A7: call VehicleInfo Vehicle::get_Info() IL_01AC: stloc.s 4 (VehicleInfo) IL_01AE: ldloc.s 4 (VehicleInfo) IL_01B0: ldfld VehicleAI VehicleInfo::m_vehicleAI IL_01B5: ldloc.2 IL_01B6: ldloc.3 IL_01B7: ldfld Array16`1 VehicleManager::m_vehicles IL_01BC: ldfld Vehicle[] Array16`1::m_buffer IL_01C1: ldloc.2 IL_01C2: ldelema Vehicle IL_01C7: ldarg.1 IL_01C8: ldarg.2 IL_01C9: ldc.i4.0 IL_01CA: callvirt virtual System.Void VehicleAI::SimulationStep(System.UInt16 vehicleID, Vehicle& vehicleData, System.UInt16 leaderID, Vehicle& leaderData, System.Int32 lodPhysics) IL_01CF: ldarg.2 IL_01D0: ldfld Flags Vehicle::m_flags IL_01D5: ldc.i4.3 IL_01D6: and IL_01D7: ldc.i4.1 IL_01D8: beq => Label13 IL_01DD: br => Label32 IL_01E2: Label13 IL_01E2: ldarg.2 IL_01E3: ldfld Flags Vehicle::m_flags IL_01E8: ldc.i4 4096 IL_01ED: and IL_01EE: ldc.i4.0 IL_01EF: ceq IL_01F1: ldc.i4.0 IL_01F2: ceq IL_01F4: stloc.s 5 (System.Boolean) IL_01F6: ldloc.s 5 (System.Boolean) IL_01F8: ldloc.1 IL_01F9: beq => Label14 IL_01FE: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_0203: ldarg.1 IL_0204: callvirt System.Void VehicleManager::ReleaseVehicle(System.UInt16 vehicle) IL_0209: br => Label33 IL_020E: Label10 IL_020E: Label14 IL_020E: ldloc.1 IL_020F: brfalse => Label15 IL_0214: ldloc.3 IL_0215: ldfld Array16`1 VehicleManager::m_vehicles IL_021A: ldfld Vehicle[] Array16`1::m_buffer IL_021F: ldloc.2 IL_0220: ldelema Vehicle IL_0225: ldfld System.UInt16 Vehicle::m_leadingVehicle IL_022A: stloc.2 IL_022B: ldc.i4.0 IL_022C: stloc.s 6 (System.Int32) IL_022E: br => Label16 IL_0233: Label20 IL_0233: ldloc.3 IL_0234: ldfld Array16`1 VehicleManager::m_vehicles IL_0239: ldfld Vehicle[] Array16`1::m_buffer IL_023E: ldloc.2 IL_023F: ldelema Vehicle IL_0244: call VehicleInfo Vehicle::get_Info() IL_0249: stloc.s 4 (VehicleInfo) IL_024B: ldloc.s 4 (VehicleInfo) IL_024D: ldfld VehicleAI VehicleInfo::m_vehicleAI IL_0252: ldloc.2 IL_0253: ldloc.3 IL_0254: ldfld Array16`1 VehicleManager::m_vehicles IL_0259: ldfld Vehicle[] Array16`1::m_buffer IL_025E: ldloc.2 IL_025F: ldelema Vehicle IL_0264: ldarg.1 IL_0265: ldarg.2 IL_0266: ldc.i4.0 IL_0267: callvirt virtual System.Void VehicleAI::SimulationStep(System.UInt16 vehicleID, Vehicle& vehicleData, System.UInt16 leaderID, Vehicle& leaderData, System.Int32 lodPhysics) IL_026C: ldarg.2 IL_026D: ldfld Flags Vehicle::m_flags IL_0272: ldc.i4.3 IL_0273: and IL_0274: ldc.i4.1 IL_0275: beq => Label17 IL_027A: br => Label34 IL_027F: Label17 IL_027F: ldloc.3 IL_0280: ldfld Array16`1 VehicleManager::m_vehicles IL_0285: ldfld Vehicle[] Array16`1::m_buffer IL_028A: ldloc.2 IL_028B: ldelema Vehicle IL_0290: ldfld System.UInt16 Vehicle::m_leadingVehicle IL_0295: stloc.2 IL_0296: ldloc.s 6 (System.Int32) IL_0298: ldc.i4.1 IL_0299: add IL_029A: dup IL_029B: stloc.s 6 (System.Int32) IL_029D: ldc.i4 16384 IL_02A2: ble => Label18 IL_02A7: ldc.i4.1 IL_02A8: ldstr "Invalid list detected!\n" IL_02AD: call static System.String System.Environment::get_StackTrace() IL_02B2: call static System.String System.String::Concat(System.String str0, System.String str1) IL_02B7: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_02BC: br => Label19 IL_02C1: Label16 IL_02C1: Label18 IL_02C1: ldloc.2 IL_02C2: brtrue => Label20 IL_02C7: Label19 IL_02C7: br => Label21 IL_02CC: Label15 IL_02CC: ldloc.3 IL_02CD: ldfld Array16`1 VehicleManager::m_vehicles IL_02D2: ldfld Vehicle[] Array16`1::m_buffer IL_02D7: ldloc.2 IL_02D8: ldelema Vehicle IL_02DD: ldfld System.UInt16 Vehicle::m_trailingVehicle IL_02E2: stloc.2 IL_02E3: ldc.i4.0 IL_02E4: stloc.s 7 (System.Int32) IL_02E6: br => Label22 IL_02EB: Label26 IL_02EB: ldloc.3 IL_02EC: ldfld Array16`1 VehicleManager::m_vehicles IL_02F1: ldfld Vehicle[] Array16`1::m_buffer IL_02F6: ldloc.2 IL_02F7: ldelema Vehicle IL_02FC: call VehicleInfo Vehicle::get_Info() IL_0301: stloc.s 4 (VehicleInfo) IL_0303: ldloc.s 4 (VehicleInfo) IL_0305: ldfld VehicleAI VehicleInfo::m_vehicleAI IL_030A: ldloc.2 IL_030B: ldloc.3 IL_030C: ldfld Array16`1 VehicleManager::m_vehicles IL_0311: ldfld Vehicle[] Array16`1::m_buffer IL_0316: ldloc.2 IL_0317: ldelema Vehicle IL_031C: ldarg.1 IL_031D: ldarg.2 IL_031E: ldc.i4.0 IL_031F: callvirt virtual System.Void VehicleAI::SimulationStep(System.UInt16 vehicleID, Vehicle& vehicleData, System.UInt16 leaderID, Vehicle& leaderData, System.Int32 lodPhysics) IL_0324: ldarg.2 IL_0325: ldfld Flags Vehicle::m_flags IL_032A: ldc.i4.3 IL_032B: and IL_032C: ldc.i4.1 IL_032D: beq => Label23 IL_0332: br => Label35 IL_0337: Label23 IL_0337: ldloc.3 IL_0338: ldfld Array16`1 VehicleManager::m_vehicles IL_033D: ldfld Vehicle[] Array16`1::m_buffer IL_0342: ldloc.2 IL_0343: ldelema Vehicle IL_0348: ldfld System.UInt16 Vehicle::m_trailingVehicle IL_034D: stloc.2 IL_034E: ldloc.s 7 (System.Int32) IL_0350: ldc.i4.1 IL_0351: add IL_0352: dup IL_0353: stloc.s 7 (System.Int32) IL_0355: ldc.i4 16384 IL_035A: ble => Label24 IL_035F: ldc.i4.1 IL_0360: ldstr "Invalid list detected!\n" IL_0365: call static System.String System.Environment::get_StackTrace() IL_036A: call static System.String System.String::Concat(System.String str0, System.String str1) IL_036F: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_0374: br => Label25 IL_0379: Label22 IL_0379: Label24 IL_0379: ldloc.2 IL_037A: brtrue => Label26 IL_037F: Label21 IL_037F: Label25 IL_037F: ldarg.2 IL_0380: ldfld Flags Vehicle::m_flags IL_0385: ldc.i4 196868 IL_038A: and IL_038B: brfalse => Label27 IL_0390: ldarg.2 IL_0391: ldfld System.Byte Vehicle::m_blockCounter IL_0396: ldc.i4 255 IL_039B: bne.un => Label28 IL_03A0: ldsfld TrafficManager.Manager.Impl.VehicleBehaviorManager TrafficManager.Manager.Impl.VehicleBehaviorManager::Instance IL_03A5: ldarg.1 IL_03A6: ldarg.2 IL_03A7: callvirt System.Boolean TrafficManager.Manager.Impl.VehicleBehaviorManager::MayDespawn(System.UInt16 vehicleId, Vehicle& vehicleData) IL_03AC: brfalse => Label28 IL_03B1: Label27 IL_03B1: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_03B6: ldarg.1 IL_03B7: callvirt System.Void VehicleManager::ReleaseVehicle(System.UInt16 vehicle) IL_03BC: // end original IL_03BC: Label28 IL_03BC: Label30 IL_03BC: Label31 IL_03BC: Label32 IL_03BC: Label33 IL_03BC: Label34 IL_03BC: Label35 IL_03BC: ret DONE ### Patch: System.Boolean TrainAI::StartPathFind(System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays) ### Replacement: static System.Boolean TrainAI::TrainAI.StartPathFind_Patch1(TrainAI this, System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays) IL_0000: Local var 0: VehicleInfo IL_0000: Local var 1: PathUnit/Position IL_0000: Local var 2: PathUnit/Position IL_0000: Local var 3: PathUnit/Position IL_0000: Local var 4: PathUnit/Position IL_0000: Local var 5: System.Single IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Single IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Boolean IL_0000: Local var 10: System.Boolean IL_0000: Local var 11: System.UInt32 IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 12 (System.Boolean) IL_0009: ldc.i4 0 IL_000E: stloc 13 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 13 (System.Boolean) IL_0017: ldloc 13 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldarg 1 IL_0024: ldarg 2 IL_0028: call static System.Void TrafficManager.Patch._VehicleAI._TrainAI.StartPathFindPatch::Prefix(System.UInt16 vehicleID, Vehicle& vehicleData) IL_002D: Label1 IL_002D: nop IL_002E: ldloc 13 (System.Boolean) IL_0032: brfalse => Label0 IL_0037: // start original IL_0037: ldarg.0 IL_0038: ldfld VehicleInfo VehicleAI::m_info IL_003D: stloc.0 IL_003E: ldarg.2 IL_003F: ldfld Flags Vehicle::m_flags IL_0044: ldc.i4.4 IL_0045: and IL_0046: brtrue => Label2 IL_004B: ldarg.3 IL_004C: ldarg.s 4 IL_004E: call static System.Single UnityEngine.Vector3::Distance(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0053: ldc.r4 100 IL_0058: bge.un => Label3 IL_005D: ldarg.s 4 IL_005F: starg.s 3 IL_0061: Label2 IL_0061: Label3 IL_0061: ldloc.0 IL_0062: ldfld VehicleType VehicleInfo::m_vehicleType IL_0067: ldc.i4.2 IL_0068: bne.un => Label4 IL_006D: ldc.i4.1 IL_006E: stloc.s 9 (System.Boolean) IL_0070: ldc.i4.1 IL_0071: stloc.s 10 (System.Boolean) IL_0073: br => Label5 IL_0078: Label4 IL_0078: ldarg.2 IL_0079: ldfld Flags Vehicle::m_flags IL_007E: ldc.i4 805306368 IL_0083: and IL_0084: ldc.i4.0 IL_0085: ceq IL_0087: ldc.i4.0 IL_0088: ceq IL_008A: stloc.s 9 (System.Boolean) IL_008C: ldc.i4.0 IL_008D: stloc.s 10 (System.Boolean) IL_008F: Label5 IL_008F: ldarg.3 IL_0090: ldarg.0 IL_0091: ldfld TransportInfo TrainAI::m_transportInfo IL_0096: ldfld Service TransportInfo::m_netService IL_009B: ldarg.0 IL_009C: ldfld TransportInfo TrainAI::m_transportInfo IL_00A1: ldfld Service TransportInfo::m_secondaryNetService IL_00A6: ldc.i4.1 IL_00A7: ldloc.0 IL_00A8: ldfld VehicleType VehicleInfo::m_vehicleType IL_00AD: ldloc.0 IL_00AE: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_00B3: ldc.i4.0 IL_00B4: ldloc.s 9 (System.Boolean) IL_00B6: ldc.i4.0 IL_00B7: ldc.r4 32 IL_00BC: ldloca.s 1 (PathUnit+Position) IL_00BE: ldloca.s 2 (PathUnit+Position) IL_00C0: ldloca.s 5 (System.Single) IL_00C2: ldloca.s 6 (System.Single) IL_00C4: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, Service service2, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, VehicleType stopType, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_00C9: brfalse => Label6 IL_00CE: ldarg.s 4 IL_00D0: ldarg.0 IL_00D1: ldfld TransportInfo TrainAI::m_transportInfo IL_00D6: ldfld Service TransportInfo::m_netService IL_00DB: ldarg.0 IL_00DC: ldfld TransportInfo TrainAI::m_transportInfo IL_00E1: ldfld Service TransportInfo::m_secondaryNetService IL_00E6: ldc.i4.1 IL_00E7: ldloc.0 IL_00E8: ldfld VehicleType VehicleInfo::m_vehicleType IL_00ED: ldloc.0 IL_00EE: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_00F3: ldc.i4.0 IL_00F4: ldloc.s 10 (System.Boolean) IL_00F6: ldc.i4.0 IL_00F7: ldc.r4 32 IL_00FC: ldloca.s 3 (PathUnit+Position) IL_00FE: ldloca.s 4 (PathUnit+Position) IL_0100: ldloca.s 7 (System.Single) IL_0102: ldloca.s 8 (System.Single) IL_0104: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, Service service2, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, VehicleType stopType, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_0109: brfalse => Label7 IL_010E: ldarg.s 5 IL_0110: brfalse => Label8 IL_0115: ldloc.s 6 (System.Single) IL_0117: ldloc.s 5 (System.Single) IL_0119: ldc.r4 1.2 IL_011E: mul IL_011F: ble.un => Label9 IL_0124: Label8 IL_0124: ldloca.s 2 (PathUnit+Position) IL_0126: initobj PathUnit+Position IL_012C: Label9 IL_012C: ldarg.s 6 IL_012E: brfalse => Label10 IL_0133: ldloc.s 8 (System.Single) IL_0135: ldloc.s 7 (System.Single) IL_0137: ldc.r4 1.2 IL_013C: mul IL_013D: ble.un => Label11 IL_0142: Label10 IL_0142: ldloca.s 4 (PathUnit+Position) IL_0144: initobj PathUnit+Position IL_014A: Label11 IL_014A: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_014F: ldloca.s 11 (System.UInt32) IL_0151: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0156: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_015B: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0160: ldfld System.UInt32 SimulationManager::m_currentBuildIndex IL_0165: ldloc.1 IL_0166: ldloc.2 IL_0167: ldloc.3 IL_0168: ldloc.s 4 (PathUnit+Position) IL_016A: ldc.i4.1 IL_016B: ldloc.0 IL_016C: ldfld VehicleType VehicleInfo::m_vehicleType IL_0171: ldloc.0 IL_0172: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_0177: ldc.r4 20000 IL_017C: ldc.i4.0 IL_017D: ldc.i4.0 IL_017E: ldc.i4.1 IL_017F: ldc.i4.0 IL_0180: callvirt System.Boolean PathManager::CreatePath(System.UInt32& unit, ColossalFramework.Math.Randomizer& randomizer, System.UInt32 buildIndex, Position startPosA, Position startPosB, Position endPosA, Position endPosB, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, System.Single maxLength, System.Boolean isHeavyVehicle, System.Boolean ignoreBlocked, System.Boolean stablePath, System.Boolean skipQueue) IL_0185: brfalse => Label12 IL_018A: ldarg.2 IL_018B: ldfld System.UInt32 Vehicle::m_path IL_0190: brfalse => Label13 IL_0195: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_019A: ldarg.2 IL_019B: ldfld System.UInt32 Vehicle::m_path IL_01A0: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit) IL_01A5: Label13 IL_01A5: ldarg.2 IL_01A6: ldloc.s 11 (System.UInt32) IL_01A8: stfld System.UInt32 Vehicle::m_path IL_01AD: ldarg.2 IL_01AE: dup IL_01AF: ldfld Flags Vehicle::m_flags IL_01B4: ldc.i4 256 IL_01B9: or IL_01BA: stfld Flags Vehicle::m_flags IL_01BF: ldc.i4.1 IL_01C0: br => Label14 IL_01C5: Label6 IL_01C5: Label7 IL_01C5: Label12 IL_01C5: ldc.i4.0 IL_01C6: // end original IL_01C6: Label14 IL_01C6: stloc 12 (System.Boolean) IL_01CA: Label0 IL_01CA: ldloc 12 (System.Boolean) IL_01CE: ret DONE ### Patch: virtual System.String PassengerCarAI::GetLocalizedStatus(System.UInt16 vehicleID, Vehicle& data, InstanceID& target) ### Replacement: static System.String PassengerCarAI::PassengerCarAI.GetLocalizedStatus_Patch1(PassengerCarAI this, System.UInt16 vehicleID, Vehicle& data, InstanceID& target) IL_0000: Local var 0: CitizenManager IL_0000: Local var 1: System.UInt16 IL_0000: Local var 2: System.UInt16 IL_0000: Local var 3: System.Boolean IL_0000: Local var 4: System.UInt32 IL_0000: Local var 5: System.Boolean IL_0000: Local var 6: System.String IL_0000: Local var 7: System.Boolean IL_0000: ldnull IL_0001: stloc 6 (System.String) IL_0005: ldc.i4 0 IL_000A: stloc 7 (System.Boolean) IL_000E: ldc.i4.1 IL_000F: stloc 7 (System.Boolean) IL_0013: ldloc 7 (System.Boolean) IL_0017: brfalse => Label1 IL_001C: ldloca 6 (System.String) IL_0020: ldarg.0 IL_0021: ldarg 1 IL_0025: ldarg 2 IL_0029: ldarg 3 IL_002D: call static System.Boolean TrafficManager.Patch._VehicleAI._PassengerCarAI.GetLocalizedStatusPatch::Prefix(System.String& __result, PassengerCarAI __instance, System.UInt16 vehicleID, Vehicle& data, InstanceID& target) IL_0032: stloc 7 (System.Boolean) IL_0036: Label1 IL_0036: nop IL_0037: ldloc 7 (System.Boolean) IL_003B: brfalse => Label0 IL_0040: // start original IL_0040: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0045: stloc.0 IL_0046: ldarg.0 IL_0047: ldarg.1 IL_0048: ldarg.2 IL_0049: call System.UInt16 PassengerCarAI::GetDriverInstance(System.UInt16 vehicleID, Vehicle& data) IL_004E: stloc.1 IL_004F: ldc.i4.0 IL_0050: stloc.2 IL_0051: ldc.i4.0 IL_0052: stloc.3 IL_0053: ldloc.1 IL_0054: brfalse => Label2 IL_0059: ldarg.2 IL_005A: ldfld Flags Vehicle::m_flags IL_005F: ldc.i4 4194304 IL_0064: and IL_0065: brfalse => Label3 IL_006A: ldloc.0 IL_006B: ldfld Array16`1 CitizenManager::m_instances IL_0070: ldfld CitizenInstance[] Array16`1::m_buffer IL_0075: ldloc.1 IL_0076: ldelema CitizenInstance IL_007B: ldfld System.UInt32 CitizenInstance::m_citizen IL_0080: stloc.s 4 (System.UInt32) IL_0082: ldloc.s 4 (System.UInt32) IL_0084: brfalse => Label4 IL_0089: ldloc.0 IL_008A: ldfld Array32`1 CitizenManager::m_citizens IL_008F: ldfld Citizen[] Array32`1::m_buffer IL_0094: ldloc.s 4 (System.UInt32) IL_0096: conv.u IL_0097: ldelema Citizen IL_009C: ldfld System.UInt16 Citizen::m_parkedVehicle IL_00A1: brfalse => Label5 IL_00A6: ldarg.3 IL_00A7: ldsfld InstanceID InstanceID::Empty IL_00AC: stobj InstanceID IL_00B1: ldstr "VEHICLE_STATUS_PARKING" IL_00B6: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_00BB: br => Label12 IL_00C0: Label3 IL_00C0: Label4 IL_00C0: Label5 IL_00C0: ldloc.0 IL_00C1: ldfld Array16`1 CitizenManager::m_instances IL_00C6: ldfld CitizenInstance[] Array16`1::m_buffer IL_00CB: ldloc.1 IL_00CC: ldelema CitizenInstance IL_00D1: ldfld System.UInt16 CitizenInstance::m_targetBuilding IL_00D6: stloc.2 IL_00D7: ldloc.0 IL_00D8: ldfld Array16`1 CitizenManager::m_instances IL_00DD: ldfld CitizenInstance[] Array16`1::m_buffer IL_00E2: ldloc.1 IL_00E3: ldelema CitizenInstance IL_00E8: ldfld Flags CitizenInstance::m_flags IL_00ED: ldc.i4 134217728 IL_00F2: and IL_00F3: ldc.i4.0 IL_00F4: ceq IL_00F6: ldc.i4.0 IL_00F7: ceq IL_00F9: stloc.3 IL_00FA: Label2 IL_00FA: ldloc.2 IL_00FB: brfalse => Label6 IL_0100: ldloc.3 IL_0101: brtrue => Label7 IL_0106: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_010B: ldfld Array16`1 BuildingManager::m_buildings IL_0110: ldfld Building[] Array16`1::m_buffer IL_0115: ldloc.2 IL_0116: ldelema Building IL_011B: ldfld Flags Building::m_flags IL_0120: ldc.i4 192 IL_0125: and IL_0126: ldc.i4.0 IL_0127: ceq IL_0129: ldc.i4.0 IL_012A: ceq IL_012C: br => Label8 IL_0131: Label7 IL_0131: ldc.i4.0 IL_0132: Label8 IL_0132: stloc.s 5 (System.Boolean) IL_0134: ldloc.s 5 (System.Boolean) IL_0136: brfalse => Label9 IL_013B: ldarg.3 IL_013C: ldsfld InstanceID InstanceID::Empty IL_0141: stobj InstanceID IL_0146: ldstr "VEHICLE_STATUS_LEAVING" IL_014B: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_0150: br => Label13 IL_0155: Label9 IL_0155: ldarg.3 IL_0156: ldsfld InstanceID InstanceID::Empty IL_015B: stobj InstanceID IL_0160: ldloc.3 IL_0161: brfalse => Label10 IL_0166: ldarg.3 IL_0167: ldloc.2 IL_0168: call System.Void InstanceID::set_NetNode(System.UInt16 value) IL_016D: br => Label11 IL_0172: Label10 IL_0172: ldarg.3 IL_0173: ldloc.2 IL_0174: call System.Void InstanceID::set_Building(System.UInt16 value) IL_0179: Label11 IL_0179: ldstr "VEHICLE_STATUS_GOINGTO" IL_017E: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_0183: br => Label14 IL_0188: Label6 IL_0188: ldarg.3 IL_0189: ldsfld InstanceID InstanceID::Empty IL_018E: stobj InstanceID IL_0193: ldstr "VEHICLE_STATUS_CONFUSED" IL_0198: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_019D: // end original IL_019D: Label12 IL_019D: Label13 IL_019D: Label14 IL_019D: stloc 6 (System.String) IL_01A1: Label0 IL_01A1: ldloc 6 (System.String) IL_01A5: ret DONE ### Patch: virtual System.Boolean PassengerCarAI::ParkVehicle(System.UInt16 vehicleID, Vehicle& vehicleData, Position pathPos, System.UInt32 nextPath, System.Int32 nextPositionIndex, System.Byte& segmentOffset) ### Replacement: static System.Boolean PassengerCarAI::PassengerCarAI.ParkVehicle_Patch1(PassengerCarAI this, System.UInt16 vehicleID, Vehicle& vehicleData, Position pathPos, System.UInt32 nextPath, System.Int32 nextPositionIndex, System.Byte& segmentOffset) IL_0000: Local var 0: PathManager IL_0000: Local var 1: CitizenManager IL_0000: Local var 2: NetManager IL_0000: Local var 3: VehicleManager IL_0000: Local var 4: System.UInt32 IL_0000: Local var 5: System.UInt32 IL_0000: Local var 6: System.Int32 IL_0000: Local var 7: System.UInt32 IL_0000: Local var 8: System.Int32 IL_0000: Local var 9: System.UInt32 IL_0000: Local var 10: System.UInt16 IL_0000: Local var 11: System.UInt32 IL_0000: Local var 12: UnityEngine.Vector3 IL_0000: Local var 13: UnityEngine.Vector3 IL_0000: Local var 14: NetInfo IL_0000: Local var 15: System.Boolean IL_0000: Local var 16: System.Boolean IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.UInt16 IL_0000: Local var 19: System.Boolean IL_0000: Local var 20: UnityEngine.Vector3 IL_0000: Local var 21: UnityEngine.Quaternion IL_0000: Local var 22: System.Single IL_0000: Local var 23: System.UInt16 IL_0000: Local var 24: System.UInt32 IL_0000: Local var 25: System.Int32 IL_0000: Local var 26: System.UInt32 IL_0000: Local var 27: System.Int32 IL_0000: Local var 28: System.UInt32 IL_0000: Local var 29: System.UInt16 IL_0000: Local var 30: System.Boolean IL_0000: Local var 31: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 30 (System.Boolean) IL_0009: ldc.i4 0 IL_000E: stloc 31 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 31 (System.Boolean) IL_0017: ldloc 31 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldloca 30 (System.Boolean) IL_0024: ldarg 1 IL_0028: ldarg 2 IL_002C: ldarg 3 IL_0030: ldarg 4 IL_0034: ldarg 5 IL_0038: ldarg 6 IL_003C: call static System.Boolean TrafficManager.Patch._VehicleAI._PassengerCarAI.ParkVehiclePatch::Prefix(System.Boolean& __result, System.UInt16 vehicleID, Vehicle& vehicleData, Position pathPos, System.UInt32 nextPath, System.Int32 nextPositionIndex, System.Byte& segmentOffset) IL_0041: stloc 31 (System.Boolean) IL_0045: Label1 IL_0045: nop IL_0046: ldloc 31 (System.Boolean) IL_004A: brfalse => Label0 IL_004F: // start original IL_004F: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_0054: stloc.0 IL_0055: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_005A: stloc.1 IL_005B: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0060: stloc.2 IL_0061: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_0066: stloc.3 IL_0067: ldc.i4.0 IL_0068: stloc.s 4 (System.UInt32) IL_006A: ldarg.2 IL_006B: ldfld System.UInt32 Vehicle::m_citizenUnits IL_0070: stloc.s 5 (System.UInt32) IL_0072: ldc.i4.0 IL_0073: stloc.s 6 (System.Int32) IL_0075: br => Label2 IL_007A: Label11 IL_007A: ldloc.1 IL_007B: ldfld Array32`1 CitizenManager::m_units IL_0080: ldfld CitizenUnit[] Array32`1::m_buffer IL_0085: ldloc.s 5 (System.UInt32) IL_0087: conv.u IL_0088: ldelema CitizenUnit IL_008D: ldfld System.UInt32 CitizenUnit::m_nextUnit IL_0092: stloc.s 7 (System.UInt32) IL_0094: ldc.i4.0 IL_0095: stloc.s 8 (System.Int32) IL_0097: br => Label3 IL_009C: Label7 IL_009C: ldloc.1 IL_009D: ldfld Array32`1 CitizenManager::m_units IL_00A2: ldfld CitizenUnit[] Array32`1::m_buffer IL_00A7: ldloc.s 5 (System.UInt32) IL_00A9: conv.u IL_00AA: ldelema CitizenUnit IL_00AF: ldloc.s 8 (System.Int32) IL_00B1: call System.UInt32 CitizenUnit::GetCitizen(System.Int32 index) IL_00B6: stloc.s 9 (System.UInt32) IL_00B8: ldloc.s 9 (System.UInt32) IL_00BA: brfalse => Label4 IL_00BF: ldloc.1 IL_00C0: ldfld Array32`1 CitizenManager::m_citizens IL_00C5: ldfld Citizen[] Array32`1::m_buffer IL_00CA: ldloc.s 9 (System.UInt32) IL_00CC: conv.u IL_00CD: ldelema Citizen IL_00D2: ldfld System.UInt16 Citizen::m_instance IL_00D7: stloc.s 10 (System.UInt16) IL_00D9: ldloc.s 10 (System.UInt16) IL_00DB: brfalse => Label5 IL_00E0: ldloc.1 IL_00E1: ldfld Array16`1 CitizenManager::m_instances IL_00E6: ldfld CitizenInstance[] Array16`1::m_buffer IL_00EB: ldloc.s 10 (System.UInt16) IL_00ED: ldelema CitizenInstance IL_00F2: ldfld System.UInt32 CitizenInstance::m_citizen IL_00F7: stloc.s 4 (System.UInt32) IL_00F9: br => Label6 IL_00FE: Label4 IL_00FE: Label5 IL_00FE: ldloc.s 8 (System.Int32) IL_0100: ldc.i4.1 IL_0101: add IL_0102: stloc.s 8 (System.Int32) IL_0104: Label3 IL_0104: ldloc.s 8 (System.Int32) IL_0106: ldc.i4.5 IL_0107: blt => Label7 IL_010C: Label6 IL_010C: ldloc.s 7 (System.UInt32) IL_010E: stloc.s 5 (System.UInt32) IL_0110: ldloc.s 6 (System.Int32) IL_0112: ldc.i4.1 IL_0113: add IL_0114: dup IL_0115: stloc.s 6 (System.Int32) IL_0117: ldc.i4 524288 IL_011C: ble => Label8 IL_0121: ldc.i4.1 IL_0122: ldstr "Invalid list detected!\n" IL_0127: call static System.String System.Environment::get_StackTrace() IL_012C: call static System.String System.String::Concat(System.String str0, System.String str1) IL_0131: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_0136: br => Label9 IL_013B: Label2 IL_013B: Label8 IL_013B: ldloc.s 5 (System.UInt32) IL_013D: brfalse => Label10 IL_0142: ldloc.s 4 (System.UInt32) IL_0144: brfalse => Label11 IL_0149: Label9 IL_0149: Label10 IL_0149: ldloc.s 4 (System.UInt32) IL_014B: brfalse => Label12 IL_0150: ldarg.3 IL_0151: call static System.UInt32 PathManager::GetLaneID(Position pathPos) IL_0156: stloc.s 11 (System.UInt32) IL_0158: ldarg.s 6 IL_015A: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_015F: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0164: ldc.i4.1 IL_0165: ldc.i4 254 IL_016A: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max) IL_016F: conv.u1 IL_0170: stind.i1 IL_0171: ldloc.2 IL_0172: ldfld Array32`1 NetManager::m_lanes IL_0177: ldfld NetLane[] Array32`1::m_buffer IL_017C: ldloc.s 11 (System.UInt32) IL_017E: conv.u IL_017F: ldelema NetLane IL_0184: ldarg.s 6 IL_0186: ldind.u1 IL_0187: conv.r4 IL_0188: ldc.r4 0.003921569 IL_018D: mul IL_018E: ldloca.s 12 (UnityEngine.Vector3) IL_0190: ldloca.s 13 (UnityEngine.Vector3) IL_0192: call System.Void NetLane::CalculatePositionAndDirection(System.Single laneOffset, UnityEngine.Vector3& position, UnityEngine.Vector3& direction) IL_0197: ldloc.2 IL_0198: ldfld Array16`1 NetManager::m_segments IL_019D: ldfld NetSegment[] Array16`1::m_buffer IL_01A2: ldarga.s 3 IL_01A4: ldfld System.UInt16 Position::m_segment IL_01A9: ldelema NetSegment IL_01AE: call NetInfo NetSegment::get_Info() IL_01B3: stloc.s 14 (NetInfo) IL_01B5: ldloc.2 IL_01B6: ldfld Array16`1 NetManager::m_segments IL_01BB: ldfld NetSegment[] Array16`1::m_buffer IL_01C0: ldarga.s 3 IL_01C2: ldfld System.UInt16 Position::m_segment IL_01C7: ldelema NetSegment IL_01CC: ldfld Flags NetSegment::m_flags IL_01D1: ldc.i4.s 16 IL_01D3: and IL_01D4: ldc.i4.0 IL_01D5: ceq IL_01D7: ldc.i4.0 IL_01D8: ceq IL_01DA: stloc.s 15 (System.Boolean) IL_01DC: ldloc.s 14 (NetInfo) IL_01DE: ldfld Lane[] NetInfo::m_lanes IL_01E3: ldarga.s 3 IL_01E5: ldfld System.Byte Position::m_lane IL_01EA: ldelem.ref IL_01EB: ldfld System.Single Lane::m_position IL_01F0: ldc.r4 0 IL_01F5: clt IL_01F7: stloc.s 16 (System.Boolean) IL_01F9: ldloca.s 13 (UnityEngine.Vector3) IL_01FB: call System.Void UnityEngine.Vector3::Normalize() IL_0200: ldloc.s 15 (System.Boolean) IL_0202: ldloc.s 16 (System.Boolean) IL_0204: beq => Label13 IL_0209: ldloca.s 17 (UnityEngine.Vector3) IL_020B: ldloca.s 13 (UnityEngine.Vector3) IL_020D: ldfld System.Single UnityEngine.Vector3::z IL_0212: neg IL_0213: stfld System.Single UnityEngine.Vector3::x IL_0218: ldloca.s 17 (UnityEngine.Vector3) IL_021A: ldc.r4 0 IL_021F: stfld System.Single UnityEngine.Vector3::y IL_0224: ldloca.s 17 (UnityEngine.Vector3) IL_0226: ldloca.s 13 (UnityEngine.Vector3) IL_0228: ldfld System.Single UnityEngine.Vector3::x IL_022D: stfld System.Single UnityEngine.Vector3::z IL_0232: br => Label14 IL_0237: Label13 IL_0237: ldloca.s 17 (UnityEngine.Vector3) IL_0239: ldloca.s 13 (UnityEngine.Vector3) IL_023B: ldfld System.Single UnityEngine.Vector3::z IL_0240: stfld System.Single UnityEngine.Vector3::x IL_0245: ldloca.s 17 (UnityEngine.Vector3) IL_0247: ldc.r4 0 IL_024C: stfld System.Single UnityEngine.Vector3::y IL_0251: ldloca.s 17 (UnityEngine.Vector3) IL_0253: ldloca.s 13 (UnityEngine.Vector3) IL_0255: ldfld System.Single UnityEngine.Vector3::x IL_025A: neg IL_025B: stfld System.Single UnityEngine.Vector3::z IL_0260: Label14 IL_0260: ldc.i4.0 IL_0261: stloc.s 18 (System.UInt16) IL_0263: ldloc.s 4 (System.UInt32) IL_0265: brfalse => Label15 IL_026A: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_026F: ldfld Array32`1 CitizenManager::m_citizens IL_0274: ldfld Citizen[] Array32`1::m_buffer IL_0279: ldloc.s 4 (System.UInt32) IL_027B: conv.u IL_027C: ldelema Citizen IL_0281: ldfld System.UInt16 Citizen::m_homeBuilding IL_0286: stloc.s 18 (System.UInt16) IL_0288: Label15 IL_0288: ldarg.0 IL_0289: ldfld VehicleInfo VehicleAI::m_info IL_028E: ldfld ItemClass VehicleInfo::m_class IL_0293: ldfld SubService ItemClass::m_subService IL_0298: ldc.i4.1 IL_0299: ceq IL_029B: ldc.i4.0 IL_029C: ceq IL_029E: stloc.s 19 (System.Boolean) IL_02A0: ldloc.s 19 (System.Boolean) IL_02A2: ldloc.s 18 (System.UInt16) IL_02A4: ldloc.s 12 (UnityEngine.Vector3) IL_02A6: ldloc.s 17 (UnityEngine.Vector3) IL_02A8: ldarga.s 3 IL_02AA: ldfld System.UInt16 Position::m_segment IL_02AF: ldarg.0 IL_02B0: ldfld VehicleInfo VehicleAI::m_info IL_02B5: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_02BA: ldflda UnityEngine.Vector3 VehicleInfoGen::m_size IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldarg.0 IL_02C5: ldfld VehicleInfo VehicleAI::m_info IL_02CA: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_02CF: ldflda UnityEngine.Vector3 VehicleInfoGen::m_size IL_02D4: ldfld System.Single UnityEngine.Vector3::z IL_02D9: ldloca.s 20 (UnityEngine.Vector3) IL_02DB: ldloca.s 21 (UnityEngine.Quaternion) IL_02DD: ldloca.s 22 (System.Single) IL_02DF: call static System.Boolean PassengerCarAI::FindParkingSpace(System.Boolean isElectric, System.UInt16 homeID, UnityEngine.Vector3 refPos, UnityEngine.Vector3 searchDir, System.UInt16 segment, System.Single width, System.Single length, UnityEngine.Vector3& parkPos, UnityEngine.Quaternion& parkRot, System.Single& parkOffset) IL_02E4: brfalse => Label16 IL_02E9: ldloc.3 IL_02EA: ldloca.s 23 (System.UInt16) IL_02EC: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_02F1: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_02F6: ldarg.0 IL_02F7: ldfld VehicleInfo VehicleAI::m_info IL_02FC: ldloc.s 20 (UnityEngine.Vector3) IL_02FE: ldloc.s 21 (UnityEngine.Quaternion) IL_0300: ldloc.s 4 (System.UInt32) IL_0302: callvirt System.Boolean VehicleManager::CreateParkedVehicle(System.UInt16& parked, ColossalFramework.Math.Randomizer& r, VehicleInfo info, UnityEngine.Vector3 position, UnityEngine.Quaternion rotation, System.UInt32 ownerCitizen) IL_0307: brfalse => Label17 IL_030C: ldloc.1 IL_030D: ldfld Array32`1 CitizenManager::m_citizens IL_0312: ldfld Citizen[] Array32`1::m_buffer IL_0317: ldloc.s 4 (System.UInt32) IL_0319: conv.u IL_031A: ldelema Citizen IL_031F: ldloc.s 4 (System.UInt32) IL_0321: ldloc.s 23 (System.UInt16) IL_0323: call System.Void Citizen::SetParkedVehicle(System.UInt32 citizenID, System.UInt16 parkedVehicleID) IL_0328: ldloc.s 22 (System.Single) IL_032A: ldc.r4 0 IL_032F: blt.un => Label18 IL_0334: ldarg.s 6 IL_0336: ldloc.s 22 (System.Single) IL_0338: ldc.r4 255 IL_033D: mul IL_033E: conv.u1 IL_033F: stind.i1 IL_0340: Label16 IL_0340: Label17 IL_0340: Label18 IL_0340: br => Label19 IL_0345: Label12 IL_0345: ldarg.s 6 IL_0347: ldarga.s 3 IL_0349: ldfld System.Byte Position::m_offset IL_034E: stind.i1 IL_034F: Label19 IL_034F: ldloc.s 4 (System.UInt32) IL_0351: brfalse => Label20 IL_0356: ldarg.2 IL_0357: ldfld System.UInt32 Vehicle::m_citizenUnits IL_035C: stloc.s 24 (System.UInt32) IL_035E: ldc.i4.0 IL_035F: stloc.s 25 (System.Int32) IL_0361: br => Label21 IL_0366: Label30 IL_0366: ldloc.1 IL_0367: ldfld Array32`1 CitizenManager::m_units IL_036C: ldfld CitizenUnit[] Array32`1::m_buffer IL_0371: ldloc.s 24 (System.UInt32) IL_0373: conv.u IL_0374: ldelema CitizenUnit IL_0379: ldfld System.UInt32 CitizenUnit::m_nextUnit IL_037E: stloc.s 26 (System.UInt32) IL_0380: ldc.i4.0 IL_0381: stloc.s 27 (System.Int32) IL_0383: br => Label22 IL_0388: Label27 IL_0388: ldloc.1 IL_0389: ldfld Array32`1 CitizenManager::m_units IL_038E: ldfld CitizenUnit[] Array32`1::m_buffer IL_0393: ldloc.s 24 (System.UInt32) IL_0395: conv.u IL_0396: ldelema CitizenUnit IL_039B: ldloc.s 27 (System.Int32) IL_039D: call System.UInt32 CitizenUnit::GetCitizen(System.Int32 index) IL_03A2: stloc.s 28 (System.UInt32) IL_03A4: ldloc.s 28 (System.UInt32) IL_03A6: brfalse => Label23 IL_03AB: ldloc.1 IL_03AC: ldfld Array32`1 CitizenManager::m_citizens IL_03B1: ldfld Citizen[] Array32`1::m_buffer IL_03B6: ldloc.s 28 (System.UInt32) IL_03B8: conv.u IL_03B9: ldelema Citizen IL_03BE: ldfld System.UInt16 Citizen::m_instance IL_03C3: stloc.s 29 (System.UInt16) IL_03C5: ldloc.s 29 (System.UInt16) IL_03C7: brfalse => Label24 IL_03CC: ldloc.0 IL_03CD: ldarg.s 4 IL_03CF: callvirt System.Boolean PathManager::AddPathReference(System.UInt32 unit) IL_03D4: brfalse => Label25 IL_03D9: ldloc.1 IL_03DA: ldfld Array16`1 CitizenManager::m_instances IL_03DF: ldfld CitizenInstance[] Array16`1::m_buffer IL_03E4: ldloc.s 29 (System.UInt16) IL_03E6: ldelema CitizenInstance IL_03EB: ldfld System.UInt32 CitizenInstance::m_path IL_03F0: brfalse => Label26 IL_03F5: ldloc.0 IL_03F6: ldloc.1 IL_03F7: ldfld Array16`1 CitizenManager::m_instances IL_03FC: ldfld CitizenInstance[] Array16`1::m_buffer IL_0401: ldloc.s 29 (System.UInt16) IL_0403: ldelema CitizenInstance IL_0408: ldfld System.UInt32 CitizenInstance::m_path IL_040D: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit) IL_0412: Label26 IL_0412: ldloc.1 IL_0413: ldfld Array16`1 CitizenManager::m_instances IL_0418: ldfld CitizenInstance[] Array16`1::m_buffer IL_041D: ldloc.s 29 (System.UInt16) IL_041F: ldelema CitizenInstance IL_0424: ldarg.s 4 IL_0426: stfld System.UInt32 CitizenInstance::m_path IL_042B: ldloc.1 IL_042C: ldfld Array16`1 CitizenManager::m_instances IL_0431: ldfld CitizenInstance[] Array16`1::m_buffer IL_0436: ldloc.s 29 (System.UInt16) IL_0438: ldelema CitizenInstance IL_043D: ldarg.s 5 IL_043F: conv.u1 IL_0440: stfld System.Byte CitizenInstance::m_pathPositionIndex IL_0445: ldloc.1 IL_0446: ldfld Array16`1 CitizenManager::m_instances IL_044B: ldfld CitizenInstance[] Array16`1::m_buffer IL_0450: ldloc.s 29 (System.UInt16) IL_0452: ldelema CitizenInstance IL_0457: ldarg.s 6 IL_0459: ldind.u1 IL_045A: stfld System.Byte CitizenInstance::m_lastPathOffset IL_045F: Label23 IL_045F: Label24 IL_045F: Label25 IL_045F: ldloc.s 27 (System.Int32) IL_0461: ldc.i4.1 IL_0462: add IL_0463: stloc.s 27 (System.Int32) IL_0465: Label22 IL_0465: ldloc.s 27 (System.Int32) IL_0467: ldc.i4.5 IL_0468: blt => Label27 IL_046D: ldloc.s 26 (System.UInt32) IL_046F: stloc.s 24 (System.UInt32) IL_0471: ldloc.s 25 (System.Int32) IL_0473: ldc.i4.1 IL_0474: add IL_0475: dup IL_0476: stloc.s 25 (System.Int32) IL_0478: ldc.i4 524288 IL_047D: ble => Label28 IL_0482: ldc.i4.1 IL_0483: ldstr "Invalid list detected!\n" IL_0488: call static System.String System.Environment::get_StackTrace() IL_048D: call static System.String System.String::Concat(System.String str0, System.String str1) IL_0492: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_0497: br => Label29 IL_049C: Label21 IL_049C: Label28 IL_049C: ldloc.s 24 (System.UInt32) IL_049E: brtrue => Label30 IL_04A3: Label20 IL_04A3: Label29 IL_04A3: ldc.i4.1 IL_04A4: // end original IL_04A4: stloc 30 (System.Boolean) IL_04A8: Label0 IL_04A8: ldloc 30 (System.Boolean) IL_04AC: ret DONE ### Patch: virtual System.Void PassengerCarAI::SimulationStep(System.UInt16 vehicleID, Vehicle& data, UnityEngine.Vector3 physicsLodRefPos) ### Replacement: static System.Void PassengerCarAI::PassengerCarAI.SimulationStep_Patch0(PassengerCarAI this, System.UInt16 vehicleID, Vehicle& data, UnityEngine.Vector3 physicsLodRefPos) IL_0000: // start original IL_0000: ldarg.2 IL_0001: ldfld Flags Vehicle::m_flags IL_0006: ldc.i4 67108864 IL_000B: and IL_000C: brfalse => Label0 IL_0011: ldsfld TrafficManager.Manager.Impl.VehicleBehaviorManager TrafficManager.Manager.Impl.VehicleBehaviorManager::Instance IL_0016: ldarg.1 IL_0017: ldarg.2 IL_0018: callvirt System.Boolean TrafficManager.Manager.Impl.VehicleBehaviorManager::MayDespawn(System.UInt16 vehicleId, Vehicle& vehicleData) IL_001D: brfalse => Label0 IL_0022: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_0027: ldarg.1 IL_0028: callvirt System.Void VehicleManager::ReleaseVehicle(System.UInt16 vehicle) IL_002D: br => Label1 IL_0032: Label0 IL_0032: ldarg.0 IL_0033: ldarg.1 IL_0034: ldarg.2 IL_0035: ldarg.3 IL_0036: call virtual System.Void CarAI::SimulationStep(System.UInt16 vehicleID, Vehicle& data, UnityEngine.Vector3 physicsLodRefPos) IL_003B: // end original IL_003B: Label1 IL_003B: ret DONE ### Patch: virtual System.Boolean PassengerCarAI::StartPathFind(System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays, System.Boolean undergroundTarget) ### Replacement: static System.Boolean PassengerCarAI::PassengerCarAI.StartPathFind_Patch1(PassengerCarAI this, System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays, System.Boolean undergroundTarget) IL_0000: Local var 0: VehicleInfo IL_0000: Local var 1: System.UInt16 IL_0000: Local var 2: CitizenManager IL_0000: Local var 3: CitizenInfo IL_0000: Local var 4: PathUnit/Position IL_0000: Local var 5: PathUnit/Position IL_0000: Local var 6: PathUnit/Position IL_0000: Local var 7: PathUnit/Position IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: NetInfo/LaneType IL_0000: Local var 11: VehicleInfo/VehicleType IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: System.UInt16 IL_0000: Local var 15: System.Boolean IL_0000: Local var 16: System.UInt32 IL_0000: Local var 17: SimulationManager IL_0000: Local var 18: PathUnit/Position IL_0000: Local var 19: System.Boolean IL_0000: Local var 20: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 19 (System.Boolean) IL_0009: ldc.i4 0 IL_000E: stloc 20 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 20 (System.Boolean) IL_0017: ldloc 20 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldloca 19 (System.Boolean) IL_0024: ldarg.0 IL_0025: ldfld VehicleInfo VehicleAI::m_info IL_002A: ldarg.0 IL_002B: ldarg 1 IL_002F: ldarg 2 IL_0033: ldarg 3 IL_0037: ldarg 4 IL_003B: ldarg 5 IL_003F: ldarg 6 IL_0043: ldarg 7 IL_0047: call static System.Boolean TrafficManager.Patch._VehicleAI._PassengerCarAI.StartPathFindPatch::Prefix(System.Boolean& __result, VehicleInfo ___m_info, PassengerCarAI __instance, System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays, System.Boolean undergroundTarget) IL_004C: stloc 20 (System.Boolean) IL_0050: Label1 IL_0050: nop IL_0051: ldloc 20 (System.Boolean) IL_0055: brfalse => Label0 IL_005A: // start original IL_005A: ldarg.0 IL_005B: ldfld VehicleInfo VehicleAI::m_info IL_0060: stloc.0 IL_0061: ldarg.0 IL_0062: ldarg.1 IL_0063: ldarg.2 IL_0064: call System.UInt16 PassengerCarAI::GetDriverInstance(System.UInt16 vehicleID, Vehicle& data) IL_0069: stloc.1 IL_006A: ldloc.1 IL_006B: brtrue => Label2 IL_0070: ldc.i4.0 IL_0071: br => Label13 IL_0076: Label2 IL_0076: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_007B: stloc.2 IL_007C: ldloc.2 IL_007D: ldfld Array16`1 CitizenManager::m_instances IL_0082: ldfld CitizenInstance[] Array16`1::m_buffer IL_0087: ldloc.1 IL_0088: ldelema CitizenInstance IL_008D: call CitizenInfo CitizenInstance::get_Info() IL_0092: stloc.3 IL_0093: ldc.i4.3 IL_0094: stloc.s 10 (NetInfo+LaneType) IL_0096: ldarg.0 IL_0097: ldfld VehicleInfo VehicleAI::m_info IL_009C: ldfld VehicleType VehicleInfo::m_vehicleType IL_00A1: stloc.s 11 (VehicleInfo+VehicleType) IL_00A3: ldarg.2 IL_00A4: ldfld Flags Vehicle::m_flags IL_00A9: ldc.i4 805306368 IL_00AE: and IL_00AF: ldc.i4.0 IL_00B0: ceq IL_00B2: ldc.i4.0 IL_00B3: ceq IL_00B5: stloc.s 12 (System.Boolean) IL_00B7: ldc.i4.0 IL_00B8: stloc.s 13 (System.Boolean) IL_00BA: ldloc.2 IL_00BB: ldfld Array16`1 CitizenManager::m_instances IL_00C0: ldfld CitizenInstance[] Array16`1::m_buffer IL_00C5: ldloc.1 IL_00C6: ldelema CitizenInstance IL_00CB: ldfld System.UInt16 CitizenInstance::m_targetBuilding IL_00D0: stloc.s 14 (System.UInt16) IL_00D2: ldloc.s 14 (System.UInt16) IL_00D4: brfalse => Label3 IL_00D9: ldloc.2 IL_00DA: ldfld Array16`1 CitizenManager::m_instances IL_00DF: ldfld CitizenInstance[] Array16`1::m_buffer IL_00E4: ldloc.1 IL_00E5: ldelema CitizenInstance IL_00EA: ldfld Flags CitizenInstance::m_flags IL_00EF: ldc.i4 134217728 IL_00F4: and IL_00F5: brfalse => Label4 IL_00FA: ldc.i4.1 IL_00FB: stloc.s 13 (System.Boolean) IL_00FD: br => Label5 IL_0102: Label4 IL_0102: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0107: ldfld Array16`1 BuildingManager::m_buildings IL_010C: ldfld Building[] Array16`1::m_buffer IL_0111: ldloc.s 14 (System.UInt16) IL_0113: ldelema Building IL_0118: call BuildingInfo Building::get_Info() IL_011D: ldfld ItemClass BuildingInfo::m_class IL_0122: ldfld Service ItemClass::m_service IL_0127: ldc.i4.8 IL_0128: ble => Label6 IL_012D: ldc.i4.1 IL_012E: stloc.s 13 (System.Boolean) IL_0130: Label3 IL_0130: Label5 IL_0130: Label6 IL_0130: ldarg.0 IL_0131: ldfld VehicleInfo VehicleAI::m_info IL_0136: ldfld ItemClass VehicleInfo::m_class IL_013B: ldfld SubService ItemClass::m_subService IL_0140: ldc.i4.1 IL_0141: ceq IL_0143: stloc.s 15 (System.Boolean) IL_0145: ldarg.3 IL_0146: ldc.i4.s 9 IL_0148: ldc.i4.s 33 IL_014A: ldloc.0 IL_014B: ldfld VehicleType VehicleInfo::m_vehicleType IL_0150: ldloc.0 IL_0151: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_0156: ldloc.s 12 (System.Boolean) IL_0158: ldc.i4.0 IL_0159: ldc.r4 32 IL_015E: ldloca.s 4 (PathUnit+Position) IL_0160: ldloca.s 5 (PathUnit+Position) IL_0162: ldloca.s 8 (System.Single) IL_0164: ldloca.s 9 (System.Single) IL_0166: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_016B: brfalse => Label7 IL_0170: ldloc.3 IL_0171: ldfld CitizenAI CitizenInfo::m_citizenAI IL_0176: ldloc.1 IL_0177: ldloc.2 IL_0178: ldfld Array16`1 CitizenManager::m_instances IL_017D: ldfld CitizenInstance[] Array16`1::m_buffer IL_0182: ldloc.1 IL_0183: ldelema CitizenInstance IL_0188: ldarg.s 4 IL_018A: ldloc.s 10 (NetInfo+LaneType) IL_018C: ldloc.s 11 (VehicleInfo+VehicleType) IL_018E: ldloc.0 IL_018F: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_0194: ldarg.s 7 IL_0196: ldloca.s 6 (PathUnit+Position) IL_0198: callvirt virtual System.Boolean CitizenAI::FindPathPosition(System.UInt16 instanceID, CitizenInstance& citizenData, UnityEngine.Vector3 pos, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, System.Boolean allowUnderground, Position& position) IL_019D: brfalse => Label8 IL_01A2: ldarg.s 5 IL_01A4: brfalse => Label9 IL_01A9: ldloc.s 8 (System.Single) IL_01AB: ldc.r4 10 IL_01B0: bge.un => Label10 IL_01B5: Label9 IL_01B5: ldloca.s 5 (PathUnit+Position) IL_01B7: initobj PathUnit+Position IL_01BD: Label10 IL_01BD: ldloca.s 7 (PathUnit+Position) IL_01BF: initobj PathUnit+Position IL_01C5: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_01CA: stloc.s 17 (SimulationManager) IL_01CC: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_01D1: ldloca.s 16 (System.UInt32) IL_01D3: ldloc.s 17 (SimulationManager) IL_01D5: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_01DA: ldloc.s 17 (SimulationManager) IL_01DC: ldfld System.UInt32 SimulationManager::m_currentBuildIndex IL_01E1: ldloc.s 4 (PathUnit+Position) IL_01E3: ldloc.s 5 (PathUnit+Position) IL_01E5: ldloc.s 6 (PathUnit+Position) IL_01E7: ldloc.s 7 (PathUnit+Position) IL_01E9: ldloca.s 18 (PathUnit+Position) IL_01EB: initobj PathUnit+Position IL_01F1: ldloc.s 18 (PathUnit+Position) IL_01F3: ldloc.s 10 (NetInfo+LaneType) IL_01F5: ldloc.s 11 (VehicleInfo+VehicleType) IL_01F7: ldloc.0 IL_01F8: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_01FD: ldc.r4 20000 IL_0202: ldc.i4.0 IL_0203: ldc.i4.0 IL_0204: ldc.i4.0 IL_0205: ldc.i4.0 IL_0206: ldloc.s 13 (System.Boolean) IL_0208: ldc.i4.0 IL_0209: ldloc.s 15 (System.Boolean) IL_020B: callvirt System.Boolean PathManager::CreatePath(System.UInt32& unit, ColossalFramework.Math.Randomizer& randomizer, System.UInt32 buildIndex, Position startPosA, Position startPosB, Position endPosA, Position endPosB, Position vehiclePosition, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, System.Single maxLength, System.Boolean isHeavyVehicle, System.Boolean ignoreBlocked, System.Boolean stablePath, System.Boolean skipQueue, System.Boolean randomParking, System.Boolean ignoreFlooded, System.Boolean combustionEngine) IL_0210: brfalse => Label11 IL_0215: ldarg.2 IL_0216: ldfld System.UInt32 Vehicle::m_path IL_021B: brfalse => Label12 IL_0220: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_0225: ldarg.2 IL_0226: ldfld System.UInt32 Vehicle::m_path IL_022B: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit) IL_0230: Label12 IL_0230: ldarg.2 IL_0231: ldloc.s 16 (System.UInt32) IL_0233: stfld System.UInt32 Vehicle::m_path IL_0238: ldarg.2 IL_0239: dup IL_023A: ldfld Flags Vehicle::m_flags IL_023F: ldc.i4 256 IL_0244: or IL_0245: stfld Flags Vehicle::m_flags IL_024A: ldc.i4.1 IL_024B: br => Label14 IL_0250: Label7 IL_0250: Label8 IL_0250: Label11 IL_0250: ldc.i4.0 IL_0251: // end original IL_0251: Label13 IL_0251: Label14 IL_0251: stloc 19 (System.Boolean) IL_0255: Label0 IL_0255: ldloc 19 (System.Boolean) IL_0259: ret DONE ### Patch: virtual System.Void PassengerCarAI::UpdateParkedVehicle(System.UInt16 parkedID, VehicleParked& parkedData) ### Replacement: static System.Void PassengerCarAI::PassengerCarAI.UpdateParkedVehicle_Patch1(PassengerCarAI this, System.UInt16 parkedID, VehicleParked& parkedData) IL_0000: Local var 0: System.Single IL_0000: Local var 1: System.Single IL_0000: Local var 2: System.Boolean IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Quaternion IL_0000: Local var 5: System.Single IL_0000: Local var 6: System.Boolean IL_0000: Local var 7: System.UInt32 IL_0000: Local var 8: System.UInt16 IL_0000: Local var 9: UnityEngine.Vector3 IL_0000: Local var 10: UnityEngine.Quaternion IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Single IL_0000: Local var 13: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 13 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 13 (System.Boolean) IL_000E: ldloc 13 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean TrafficManager.Patch._VehicleAI._PassengerCarAI.UpdateParkedVehiclePatch::Prefix(System.UInt16 parkedID, VehicleParked& parkedData) IL_0024: stloc 13 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 13 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: ldarg.0 IL_0033: ldfld VehicleInfo VehicleAI::m_info IL_0038: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_003D: ldflda UnityEngine.Vector3 VehicleInfoGen::m_size IL_0042: ldfld System.Single UnityEngine.Vector3::x IL_0047: stloc.0 IL_0048: ldarg.0 IL_0049: ldfld VehicleInfo VehicleAI::m_info IL_004E: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_0053: ldflda UnityEngine.Vector3 VehicleInfoGen::m_size IL_0058: ldfld System.Single UnityEngine.Vector3::z IL_005D: stloc.1 IL_005E: ldarg.0 IL_005F: ldfld VehicleInfo VehicleAI::m_info IL_0064: ldfld ItemClass VehicleInfo::m_class IL_0069: ldfld SubService ItemClass::m_subService IL_006E: ldc.i4.1 IL_006F: ceq IL_0071: ldc.i4.0 IL_0072: ceq IL_0074: stloc.2 IL_0075: ldc.r4 256 IL_007A: stloc.s 5 (System.Single) IL_007C: ldc.i4.0 IL_007D: stloc.s 6 (System.Boolean) IL_007F: ldarg.2 IL_0080: ldfld System.UInt32 VehicleParked::m_ownerCitizen IL_0085: stloc.s 7 (System.UInt32) IL_0087: ldc.i4.0 IL_0088: stloc.s 8 (System.UInt16) IL_008A: ldloc.s 7 (System.UInt32) IL_008C: brfalse => Label2 IL_0091: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0096: ldfld Array32`1 CitizenManager::m_citizens IL_009B: ldfld Citizen[] Array32`1::m_buffer IL_00A0: ldloc.s 7 (System.UInt32) IL_00A2: conv.u IL_00A3: ldelema Citizen IL_00A8: ldfld System.UInt16 Citizen::m_homeBuilding IL_00AD: stloc.s 8 (System.UInt16) IL_00AF: Label2 IL_00AF: ldarg.1 IL_00B0: ldc.i4.0 IL_00B1: ldarg.2 IL_00B2: ldfld UnityEngine.Vector3 VehicleParked::m_position IL_00B7: ldloc.0 IL_00B8: ldloc.1 IL_00B9: ldloca.s 3 (UnityEngine.Vector3) IL_00BB: ldloca.s 4 (UnityEngine.Quaternion) IL_00BD: ldloca.s 11 (System.Single) IL_00BF: call static System.Boolean PassengerCarAI::FindParkingSpaceRoadSide(System.UInt16 ignoreParked, System.UInt16 requireSegment, UnityEngine.Vector3 refPos, System.Single width, System.Single length, UnityEngine.Vector3& parkPos, UnityEngine.Quaternion& parkRot, System.Single& parkOffset) IL_00C4: brfalse => Label3 IL_00C9: ldloc.3 IL_00CA: ldarg.2 IL_00CB: ldfld UnityEngine.Vector3 VehicleParked::m_position IL_00D0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00D5: call static System.Single UnityEngine.Vector3::SqrMagnitude(UnityEngine.Vector3 a) IL_00DA: stloc.s 12 (System.Single) IL_00DC: ldloc.s 12 (System.Single) IL_00DE: ldloc.s 5 (System.Single) IL_00E0: bge.un => Label4 IL_00E5: ldloc.s 12 (System.Single) IL_00E7: stloc.s 5 (System.Single) IL_00E9: ldc.i4.1 IL_00EA: stloc.s 6 (System.Boolean) IL_00EC: Label3 IL_00EC: Label4 IL_00EC: ldloc.2 IL_00ED: ldloc.s 8 (System.UInt16) IL_00EF: ldarg.1 IL_00F0: ldarg.2 IL_00F1: ldfld UnityEngine.Vector3 VehicleParked::m_position IL_00F6: ldloc.0 IL_00F7: ldloc.1 IL_00F8: ldloc.s 5 (System.Single) IL_00FA: ldloca.s 9 (UnityEngine.Vector3) IL_00FC: ldloca.s 10 (UnityEngine.Quaternion) IL_00FE: call static System.Boolean PassengerCarAI::FindParkingSpaceBuilding(System.Boolean isElectric, System.UInt16 homeID, System.UInt16 ignoreParked, UnityEngine.Vector3 refPos, System.Single width, System.Single length, System.Single maxDistance, UnityEngine.Vector3& parkPos, UnityEngine.Quaternion& parkRot) IL_0103: brfalse => Label5 IL_0108: ldloc.s 9 (UnityEngine.Vector3) IL_010A: stloc.3 IL_010B: ldloc.s 10 (UnityEngine.Quaternion) IL_010D: stloc.s 4 (UnityEngine.Quaternion) IL_010F: ldc.i4.1 IL_0110: stloc.s 6 (System.Boolean) IL_0112: Label5 IL_0112: ldloc.s 6 (System.Boolean) IL_0114: brfalse => Label6 IL_0119: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_011E: ldarg.1 IL_011F: ldarg.2 IL_0120: callvirt System.Void VehicleManager::RemoveFromGrid(System.UInt16 parked, VehicleParked& data) IL_0125: ldarg.2 IL_0126: ldloc.3 IL_0127: stfld UnityEngine.Vector3 VehicleParked::m_position IL_012C: ldarg.2 IL_012D: ldloc.s 4 (UnityEngine.Quaternion) IL_012F: stfld UnityEngine.Quaternion VehicleParked::m_rotation IL_0134: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_0139: ldarg.1 IL_013A: ldarg.2 IL_013B: callvirt System.Void VehicleManager::AddToGrid(System.UInt16 parked, VehicleParked& data) IL_0140: br => Label7 IL_0145: Label6 IL_0145: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_014A: ldarg.1 IL_014B: callvirt System.Void VehicleManager::ReleaseParkedVehicle(System.UInt16 parked) IL_0150: // end original IL_0150: Label7 IL_0150: Label0 IL_0150: ret DONE ### Patch: virtual System.Void CargoTruckAI::SimulationStep(System.UInt16 vehicleID, Vehicle& data, UnityEngine.Vector3 physicsLodRefPos) ### Replacement: static System.Void CargoTruckAI::CargoTruckAI.SimulationStep_Patch0(CargoTruckAI this, System.UInt16 vehicleID, Vehicle& data, UnityEngine.Vector3 physicsLodRefPos) IL_0000: Local var 0: System.Byte IL_0000: // start original IL_0000: ldarg.2 IL_0001: ldfld Flags Vehicle::m_flags IL_0006: ldc.i4 67108864 IL_000B: and IL_000C: brfalse => Label0 IL_0011: ldsfld TrafficManager.Manager.Impl.VehicleBehaviorManager TrafficManager.Manager.Impl.VehicleBehaviorManager::Instance IL_0016: ldarg.1 IL_0017: ldarg.2 IL_0018: callvirt System.Boolean TrafficManager.Manager.Impl.VehicleBehaviorManager::MayDespawn(System.UInt16 vehicleId, Vehicle& vehicleData) IL_001D: brfalse => Label0 IL_0022: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_0027: ldarg.1 IL_0028: callvirt System.Void VehicleManager::ReleaseVehicle(System.UInt16 vehicle) IL_002D: br => Label1 IL_0032: Label0 IL_0032: ldarg.2 IL_0033: ldfld Flags Vehicle::m_flags IL_0038: ldc.i4 524288 IL_003D: and IL_003E: brfalse => Label2 IL_0043: ldarg.2 IL_0044: dup IL_0045: ldfld System.Byte Vehicle::m_waitCounter IL_004A: ldc.i4.1 IL_004B: add IL_004C: conv.u1 IL_004D: dup IL_004E: stloc.0 IL_004F: stfld System.Byte Vehicle::m_waitCounter IL_0054: ldloc.0 IL_0055: ldc.i4.s 20 IL_0057: ble => Label3 IL_005C: ldarg.0 IL_005D: ldarg.1 IL_005E: ldarg.2 IL_005F: call System.Void CargoTruckAI::RemoveOffers(System.UInt16 vehicleID, Vehicle& data) IL_0064: ldarg.2 IL_0065: dup IL_0066: ldfld Flags Vehicle::m_flags IL_006B: ldc.i4 -524289 IL_0070: and IL_0071: stfld Flags Vehicle::m_flags IL_0076: ldarg.2 IL_0077: dup IL_0078: ldfld Flags Vehicle::m_flags IL_007D: ldc.i4 262144 IL_0082: or IL_0083: stfld Flags Vehicle::m_flags IL_0088: ldarg.2 IL_0089: ldc.i4.0 IL_008A: stfld System.Byte Vehicle::m_waitCounter IL_008F: ldarg.0 IL_0090: ldarg.1 IL_0091: ldarg.2 IL_0092: callvirt virtual System.Boolean VehicleAI::StartPathFind(System.UInt16 vehicleID, Vehicle& vehicleData) IL_0097: brtrue => Label4 IL_009C: ldarg.2 IL_009D: ldarg.1 IL_009E: call System.Void Vehicle::Unspawn(System.UInt16 vehicleID) IL_00A3: Label2 IL_00A3: Label3 IL_00A3: Label4 IL_00A3: ldarg.0 IL_00A4: ldarg.1 IL_00A5: ldarg.2 IL_00A6: ldarg.3 IL_00A7: call virtual System.Void CarAI::SimulationStep(System.UInt16 vehicleID, Vehicle& data, UnityEngine.Vector3 physicsLodRefPos) IL_00AC: // end original IL_00AC: Label1 IL_00AC: ret DONE ### Patch: virtual System.Boolean CargoTruckAI::StartPathFind(System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays, System.Boolean undergroundTarget) ### Replacement: static System.Boolean CargoTruckAI::CargoTruckAI.StartPathFind_Patch1(CargoTruckAI this, System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays, System.Boolean undergroundTarget) IL_0000: Local var 0: PathUnit/Position IL_0000: Local var 1: PathUnit/Position IL_0000: Local var 2: PathUnit/Position IL_0000: Local var 3: PathUnit/Position IL_0000: Local var 4: System.Single IL_0000: Local var 5: System.Single IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Single IL_0000: Local var 8: System.Boolean IL_0000: Local var 9: System.Boolean IL_0000: Local var 10: PathUnit/Position IL_0000: Local var 11: PathUnit/Position IL_0000: Local var 12: System.Single IL_0000: Local var 13: System.Single IL_0000: Local var 14: System.Boolean IL_0000: Local var 15: PathUnit/Position IL_0000: Local var 16: PathUnit/Position IL_0000: Local var 17: System.Single IL_0000: Local var 18: System.Single IL_0000: Local var 19: PathManager IL_0000: Local var 20: NetInfo/LaneType IL_0000: Local var 21: VehicleInfo/VehicleType IL_0000: Local var 22: VehicleInfo/VehicleCategory IL_0000: Local var 23: System.UInt32 IL_0000: Local var 24: PathUnit/Position IL_0000: Local var 25: System.Boolean IL_0000: Local var 26: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 25 (System.Boolean) IL_0009: ldc.i4 0 IL_000E: stloc 26 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 26 (System.Boolean) IL_0017: ldloc 26 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldarg 1 IL_0024: ldarg 2 IL_0028: call static System.Void TrafficManager.Patch._VehicleAI._CargoTruckAI.StartPathFindPatch::Prefix(System.UInt16 vehicleID, Vehicle& vehicleData) IL_002D: Label1 IL_002D: nop IL_002E: ldloc 26 (System.Boolean) IL_0032: brfalse => Label0 IL_0037: // start original IL_0037: ldarg.2 IL_0038: ldfld Flags Vehicle::m_flags IL_003D: ldc.i4 262176 IL_0042: and IL_0043: brfalse => Label2 IL_0048: ldarg.0 IL_0049: ldarg.1 IL_004A: ldarg.2 IL_004B: ldarg.3 IL_004C: ldarg.s 4 IL_004E: ldarg.s 5 IL_0050: ldarg.s 6 IL_0052: ldarg.s 7 IL_0054: call virtual System.Boolean CarAI::StartPathFind(System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays, System.Boolean undergroundTarget) IL_0059: br => Label21 IL_005E: Label2 IL_005E: ldarg.2 IL_005F: ldfld Flags Vehicle::m_flags IL_0064: ldc.i4 805306368 IL_0069: and IL_006A: ldc.i4.0 IL_006B: ceq IL_006D: ldc.i4.0 IL_006E: ceq IL_0070: stloc.s 8 (System.Boolean) IL_0072: ldarg.3 IL_0073: ldc.i4.s 9 IL_0075: ldc.i4.s 33 IL_0077: ldc.i4.1 IL_0078: ldarg.2 IL_0079: call VehicleInfo Vehicle::get_Info() IL_007E: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_0083: ldloc.s 8 (System.Boolean) IL_0085: ldc.i4.0 IL_0086: ldc.r4 32 IL_008B: ldloca.s 0 (PathUnit+Position) IL_008D: ldloca.s 1 (PathUnit+Position) IL_008F: ldloca.s 4 (System.Single) IL_0091: ldloca.s 5 (System.Single) IL_0093: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_0098: stloc.s 9 (System.Boolean) IL_009A: ldarg.3 IL_009B: ldc.i4.s 19 IL_009D: ldc.i4.1 IL_009E: ldc.i4.s 28 IL_00A0: ldarg.2 IL_00A1: call VehicleInfo Vehicle::get_Info() IL_00A6: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_00AB: ldc.i4 139396 IL_00B0: conv.i8 IL_00B1: or IL_00B2: ldloc.s 8 (System.Boolean) IL_00B4: ldc.i4.0 IL_00B5: ldc.r4 32 IL_00BA: ldloca.s 10 (PathUnit+Position) IL_00BC: ldloca.s 11 (PathUnit+Position) IL_00BE: ldloca.s 12 (System.Single) IL_00C0: ldloca.s 13 (System.Single) IL_00C2: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_00C7: brfalse => Label3 IL_00CC: ldloc.s 9 (System.Boolean) IL_00CE: brfalse => Label4 IL_00D3: ldloc.s 12 (System.Single) IL_00D5: ldloc.s 4 (System.Single) IL_00D7: bge.un => Label5 IL_00DC: ldarga.s 3 IL_00DE: ldfld System.Single UnityEngine.Vector3::x IL_00E3: call static System.Single UnityEngine.Mathf::Abs(System.Single f) IL_00E8: ldc.r4 8540 IL_00ED: bgt => Label6 IL_00F2: ldarga.s 3 IL_00F4: ldfld System.Single UnityEngine.Vector3::z IL_00F9: call static System.Single UnityEngine.Mathf::Abs(System.Single f) IL_00FE: ldc.r4 8540 IL_0103: ble.un => Label7 IL_0108: Label4 IL_0108: Label6 IL_0108: ldloc.s 10 (PathUnit+Position) IL_010A: stloc.0 IL_010B: ldloc.s 11 (PathUnit+Position) IL_010D: stloc.1 IL_010E: ldloc.s 12 (System.Single) IL_0110: stloc.s 4 (System.Single) IL_0112: ldloc.s 13 (System.Single) IL_0114: stloc.s 5 (System.Single) IL_0116: Label5 IL_0116: Label7 IL_0116: ldc.i4.1 IL_0117: stloc.s 9 (System.Boolean) IL_0119: Label3 IL_0119: ldarg.s 4 IL_011B: ldc.i4.s 9 IL_011D: ldc.i4.s 33 IL_011F: ldc.i4.1 IL_0120: ldarg.2 IL_0121: call VehicleInfo Vehicle::get_Info() IL_0126: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_012B: ldarg.s 7 IL_012D: ldc.i4.0 IL_012E: ldc.r4 32 IL_0133: ldloca.s 2 (PathUnit+Position) IL_0135: ldloca.s 3 (PathUnit+Position) IL_0137: ldloca.s 6 (System.Single) IL_0139: ldloca.s 7 (System.Single) IL_013B: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_0140: stloc.s 14 (System.Boolean) IL_0142: ldarg.s 4 IL_0144: ldc.i4.s 19 IL_0146: ldc.i4.1 IL_0147: ldc.i4.s 28 IL_0149: ldarg.2 IL_014A: call VehicleInfo Vehicle::get_Info() IL_014F: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_0154: ldc.i4 139396 IL_0159: conv.i8 IL_015A: or IL_015B: ldarg.s 7 IL_015D: ldc.i4.0 IL_015E: ldc.r4 32 IL_0163: ldloca.s 15 (PathUnit+Position) IL_0165: ldloca.s 16 (PathUnit+Position) IL_0167: ldloca.s 17 (System.Single) IL_0169: ldloca.s 18 (System.Single) IL_016B: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_0170: brfalse => Label8 IL_0175: ldloc.s 14 (System.Boolean) IL_0177: brfalse => Label9 IL_017C: ldloc.s 17 (System.Single) IL_017E: ldloc.s 6 (System.Single) IL_0180: bge.un => Label10 IL_0185: ldarga.s 4 IL_0187: ldfld System.Single UnityEngine.Vector3::x IL_018C: call static System.Single UnityEngine.Mathf::Abs(System.Single f) IL_0191: ldc.r4 8540 IL_0196: bgt => Label11 IL_019B: ldarga.s 4 IL_019D: ldfld System.Single UnityEngine.Vector3::z IL_01A2: call static System.Single UnityEngine.Mathf::Abs(System.Single f) IL_01A7: ldc.r4 8540 IL_01AC: ble.un => Label12 IL_01B1: Label9 IL_01B1: Label11 IL_01B1: ldloc.s 15 (PathUnit+Position) IL_01B3: stloc.2 IL_01B4: ldloc.s 16 (PathUnit+Position) IL_01B6: stloc.3 IL_01B7: ldloc.s 17 (System.Single) IL_01B9: stloc.s 6 (System.Single) IL_01BB: ldloc.s 18 (System.Single) IL_01BD: stloc.s 7 (System.Single) IL_01BF: Label10 IL_01BF: Label12 IL_01BF: ldc.i4.1 IL_01C0: stloc.s 14 (System.Boolean) IL_01C2: Label8 IL_01C2: ldloc.s 9 (System.Boolean) IL_01C4: brfalse => Label13 IL_01C9: ldloc.s 14 (System.Boolean) IL_01CB: brfalse => Label14 IL_01D0: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_01D5: stloc.s 19 (PathManager) IL_01D7: ldarg.s 5 IL_01D9: brfalse => Label15 IL_01DE: ldloc.s 4 (System.Single) IL_01E0: ldc.r4 10 IL_01E5: bge.un => Label16 IL_01EA: Label15 IL_01EA: ldloca.s 1 (PathUnit+Position) IL_01EC: initobj PathUnit+Position IL_01F2: Label16 IL_01F2: ldarg.s 6 IL_01F4: brfalse => Label17 IL_01F9: ldloc.s 6 (System.Single) IL_01FB: ldc.r4 10 IL_0200: bge.un => Label18 IL_0205: Label17 IL_0205: ldloca.s 3 (PathUnit+Position) IL_0207: initobj PathUnit+Position IL_020D: Label18 IL_020D: ldc.i4.s 17 IL_020F: stloc.s 20 (NetInfo+LaneType) IL_0211: ldc.i4.s 29 IL_0213: stloc.s 21 (VehicleInfo+VehicleType) IL_0215: ldarg.2 IL_0216: call VehicleInfo Vehicle::get_Info() IL_021B: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_0220: ldc.i4 139396 IL_0225: conv.i8 IL_0226: or IL_0227: stloc.s 22 (VehicleInfo+VehicleCategory) IL_0229: ldloc.s 19 (PathManager) IL_022B: ldloca.s 23 (System.UInt32) IL_022D: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0232: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0237: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_023C: ldfld System.UInt32 SimulationManager::m_currentBuildIndex IL_0241: ldloc.0 IL_0242: ldloc.1 IL_0243: ldloc.2 IL_0244: ldloc.3 IL_0245: ldloca.s 24 (PathUnit+Position) IL_0247: initobj PathUnit+Position IL_024D: ldloc.s 24 (PathUnit+Position) IL_024F: ldloc.s 20 (NetInfo+LaneType) IL_0251: ldloc.s 21 (VehicleInfo+VehicleType) IL_0253: ldloc.s 22 (VehicleInfo+VehicleCategory) IL_0255: ldc.r4 20000 IL_025A: ldarg.0 IL_025B: callvirt virtual System.Boolean CarAI::IsHeavyVehicle() IL_0260: ldarg.0 IL_0261: ldarg.1 IL_0262: ldarg.2 IL_0263: callvirt virtual System.Boolean VehicleAI::IgnoreBlocked(System.UInt16 vehicleID, Vehicle& vehicleData) IL_0268: ldc.i4.0 IL_0269: ldc.i4.0 IL_026A: ldc.i4.0 IL_026B: ldc.i4.0 IL_026C: ldarg.0 IL_026D: callvirt virtual System.Boolean CarAI::CombustionEngine() IL_0272: callvirt System.Boolean PathManager::CreatePath(System.UInt32& unit, ColossalFramework.Math.Randomizer& randomizer, System.UInt32 buildIndex, Position startPosA, Position startPosB, Position endPosA, Position endPosB, Position vehiclePosition, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, System.Single maxLength, System.Boolean isHeavyVehicle, System.Boolean ignoreBlocked, System.Boolean stablePath, System.Boolean skipQueue, System.Boolean randomParking, System.Boolean ignoreFlooded, System.Boolean combustionEngine) IL_0277: brfalse => Label19 IL_027C: ldarg.2 IL_027D: ldfld System.UInt32 Vehicle::m_path IL_0282: brfalse => Label20 IL_0287: ldloc.s 19 (PathManager) IL_0289: ldarg.2 IL_028A: ldfld System.UInt32 Vehicle::m_path IL_028F: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit) IL_0294: Label20 IL_0294: ldarg.2 IL_0295: ldloc.s 23 (System.UInt32) IL_0297: stfld System.UInt32 Vehicle::m_path IL_029C: ldarg.2 IL_029D: dup IL_029E: ldfld Flags Vehicle::m_flags IL_02A3: ldc.i4 256 IL_02A8: or IL_02A9: stfld Flags Vehicle::m_flags IL_02AE: ldc.i4.1 IL_02AF: br => Label22 IL_02B4: Label13 IL_02B4: Label14 IL_02B4: Label19 IL_02B4: ldc.i4.0 IL_02B5: // end original IL_02B5: Label21 IL_02B5: Label22 IL_02B5: stloc 25 (System.Boolean) IL_02B9: Label0 IL_02B9: ldloc 25 (System.Boolean) IL_02BD: ret DONE ### Patch: virtual System.Void CarAI::CalculateSegmentPosition(System.UInt16 vehicleID, Vehicle& vehicleData, Position position, System.UInt32 laneID, System.Byte offset, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) ### Replacement: static System.Void CarAI::CarAI.CalculateSegmentPosition_Patch1(CarAI this, System.UInt16 vehicleID, Vehicle& vehicleData, Position position, System.UInt32 laneID, System.Byte offset, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) IL_0000: Local var 0: NetManager IL_0000: Local var 1: NetInfo IL_0000: Local var 2: DistrictManager IL_0000: Local var 3: System.Byte IL_0000: Local var 4: DistrictPolicies/CityPlanning IL_0000: Local var 5: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 5 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 5 (System.Boolean) IL_000E: ldloc 5 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg.0 IL_0018: ldarg 1 IL_001C: ldarg 2 IL_0020: ldarg 3 IL_0024: ldarg 4 IL_0028: ldarg 5 IL_002C: ldarg 6 IL_0030: ldarg 7 IL_0034: ldarg 8 IL_0038: call static System.Boolean TrafficManager.Patch._VehicleAI._CarAI.CalculateSegmentPositionPatch::Prefix(CarAI __instance, System.UInt16 vehicleID, Vehicle& vehicleData, Position position, System.UInt32 laneID, System.Byte offset, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) IL_003D: stloc 5 (System.Boolean) IL_0041: Label1 IL_0041: nop IL_0042: ldloc 5 (System.Boolean) IL_0046: brfalse => Label0 IL_004B: // start original IL_004B: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0050: stloc.0 IL_0051: ldloc.0 IL_0052: ldfld Array32`1 NetManager::m_lanes IL_0057: ldfld NetLane[] Array32`1::m_buffer IL_005C: ldarg.s 4 IL_005E: conv.u IL_005F: ldelema NetLane IL_0064: ldarg.s 5 IL_0066: conv.r4 IL_0067: ldc.r4 0.003921569 IL_006C: mul IL_006D: ldarg.s 6 IL_006F: ldarg.s 7 IL_0071: call System.Void NetLane::CalculatePositionAndDirection(System.Single laneOffset, UnityEngine.Vector3& position, UnityEngine.Vector3& direction) IL_0076: ldloc.0 IL_0077: ldfld Array16`1 NetManager::m_segments IL_007C: ldfld NetSegment[] Array16`1::m_buffer IL_0081: ldarga.s 3 IL_0083: ldfld System.UInt16 Position::m_segment IL_0088: ldelema NetSegment IL_008D: call NetInfo NetSegment::get_Info() IL_0092: stloc.1 IL_0093: ldloc.1 IL_0094: ldfld Lane[] NetInfo::m_lanes IL_0099: brfalse => Label2 IL_009E: ldloc.1 IL_009F: ldfld Lane[] NetInfo::m_lanes IL_00A4: ldlen IL_00A5: conv.i4 IL_00A6: ldarga.s 3 IL_00A8: ldfld System.Byte Position::m_lane IL_00AD: ble => Label3 IL_00B2: ldarg.s 8 IL_00B4: ldarg.0 IL_00B5: ldarg.1 IL_00B6: ldarg.2 IL_00B7: ldloc.1 IL_00B8: ldarga.s 3 IL_00BA: ldfld System.Byte Position::m_lane IL_00BF: ldloc.0 IL_00C0: ldfld Array32`1 NetManager::m_lanes IL_00C5: ldfld NetLane[] Array32`1::m_buffer IL_00CA: ldarg.s 4 IL_00CC: conv.u IL_00CD: ldelema NetLane IL_00D2: ldfld System.Single NetLane::m_curve IL_00D7: callvirt virtual System.Single VehicleAI::CalculateTargetSpeed(System.UInt16 vehicleID, Vehicle& data, NetInfo info, System.UInt32 lane, System.Single curve) IL_00DC: stind.r4 IL_00DD: br => Label4 IL_00E2: Label2 IL_00E2: Label3 IL_00E2: ldarg.s 8 IL_00E4: ldarg.0 IL_00E5: ldarg.1 IL_00E6: ldarg.2 IL_00E7: ldc.r4 1 IL_00EC: ldc.r4 0 IL_00F1: callvirt virtual System.Single VehicleAI::CalculateTargetSpeed(System.UInt16 vehicleID, Vehicle& data, System.Single speedLimit, System.Single curve) IL_00F6: stind.r4 IL_00F7: Label4 IL_00F7: ldloc.0 IL_00F8: ldfld System.Boolean NetManager::m_treatWetAsSnow IL_00FD: brfalse => Label5 IL_0102: call static DistrictManager ColossalFramework.Singleton`1::get_instance() IL_0107: stloc.2 IL_0108: ldloc.2 IL_0109: ldarg.s 6 IL_010B: ldobj UnityEngine.Vector3 IL_0110: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3 worldPos) IL_0115: stloc.3 IL_0116: ldloc.2 IL_0117: ldfld Array8`1 DistrictManager::m_districts IL_011C: ldfld District[] Array8`1::m_buffer IL_0121: ldloc.3 IL_0122: ldelema District IL_0127: ldfld CityPlanning District::m_cityPlanningPolicies IL_012C: stloc.s 4 (DistrictPolicies+CityPlanning) IL_012E: ldloc.s 4 (DistrictPolicies+CityPlanning) IL_0130: ldc.i4 1024 IL_0135: and IL_0136: brfalse => Label6 IL_013B: ldarg.s 8 IL_013D: ldarg.s 8 IL_013F: ldind.r4 IL_0140: ldc.r4 1 IL_0145: ldloc.0 IL_0146: ldfld Array16`1 NetManager::m_segments IL_014B: ldfld NetSegment[] Array16`1::m_buffer IL_0150: ldarga.s 3 IL_0152: ldfld System.UInt16 Position::m_segment IL_0157: ldelema NetSegment IL_015C: ldfld System.Byte NetSegment::m_wetness IL_0161: conv.r4 IL_0162: ldc.r4 0.0005882353 IL_0167: mul IL_0168: sub IL_0169: mul IL_016A: stind.r4 IL_016B: ldloc.2 IL_016C: ldfld Array8`1 DistrictManager::m_districts IL_0171: ldfld District[] Array8`1::m_buffer IL_0176: ldloc.3 IL_0177: ldelema District IL_017C: dup IL_017D: ldfld CityPlanning District::m_cityPlanningPoliciesEffect IL_0182: ldc.i4 1024 IL_0187: or IL_0188: stfld CityPlanning District::m_cityPlanningPoliciesEffect IL_018D: br => Label7 IL_0192: Label6 IL_0192: ldarg.s 8 IL_0194: ldarg.s 8 IL_0196: ldind.r4 IL_0197: ldc.r4 1 IL_019C: ldloc.0 IL_019D: ldfld Array16`1 NetManager::m_segments IL_01A2: ldfld NetSegment[] Array16`1::m_buffer IL_01A7: ldarga.s 3 IL_01A9: ldfld System.UInt16 Position::m_segment IL_01AE: ldelema NetSegment IL_01B3: ldfld System.Byte NetSegment::m_wetness IL_01B8: conv.r4 IL_01B9: ldc.r4 0.001176471 IL_01BE: mul IL_01BF: sub IL_01C0: mul IL_01C1: stind.r4 IL_01C2: Label7 IL_01C2: br => Label8 IL_01C7: Label5 IL_01C7: ldarg.s 8 IL_01C9: ldarg.s 8 IL_01CB: ldind.r4 IL_01CC: ldc.r4 1 IL_01D1: ldloc.0 IL_01D2: ldfld Array16`1 NetManager::m_segments IL_01D7: ldfld NetSegment[] Array16`1::m_buffer IL_01DC: ldarga.s 3 IL_01DE: ldfld System.UInt16 Position::m_segment IL_01E3: ldelema NetSegment IL_01E8: ldfld System.Byte NetSegment::m_wetness IL_01ED: conv.r4 IL_01EE: ldc.r4 0.0005882353 IL_01F3: mul IL_01F4: sub IL_01F5: mul IL_01F6: stind.r4 IL_01F7: Label8 IL_01F7: ldarg.s 8 IL_01F9: ldarg.s 8 IL_01FB: ldind.r4 IL_01FC: ldc.r4 1 IL_0201: ldloc.0 IL_0202: ldfld Array16`1 NetManager::m_segments IL_0207: ldfld NetSegment[] Array16`1::m_buffer IL_020C: ldarga.s 3 IL_020E: ldfld System.UInt16 Position::m_segment IL_0213: ldelema NetSegment IL_0218: ldfld System.Byte NetSegment::m_condition IL_021D: conv.r4 IL_021E: ldc.r4 0.0005882353 IL_0223: mul IL_0224: add IL_0225: mul IL_0226: stind.r4 IL_0227: // end original IL_0227: Label0 IL_0227: ret DONE ### Patch: virtual System.Void CarAI::CalculateSegmentPosition(System.UInt16 vehicleID, Vehicle& vehicleData, Position nextPosition, Position position, System.UInt32 laneID, System.Byte offset, Position prevPos, System.UInt32 prevLaneID, System.Byte prevOffset, System.Int32 index, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) ### Replacement: static System.Void CarAI::CarAI.CalculateSegmentPosition_Patch1(CarAI this, System.UInt16 vehicleID, Vehicle& vehicleData, Position nextPosition, Position position, System.UInt32 laneID, System.Byte offset, Position prevPos, System.UInt32 prevLaneID, System.Byte prevOffset, System.Int32 index, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) IL_0000: Local var 0: NetManager IL_0000: Local var 1: System.Single IL_0000: Local var 2: Vehicle/Frame IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: System.Single IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Single IL_0000: Local var 8: ColossalFramework.Math.Segment3 IL_0000: Local var 9: System.UInt16 IL_0000: Local var 10: System.UInt16 IL_0000: Local var 11: System.UInt16 IL_0000: Local var 12: NetNode/FlagsLong IL_0000: Local var 13: NetLane/Flags IL_0000: Local var 14: System.Boolean IL_0000: Local var 15: System.Boolean IL_0000: Local var 16: System.Boolean IL_0000: Local var 17: System.Boolean IL_0000: Local var 18: System.Boolean IL_0000: Local var 19: System.Single IL_0000: Local var 20: System.Boolean IL_0000: Local var 21: NetNode/Flags IL_0000: Local var 22: System.UInt32 IL_0000: Local var 23: System.UInt32 IL_0000: Local var 24: System.UInt32 IL_0000: Local var 25: System.UInt32 IL_0000: Local var 26: NetInfo IL_0000: Local var 27: RoadBaseAI/TrafficLightState IL_0000: Local var 28: RoadBaseAI/TrafficLightState IL_0000: Local var 29: System.Boolean IL_0000: Local var 30: System.Boolean IL_0000: Local var 31: RoadBaseAI/TrafficLightState IL_0000: Local var 32: RoadBaseAI/TrafficLightState IL_0000: Local var 33: System.Boolean IL_0000: Local var 34: System.Boolean IL_0000: Local var 35: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 35 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 35 (System.Boolean) IL_000E: ldloc 35 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg.0 IL_0018: ldarg 1 IL_001C: ldarg 2 IL_0020: ldarg 3 IL_0024: ldarg 4 IL_0028: ldarg 5 IL_002C: ldarg 6 IL_0030: ldarg 7 IL_0034: ldarg 8 IL_0038: ldarg 9 IL_003C: ldarg 10 IL_0040: ldarg 11 IL_0044: ldarg 12 IL_0048: ldarg 13 IL_004C: call static System.Boolean TrafficManager.Patch._VehicleAI._CarAI.CalculateSegmentPositionPatch2::Prefix(CarAI __instance, System.UInt16 vehicleID, Vehicle& vehicleData, Position nextPosition, Position position, System.UInt32 laneID, System.Byte offset, Position prevPos, System.UInt32 prevLaneID, System.Byte prevOffset, System.Int32 index, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) IL_0051: stloc 35 (System.Boolean) IL_0055: Label1 IL_0055: nop IL_0056: ldloc 35 (System.Boolean) IL_005A: brfalse => Label0 IL_005F: // start original IL_005F: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0064: stloc.0 IL_0065: ldloc.0 IL_0066: ldfld Array32`1 NetManager::m_lanes IL_006B: ldfld NetLane[] Array32`1::m_buffer IL_0070: ldarg.s 5 IL_0072: conv.u IL_0073: ldelema NetLane IL_0078: ldarg.s 6 IL_007A: conv.r4 IL_007B: ldc.r4 0.003921569 IL_0080: mul IL_0081: ldarg.s 11 IL_0083: ldarg.s 12 IL_0085: call System.Void NetLane::CalculatePositionAndDirection(System.Single laneOffset, UnityEngine.Vector3& position, UnityEngine.Vector3& direction) IL_008A: ldarg.0 IL_008B: ldfld VehicleInfo VehicleAI::m_info IL_0090: ldfld System.Single VehicleInfo::m_braking IL_0095: stloc.1 IL_0096: ldarg.2 IL_0097: ldfld Flags Vehicle::m_flags IL_009C: ldc.i4 128 IL_00A1: and IL_00A2: brfalse => Label2 IL_00A7: ldloc.1 IL_00A8: ldc.r4 2 IL_00AD: mul IL_00AE: stloc.1 IL_00AF: Label2 IL_00AF: ldarg.2 IL_00B0: call Frame Vehicle::GetLastFrameData() IL_00B5: stloc.2 IL_00B6: ldloca.s 2 (Vehicle+Frame) IL_00B8: ldfld UnityEngine.Vector3 Frame::m_position IL_00BD: stloc.3 IL_00BE: ldloc.0 IL_00BF: ldfld Array32`1 NetManager::m_lanes IL_00C4: ldfld NetLane[] Array32`1::m_buffer IL_00C9: ldarg.s 8 IL_00CB: conv.u IL_00CC: ldelema NetLane IL_00D1: ldarg.s 9 IL_00D3: conv.r4 IL_00D4: ldc.r4 0.003921569 IL_00D9: mul IL_00DA: call UnityEngine.Vector3 NetLane::CalculatePosition(System.Single laneOffset) IL_00DF: stloc.s 4 (UnityEngine.Vector3) IL_00E1: ldloc.3 IL_00E2: ldloc.s 4 (UnityEngine.Vector3) IL_00E4: call static System.Single UnityEngine.Vector3::Distance(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00E9: stloc.s 5 (System.Single) IL_00EB: ldloca.s 2 (Vehicle+Frame) IL_00ED: ldflda UnityEngine.Vector3 Frame::m_velocity IL_00F2: call System.Single UnityEngine.Vector3::get_sqrMagnitude() IL_00F7: stloc.s 6 (System.Single) IL_00F9: ldc.r4 0.5 IL_00FE: ldloc.s 6 (System.Single) IL_0100: mul IL_0101: ldloc.1 IL_0102: div IL_0103: ldarg.0 IL_0104: ldfld VehicleInfo VehicleAI::m_info IL_0109: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_010E: ldflda UnityEngine.Vector3 VehicleInfoGen::m_size IL_0113: ldfld System.Single UnityEngine.Vector3::z IL_0118: ldc.r4 0.5 IL_011D: mul IL_011E: add IL_011F: stloc.s 7 (System.Single) IL_0121: ldloc.s 5 (System.Single) IL_0123: ldloc.s 7 (System.Single) IL_0125: ldc.r4 1 IL_012A: sub IL_012B: blt.un => Label3 IL_0130: ldloca.s 8 (ColossalFramework.Math.Segment3) IL_0132: ldarg.s 11 IL_0134: ldobj UnityEngine.Vector3 IL_0139: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a IL_013E: ldarg.s 6 IL_0140: ldarga.s 4 IL_0142: ldfld System.Byte Position::m_offset IL_0147: bge => Label4 IL_014C: ldloca.s 8 (ColossalFramework.Math.Segment3) IL_014E: ldarg.s 11 IL_0150: ldobj UnityEngine.Vector3 IL_0155: ldarg.s 12 IL_0157: call UnityEngine.Vector3 UnityEngine.Vector3::get_normalized() IL_015C: ldarg.0 IL_015D: ldfld VehicleInfo VehicleAI::m_info IL_0162: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_0167: ldflda UnityEngine.Vector3 VehicleInfoGen::m_size IL_016C: ldfld System.Single UnityEngine.Vector3::z IL_0171: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0176: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_017B: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b IL_0180: ldloc.0 IL_0181: ldfld Array16`1 NetManager::m_segments IL_0186: ldfld NetSegment[] Array16`1::m_buffer IL_018B: ldarga.s 4 IL_018D: ldfld System.UInt16 Position::m_segment IL_0192: ldelema NetSegment IL_0197: ldfld System.UInt16 NetSegment::m_startNode IL_019C: stloc.s 9 (System.UInt16) IL_019E: ldloc.0 IL_019F: ldfld Array16`1 NetManager::m_segments IL_01A4: ldfld NetSegment[] Array16`1::m_buffer IL_01A9: ldarga.s 4 IL_01AB: ldfld System.UInt16 Position::m_segment IL_01B0: ldelema NetSegment IL_01B5: ldfld System.UInt16 NetSegment::m_endNode IL_01BA: stloc.s 10 (System.UInt16) IL_01BC: br => Label5 IL_01C1: Label4 IL_01C1: ldloca.s 8 (ColossalFramework.Math.Segment3) IL_01C3: ldarg.s 11 IL_01C5: ldobj UnityEngine.Vector3 IL_01CA: ldarg.s 12 IL_01CC: call UnityEngine.Vector3 UnityEngine.Vector3::get_normalized() IL_01D1: ldarg.0 IL_01D2: ldfld VehicleInfo VehicleAI::m_info IL_01D7: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_01DC: ldflda UnityEngine.Vector3 VehicleInfoGen::m_size IL_01E1: ldfld System.Single UnityEngine.Vector3::z IL_01E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_01EB: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_01F0: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b IL_01F5: ldloc.0 IL_01F6: ldfld Array16`1 NetManager::m_segments IL_01FB: ldfld NetSegment[] Array16`1::m_buffer IL_0200: ldarga.s 4 IL_0202: ldfld System.UInt16 Position::m_segment IL_0207: ldelema NetSegment IL_020C: ldfld System.UInt16 NetSegment::m_endNode IL_0211: stloc.s 9 (System.UInt16) IL_0213: ldloc.0 IL_0214: ldfld Array16`1 NetManager::m_segments IL_0219: ldfld NetSegment[] Array16`1::m_buffer IL_021E: ldarga.s 4 IL_0220: ldfld System.UInt16 Position::m_segment IL_0225: ldelema NetSegment IL_022A: ldfld System.UInt16 NetSegment::m_startNode IL_022F: stloc.s 10 (System.UInt16) IL_0231: Label5 IL_0231: ldarg.s 9 IL_0233: brtrue => Label6 IL_0238: ldloc.0 IL_0239: ldfld Array16`1 NetManager::m_segments IL_023E: ldfld NetSegment[] Array16`1::m_buffer IL_0243: ldarga.s 7 IL_0245: ldfld System.UInt16 Position::m_segment IL_024A: ldelema NetSegment IL_024F: ldfld System.UInt16 NetSegment::m_startNode IL_0254: stloc.s 11 (System.UInt16) IL_0256: br => Label7 IL_025B: Label6 IL_025B: ldloc.0 IL_025C: ldfld Array16`1 NetManager::m_segments IL_0261: ldfld NetSegment[] Array16`1::m_buffer IL_0266: ldarga.s 7 IL_0268: ldfld System.UInt16 Position::m_segment IL_026D: ldelema NetSegment IL_0272: ldfld System.UInt16 NetSegment::m_endNode IL_0277: stloc.s 11 (System.UInt16) IL_0279: Label7 IL_0279: ldloc.s 9 (System.UInt16) IL_027B: ldloc.s 11 (System.UInt16) IL_027D: bne.un => Label8 IL_0282: ldloc.0 IL_0283: ldfld Array16`1 NetManager::m_nodes IL_0288: ldfld NetNode[] Array16`1::m_buffer IL_028D: ldloc.s 9 (System.UInt16) IL_028F: ldelema NetNode IL_0294: call FlagsLong NetNode::get_flags() IL_0299: stloc.s 12 (NetNode+FlagsLong) IL_029B: ldloc.0 IL_029C: ldfld Array32`1 NetManager::m_lanes IL_02A1: ldfld NetLane[] Array32`1::m_buffer IL_02A6: ldarg.s 8 IL_02A8: conv.u IL_02A9: ldelema NetLane IL_02AE: ldfld System.UInt16 NetLane::m_flags IL_02B3: stloc.s 13 (NetLane+Flags) IL_02B5: ldloc.s 12 (NetNode+FlagsLong) IL_02B7: ldc.i4 8388608 IL_02BC: conv.i8 IL_02BD: and IL_02BE: ldc.i4.0 IL_02BF: conv.i8 IL_02C0: ceq IL_02C2: ldc.i4.0 IL_02C3: ceq IL_02C5: stloc.s 14 (System.Boolean) IL_02C7: ldloc.s 12 (NetNode+FlagsLong) IL_02C9: ldc.i4 2097152 IL_02CE: conv.i8 IL_02CF: and IL_02D0: ldc.i4.0 IL_02D1: conv.i8 IL_02D2: ceq IL_02D4: ldc.i4.0 IL_02D5: ceq IL_02D7: stloc.s 15 (System.Boolean) IL_02D9: ldloc.s 13 (NetLane+Flags) IL_02DB: ldc.i4.8 IL_02DC: and IL_02DD: ldc.i4.0 IL_02DE: ceq IL_02E0: ldc.i4.0 IL_02E1: ceq IL_02E3: stloc.s 16 (System.Boolean) IL_02E5: ldloc.s 12 (NetNode+FlagsLong) IL_02E7: ldc.i8 4294967296 IL_02F0: and IL_02F1: ldc.i4.0 IL_02F2: conv.i8 IL_02F3: ceq IL_02F5: ldc.i4.0 IL_02F6: ceq IL_02F8: stloc.s 17 (System.Boolean) IL_02FA: ldloc.s 13 (NetLane+Flags) IL_02FC: ldc.i4 3072 IL_0301: and IL_0302: brfalse => Label9 IL_0307: ldloc.s 12 (NetNode+FlagsLong) IL_0309: ldc.i4 25165952 IL_030E: conv.i8 IL_030F: and IL_0310: ldc.i4 128 IL_0315: conv.i8 IL_0316: ceq IL_0318: br => Label10 IL_031D: Label9 IL_031D: ldc.i4.0 IL_031E: Label10 IL_031E: stloc.s 18 (System.Boolean) IL_0320: ldloc.s 18 (System.Boolean) IL_0322: brfalse => Label11 IL_0327: ldloc.s 6 (System.Single) IL_0329: ldc.r4 0.01 IL_032E: ble.un => Label12 IL_0333: ldarg.2 IL_0334: ldfld Flags Vehicle::m_flags IL_0339: ldc.i4 128 IL_033E: and IL_033F: brtrue => Label13 IL_0344: ldarg.s 13 IL_0346: ldc.r4 0 IL_034B: stind.r4 IL_034C: br => Label54 IL_0351: Label11 IL_0351: Label12 IL_0351: Label13 IL_0351: ldloc.s 12 (NetNode+FlagsLong) IL_0353: ldc.i4 20971648 IL_0358: conv.i8 IL_0359: and IL_035A: ldc.i4 128 IL_035F: conv.i8 IL_0360: bne.un => Label14 IL_0365: ldloc.0 IL_0366: ldfld Array16`1 NetManager::m_nodes IL_036B: ldfld NetNode[] Array16`1::m_buffer IL_0370: ldloc.s 9 (System.UInt16) IL_0372: ldelema NetNode IL_0377: call System.Int32 NetNode::CountSegments() IL_037C: ldc.i4.2 IL_037D: beq => Label15 IL_0382: ldarg.2 IL_0383: ldfld Flags Vehicle::m_flags IL_0388: ldc.i4 128 IL_038D: and IL_038E: brtrue => Label16 IL_0393: ldarg.2 IL_0394: ldarg.1 IL_0395: call System.Single Vehicle::CalculateTotalLength(System.UInt16 vehicleID) IL_039A: ldc.r4 2 IL_039F: add IL_03A0: stloc.s 19 (System.Single) IL_03A2: ldloc.0 IL_03A3: ldfld Array32`1 NetManager::m_lanes IL_03A8: ldfld NetLane[] Array32`1::m_buffer IL_03AD: ldarg.s 5 IL_03AF: conv.u IL_03B0: ldelema NetLane IL_03B5: ldloc.s 19 (System.Single) IL_03B7: call System.Boolean NetLane::CheckSpace(System.Single len) IL_03BC: brtrue => Label17 IL_03C1: ldc.i4.0 IL_03C2: stloc.s 20 (System.Boolean) IL_03C4: ldarga.s 3 IL_03C6: ldfld System.UInt16 Position::m_segment IL_03CB: brfalse => Label18 IL_03D0: ldloc.0 IL_03D1: ldfld Array32`1 NetManager::m_lanes IL_03D6: ldfld NetLane[] Array32`1::m_buffer IL_03DB: ldarg.s 5 IL_03DD: conv.u IL_03DE: ldelema NetLane IL_03E3: ldfld System.Single NetLane::m_length IL_03E8: ldc.r4 30 IL_03ED: bge.un => Label19 IL_03F2: ldloc.0 IL_03F3: ldfld Array16`1 NetManager::m_nodes IL_03F8: ldfld NetNode[] Array16`1::m_buffer IL_03FD: ldloc.s 10 (System.UInt16) IL_03FF: ldelema NetNode IL_0404: ldfld Flags NetNode::m_flags IL_0409: stloc.s 21 (NetNode+Flags) IL_040B: ldloc.s 21 (NetNode+Flags) IL_040D: ldc.i4 20971648 IL_0412: and IL_0413: ldc.i4 128 IL_0418: bne.un => Label20 IL_041D: ldloc.0 IL_041E: ldfld Array16`1 NetManager::m_nodes IL_0423: ldfld NetNode[] Array16`1::m_buffer IL_0428: ldloc.s 10 (System.UInt16) IL_042A: ldelema NetNode IL_042F: call System.Int32 NetNode::CountSegments() IL_0434: ldc.i4.2 IL_0435: bne.un => Label21 IL_043A: Label20 IL_043A: ldarg.3 IL_043B: call static System.UInt32 PathManager::GetLaneID(Position pathPos) IL_0440: stloc.s 22 (System.UInt32) IL_0442: ldloc.s 22 (System.UInt32) IL_0444: brfalse => Label22 IL_0449: ldloc.0 IL_044A: ldfld Array32`1 NetManager::m_lanes IL_044F: ldfld NetLane[] Array32`1::m_buffer IL_0454: ldloc.s 22 (System.UInt32) IL_0456: conv.u IL_0457: ldelema NetLane IL_045C: ldloc.s 19 (System.Single) IL_045E: call System.Boolean NetLane::CheckSpace(System.Single len) IL_0463: stloc.s 20 (System.Boolean) IL_0465: Label18 IL_0465: Label19 IL_0465: Label21 IL_0465: Label22 IL_0465: ldloc.s 20 (System.Boolean) IL_0467: brtrue => Label23 IL_046C: ldarg.s 13 IL_046E: ldc.r4 0 IL_0473: stind.r4 IL_0474: br => Label55 IL_0479: Label14 IL_0479: Label15 IL_0479: Label16 IL_0479: Label17 IL_0479: Label23 IL_0479: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldfld System.UInt32 SimulationManager::m_currentFrameIndex IL_0483: stloc.s 23 (System.UInt32) IL_0485: ldloc.s 11 (System.UInt16) IL_0487: ldc.i4.8 IL_0488: shl IL_0489: ldc.i4 32768 IL_048E: div.un IL_048F: stloc.s 24 (System.UInt32) IL_0491: ldloc.s 23 (System.UInt32) IL_0493: ldloc.s 24 (System.UInt32) IL_0495: sub IL_0496: ldc.i4 255 IL_049B: and IL_049C: stloc.s 25 (System.UInt32) IL_049E: ldloc.s 14 (System.Boolean) IL_04A0: brfalse => Label24 IL_04A5: ldloc.s 16 (System.Boolean) IL_04A7: brfalse => Label25 IL_04AC: ldloc.s 15 (System.Boolean) IL_04AE: brfalse => Label26 IL_04B3: Label25 IL_04B3: ldloc.0 IL_04B4: ldfld Array16`1 NetManager::m_nodes IL_04B9: ldfld NetNode[] Array16`1::m_buffer IL_04BE: ldloc.s 9 (System.UInt16) IL_04C0: ldelema NetNode IL_04C5: call NetInfo NetNode::get_Info() IL_04CA: stloc.s 26 (NetInfo) IL_04CC: ldloc.s 11 (System.UInt16) IL_04CE: ldloc.0 IL_04CF: ldfld Array16`1 NetManager::m_segments IL_04D4: ldfld NetSegment[] Array16`1::m_buffer IL_04D9: ldarga.s 7 IL_04DB: ldfld System.UInt16 Position::m_segment IL_04E0: ldelema NetSegment IL_04E5: ldloc.s 23 (System.UInt32) IL_04E7: ldloc.s 24 (System.UInt32) IL_04E9: sub IL_04EA: ldloca.s 27 (RoadBaseAI+TrafficLightState) IL_04EC: ldloca.s 28 (RoadBaseAI+TrafficLightState) IL_04EE: ldloca.s 29 (System.Boolean) IL_04F0: ldloca.s 30 (System.Boolean) IL_04F2: call static System.Void RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData, System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState& pedestrianLightState, System.Boolean& vehicles, System.Boolean& pedestrians) IL_04F7: ldloc.s 29 (System.Boolean) IL_04F9: brtrue => Label27 IL_04FE: ldloc.s 25 (System.UInt32) IL_0500: ldc.i4 196 IL_0505: blt.un => Label28 IL_050A: ldc.i4.1 IL_050B: stloc.s 29 (System.Boolean) IL_050D: ldloc.s 11 (System.UInt16) IL_050F: ldloc.0 IL_0510: ldfld Array16`1 NetManager::m_segments IL_0515: ldfld NetSegment[] Array16`1::m_buffer IL_051A: ldarga.s 7 IL_051C: ldfld System.UInt16 Position::m_segment IL_0521: ldelema NetSegment IL_0526: ldloc.s 23 (System.UInt32) IL_0528: ldloc.s 24 (System.UInt32) IL_052A: sub IL_052B: ldloc.s 27 (RoadBaseAI+TrafficLightState) IL_052D: ldloc.s 28 (RoadBaseAI+TrafficLightState) IL_052F: ldloc.s 29 (System.Boolean) IL_0531: ldloc.s 30 (System.Boolean) IL_0533: call static System.Void RoadBaseAI::SetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData, System.UInt32 frame, TrafficLightState vehicleLightState, TrafficLightState pedestrianLightState, System.Boolean vehicles, System.Boolean pedestrians) IL_0538: Label27 IL_0538: Label28 IL_0538: ldarg.2 IL_0539: ldfld Flags Vehicle::m_flags IL_053E: ldc.i4 128 IL_0543: and IL_0544: brfalse => Label29 IL_0549: ldloc.s 26 (NetInfo) IL_054B: ldfld ItemClass NetInfo::m_class IL_0550: ldfld Service ItemClass::m_service IL_0555: ldc.i4.s 9 IL_0557: beq => Label30 IL_055C: Label29 IL_055C: ldloc.s 27 (RoadBaseAI+TrafficLightState) IL_055E: ldc.i4.1 IL_055F: beq => Label31 IL_0564: ldloc.s 27 (RoadBaseAI+TrafficLightState) IL_0566: ldc.i4.3 IL_0567: beq => Label32 IL_056C: ldloc.s 27 (RoadBaseAI+TrafficLightState) IL_056E: ldc.i4.2 IL_056F: beq => Label33 IL_0574: br => Label34 IL_0579: Label31 IL_0579: ldloc.s 25 (System.UInt32) IL_057B: ldc.i4.s 60 IL_057D: bge.un => Label35 IL_0582: ldarg.s 13 IL_0584: ldc.r4 0 IL_0589: stind.r4 IL_058A: br => Label56 IL_058F: Label35 IL_058F: br => Label36 IL_0594: Label32 IL_0594: ldloc.s 25 (System.UInt32) IL_0596: ldc.i4.s 30 IL_0598: blt.un => Label37 IL_059D: ldarg.s 13 IL_059F: ldc.r4 0 IL_05A4: stind.r4 IL_05A5: br => Label57 IL_05AA: Label37 IL_05AA: br => Label38 IL_05AF: Label33 IL_05AF: ldarg.s 13 IL_05B1: ldc.r4 0 IL_05B6: stind.r4 IL_05B7: br => Label58 IL_05BC: Label24 IL_05BC: Label26 IL_05BC: Label30 IL_05BC: Label34 IL_05BC: Label36 IL_05BC: Label38 IL_05BC: ldloc.s 17 (System.Boolean) IL_05BE: brfalse => Label39 IL_05C3: ldarga.s 7 IL_05C5: ldfld System.UInt16 Position::m_segment IL_05CA: ldarga.s 4 IL_05CC: ldfld System.UInt16 Position::m_segment IL_05D1: beq => Label40 IL_05D6: ldloc.s 11 (System.UInt16) IL_05D8: ldloc.0 IL_05D9: ldfld Array16`1 NetManager::m_segments IL_05DE: ldfld NetSegment[] Array16`1::m_buffer IL_05E3: ldarga.s 7 IL_05E5: ldfld System.UInt16 Position::m_segment IL_05EA: ldelema NetSegment IL_05EF: ldloc.s 23 (System.UInt32) IL_05F1: ldloc.s 24 (System.UInt32) IL_05F3: sub IL_05F4: ldloca.s 31 (RoadBaseAI+TrafficLightState) IL_05F6: ldloca.s 32 (RoadBaseAI+TrafficLightState) IL_05F8: ldloca.s 33 (System.Boolean) IL_05FA: ldloca.s 34 (System.Boolean) IL_05FC: call static System.Void RoadBaseAI::GetBollardState(System.UInt16 nodeID, NetSegment& segmentData, System.UInt32 frame, TrafficLightState& enterState, TrafficLightState& exitState, System.Boolean& enter, System.Boolean& exit) IL_0601: ldarg.2 IL_0602: ldfld Flags Vehicle::m_flags IL_0607: ldc.i4 128 IL_060C: and IL_060D: brtrue => Label41 IL_0612: ldloc.s 14 (System.Boolean) IL_0614: brtrue => Label42 IL_0619: ldloca.s 2 (Vehicle+Frame) IL_061B: ldfld UnityEngine.Vector3 Frame::m_velocity IL_0620: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero() IL_0625: call static System.Boolean UnityEngine.Vector3::op_Equality(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs) IL_062A: brfalse => Label43 IL_062F: ldloc.s 5 (System.Single) IL_0631: ldc.r4 30 IL_0636: bgt.un => Label44 IL_063B: Label41 IL_063B: ldloc.s 34 (System.Boolean) IL_063D: brtrue => Label45 IL_0642: ldc.i4.1 IL_0643: stloc.s 34 (System.Boolean) IL_0645: ldloc.s 11 (System.UInt16) IL_0647: ldloc.0 IL_0648: ldfld Array16`1 NetManager::m_segments IL_064D: ldfld NetSegment[] Array16`1::m_buffer IL_0652: ldarga.s 7 IL_0654: ldfld System.UInt16 Position::m_segment IL_0659: ldelema NetSegment IL_065E: ldloc.s 23 (System.UInt32) IL_0660: ldloc.s 24 (System.UInt32) IL_0662: sub IL_0663: ldloc.s 31 (RoadBaseAI+TrafficLightState) IL_0665: ldloc.s 32 (RoadBaseAI+TrafficLightState) IL_0667: ldloc.s 33 (System.Boolean) IL_0669: ldloc.s 34 (System.Boolean) IL_066B: call static System.Void RoadBaseAI::SetBollardState(System.UInt16 nodeID, NetSegment& segmentData, System.UInt32 frame, TrafficLightState enterState, TrafficLightState exitState, System.Boolean enter, System.Boolean exit) IL_0670: Label42 IL_0670: Label43 IL_0670: Label44 IL_0670: Label45 IL_0670: ldloc.s 32 (RoadBaseAI+TrafficLightState) IL_0672: ldc.i4.1 IL_0673: beq => Label46 IL_0678: ldloc.s 32 (RoadBaseAI+TrafficLightState) IL_067A: ldc.i4.3 IL_067B: beq => Label47 IL_0680: ldloc.s 32 (RoadBaseAI+TrafficLightState) IL_0682: ldc.i4.2 IL_0683: beq => Label48 IL_0688: br => Label49 IL_068D: Label46 IL_068D: ldloc.s 25 (System.UInt32) IL_068F: ldc.i4.s 60 IL_0691: bge.un => Label50 IL_0696: ldarg.s 13 IL_0698: ldc.r4 0 IL_069D: stind.r4 IL_069E: br => Label59 IL_06A3: Label50 IL_06A3: br => Label51 IL_06A8: Label47 IL_06A8: ldloc.s 25 (System.UInt32) IL_06AA: ldc.i4.s 30 IL_06AC: blt.un => Label52 IL_06B1: ldarg.s 13 IL_06B3: ldc.r4 0 IL_06B8: stind.r4 IL_06B9: br => Label60 IL_06BE: Label52 IL_06BE: br => Label53 IL_06C3: Label48 IL_06C3: ldarg.s 13 IL_06C5: ldc.r4 0 IL_06CA: stind.r4 IL_06CB: br => Label61 IL_06D0: Label3 IL_06D0: Label8 IL_06D0: Label39 IL_06D0: Label40 IL_06D0: Label49 IL_06D0: Label51 IL_06D0: Label53 IL_06D0: ldarg.0 IL_06D1: ldarg.1 IL_06D2: ldarg.2 IL_06D3: ldarg.s 4 IL_06D5: ldarg.s 5 IL_06D7: ldarg.s 6 IL_06D9: ldarg.s 11 IL_06DB: ldarg.s 12 IL_06DD: ldarg.s 13 IL_06DF: callvirt virtual System.Void VehicleAI::CalculateSegmentPosition(System.UInt16 vehicleID, Vehicle& vehicleData, Position position, System.UInt32 laneID, System.Byte offset, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) IL_06E4: // end original IL_06E4: Label54 IL_06E4: Label55 IL_06E4: Label56 IL_06E4: Label57 IL_06E4: Label58 IL_06E4: Label59 IL_06E4: Label60 IL_06E4: Label61 IL_06E4: Label0 IL_06E4: ret DONE ### Patch: virtual System.Void CarAI::SimulationStep(System.UInt16 vehicleID, Vehicle& data, UnityEngine.Vector3 physicsLodRefPos) ### Replacement: static System.Void CarAI::CarAI.SimulationStep_Patch1(CarAI this, System.UInt16 vehicleID, Vehicle& data, UnityEngine.Vector3 physicsLodRefPos) IL_0000: Local var 0: PathManager IL_0000: Local var 1: System.Byte IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: System.Int32 IL_0000: Local var 4: VehicleManager IL_0000: Local var 5: System.UInt16 IL_0000: Local var 6: System.Int32 IL_0000: Local var 7: System.UInt16 IL_0000: Local var 8: VehicleInfo IL_0000: Local var 9: System.Int32 IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 11 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 11 (System.Boolean) IL_000E: ldloc 11 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg.0 IL_0018: ldarg 1 IL_001C: ldarg 2 IL_0020: ldarg 3 IL_0024: call static System.Boolean TrafficManager.Patch._VehicleAI._CarAI.SimulationStepPatch::Prefix(CarAI __instance, System.UInt16 vehicleID, Vehicle& data, UnityEngine.Vector3 physicsLodRefPos) IL_0029: stloc 11 (System.Boolean) IL_002D: Label1 IL_002D: nop IL_002E: ldloc 11 (System.Boolean) IL_0032: brfalse => Label0 IL_0037: // start original IL_0037: ldarg.2 IL_0038: ldfld Flags Vehicle::m_flags IL_003D: ldc.i4 256 IL_0042: and IL_0043: brfalse => Label2 IL_0048: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_004D: stloc.0 IL_004E: ldloc.0 IL_004F: ldfld Array32`1 PathManager::m_pathUnits IL_0054: ldfld PathUnit[] Array32`1::m_buffer IL_0059: ldarg.2 IL_005A: ldfld System.UInt32 Vehicle::m_path IL_005F: conv.u IL_0060: ldelema PathUnit IL_0065: ldfld System.Byte PathUnit::m_pathFindFlags IL_006A: stloc.1 IL_006B: ldloc.1 IL_006C: ldc.i4.4 IL_006D: and IL_006E: brfalse => Label3 IL_0073: ldarg.2 IL_0074: ldc.i4 255 IL_0079: stfld System.Byte Vehicle::m_pathPositionIndex IL_007E: ldarg.2 IL_007F: dup IL_0080: ldfld Flags Vehicle::m_flags IL_0085: ldc.i4 -257 IL_008A: and IL_008B: stfld Flags Vehicle::m_flags IL_0090: ldarg.2 IL_0091: dup IL_0092: ldfld Flags Vehicle::m_flags IL_0097: ldc.i4 -2049 IL_009C: and IL_009D: stfld Flags Vehicle::m_flags IL_00A2: ldarg.0 IL_00A3: ldarg.1 IL_00A4: ldarg.2 IL_00A5: callvirt virtual System.Void CarAI::PathfindSuccess(System.UInt16 vehicleID, Vehicle& data) IL_00AA: ldarg.0 IL_00AB: ldarg.1 IL_00AC: ldarg.2 IL_00AD: callvirt virtual System.Boolean VehicleAI::TrySpawn(System.UInt16 vehicleID, Vehicle& vehicleData) IL_00B2: pop IL_00B3: br => Label4 IL_00B8: Label3 IL_00B8: ldloc.1 IL_00B9: ldc.i4.8 IL_00BA: and IL_00BB: brfalse => Label5 IL_00C0: ldarg.2 IL_00C1: dup IL_00C2: ldfld Flags Vehicle::m_flags IL_00C7: ldc.i4 -257 IL_00CC: and IL_00CD: stfld Flags Vehicle::m_flags IL_00D2: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_00D7: ldarg.2 IL_00D8: ldfld System.UInt32 Vehicle::m_path IL_00DD: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit) IL_00E2: ldarg.2 IL_00E3: ldc.i4.0 IL_00E4: stfld System.UInt32 Vehicle::m_path IL_00E9: ldarg.0 IL_00EA: ldarg.1 IL_00EB: ldarg.2 IL_00EC: callvirt virtual System.Void CarAI::PathfindFailure(System.UInt16 vehicleID, Vehicle& data) IL_00F1: br => Label24 IL_00F6: Label4 IL_00F6: Label5 IL_00F6: br => Label6 IL_00FB: Label2 IL_00FB: ldarg.2 IL_00FC: ldfld Flags Vehicle::m_flags IL_0101: ldc.i4 65536 IL_0106: and IL_0107: brfalse => Label7 IL_010C: ldarg.0 IL_010D: ldarg.1 IL_010E: ldarg.2 IL_010F: callvirt virtual System.Boolean VehicleAI::TrySpawn(System.UInt16 vehicleID, Vehicle& vehicleData) IL_0114: pop IL_0115: Label6 IL_0115: Label7 IL_0115: ldarg.2 IL_0116: call UnityEngine.Vector3 Vehicle::GetLastFramePosition() IL_011B: stloc.2 IL_011C: ldarg.3 IL_011D: ldloc.2 IL_011E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0123: call static System.Single UnityEngine.Vector3::SqrMagnitude(UnityEngine.Vector3 a) IL_0128: ldc.r4 1210000 IL_012D: blt.un => Label8 IL_0132: ldc.i4.2 IL_0133: stloc.3 IL_0134: br => Label9 IL_0139: Label8 IL_0139: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_013E: ldflda ViewData SimulationManager::m_simulationView IL_0143: ldfld UnityEngine.Vector3 ViewData::m_position IL_0148: ldloc.2 IL_0149: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_014E: call static System.Single UnityEngine.Vector3::SqrMagnitude(UnityEngine.Vector3 a) IL_0153: ldc.r4 250000 IL_0158: blt.un => Label10 IL_015D: ldc.i4.1 IL_015E: stloc.3 IL_015F: br => Label11 IL_0164: Label10 IL_0164: ldc.i4.0 IL_0165: stloc.3 IL_0166: Label9 IL_0166: Label11 IL_0166: ldarg.0 IL_0167: ldarg.1 IL_0168: ldarg.2 IL_0169: ldarg.1 IL_016A: ldarg.2 IL_016B: ldloc.3 IL_016C: callvirt virtual System.Void VehicleAI::SimulationStep(System.UInt16 vehicleID, Vehicle& vehicleData, System.UInt16 leaderID, Vehicle& leaderData, System.Int32 lodPhysics) IL_0171: ldarg.2 IL_0172: ldfld System.UInt16 Vehicle::m_leadingVehicle IL_0177: brtrue => Label12 IL_017C: ldarg.2 IL_017D: ldfld System.UInt16 Vehicle::m_trailingVehicle IL_0182: brfalse => Label13 IL_0187: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_018C: stloc.s 4 (VehicleManager) IL_018E: ldarg.2 IL_018F: ldfld System.UInt16 Vehicle::m_trailingVehicle IL_0194: stloc.s 5 (System.UInt16) IL_0196: ldc.i4.0 IL_0197: stloc.s 6 (System.Int32) IL_0199: br => Label14 IL_019E: Label17 IL_019E: ldloc.s 4 (VehicleManager) IL_01A0: ldfld Array16`1 VehicleManager::m_vehicles IL_01A5: ldfld Vehicle[] Array16`1::m_buffer IL_01AA: ldloc.s 5 (System.UInt16) IL_01AC: ldelema Vehicle IL_01B1: ldfld System.UInt16 Vehicle::m_trailingVehicle IL_01B6: stloc.s 7 (System.UInt16) IL_01B8: ldloc.s 4 (VehicleManager) IL_01BA: ldfld Array16`1 VehicleManager::m_vehicles IL_01BF: ldfld Vehicle[] Array16`1::m_buffer IL_01C4: ldloc.s 5 (System.UInt16) IL_01C6: ldelema Vehicle IL_01CB: call VehicleInfo Vehicle::get_Info() IL_01D0: stloc.s 8 (VehicleInfo) IL_01D2: ldloc.s 8 (VehicleInfo) IL_01D4: ldfld VehicleAI VehicleInfo::m_vehicleAI IL_01D9: ldloc.s 5 (System.UInt16) IL_01DB: ldloc.s 4 (VehicleManager) IL_01DD: ldfld Array16`1 VehicleManager::m_vehicles IL_01E2: ldfld Vehicle[] Array16`1::m_buffer IL_01E7: ldloc.s 5 (System.UInt16) IL_01E9: ldelema Vehicle IL_01EE: ldarg.1 IL_01EF: ldarg.2 IL_01F0: ldloc.3 IL_01F1: callvirt virtual System.Void VehicleAI::SimulationStep(System.UInt16 vehicleID, Vehicle& vehicleData, System.UInt16 leaderID, Vehicle& leaderData, System.Int32 lodPhysics) IL_01F6: ldloc.s 7 (System.UInt16) IL_01F8: stloc.s 5 (System.UInt16) IL_01FA: ldloc.s 6 (System.Int32) IL_01FC: ldc.i4.1 IL_01FD: add IL_01FE: dup IL_01FF: stloc.s 6 (System.Int32) IL_0201: ldc.i4 16384 IL_0206: ble => Label15 IL_020B: ldc.i4.1 IL_020C: ldstr "Invalid list detected!\n" IL_0211: call static System.String System.Environment::get_StackTrace() IL_0216: call static System.String System.String::Concat(System.String str0, System.String str1) IL_021B: call static System.Void ColossalFramework.CODebugBase`1::Error(LogChannel ll, System.String msg) IL_0220: br => Label16 IL_0225: Label14 IL_0225: Label15 IL_0225: ldloc.s 5 (System.UInt16) IL_0227: brtrue => Label17 IL_022C: Label12 IL_022C: Label13 IL_022C: Label16 IL_022C: ldarg.0 IL_022D: ldfld VehicleInfo VehicleAI::m_info IL_0232: ldfld ItemClass VehicleInfo::m_class IL_0237: ldfld Service ItemClass::m_service IL_023C: call static System.Int32 ItemClass::GetPrivateServiceIndex(Service service) IL_0241: stloc.s 9 (System.Int32) IL_0243: ldloc.s 9 (System.Int32) IL_0245: ldc.i4.m1 IL_0246: beq => Label18 IL_024B: ldc.i4.s 100 IL_024D: br => Label19 IL_0252: Label18 IL_0252: ldc.i4 150 IL_0257: Label19 IL_0257: stloc.s 10 (System.Int32) IL_0259: ldarg.2 IL_025A: ldfld Flags Vehicle::m_flags IL_025F: ldc.i4 65796 IL_0264: and IL_0265: brtrue => Label20 IL_026A: ldarg.2 IL_026B: ldfld System.UInt16 Vehicle::m_cargoParent IL_0270: brtrue => Label21 IL_0275: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_027A: ldarg.1 IL_027B: callvirt System.Void VehicleManager::ReleaseVehicle(System.UInt16 vehicle) IL_0280: br => Label22 IL_0285: Label20 IL_0285: Label21 IL_0285: ldarg.2 IL_0286: ldfld System.Byte Vehicle::m_blockCounter IL_028B: ldloc.s 10 (System.Int32) IL_028D: bne.un => Label23 IL_0292: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_0297: ldarg.1 IL_0298: callvirt System.Void VehicleManager::ReleaseVehicle(System.UInt16 vehicle) IL_029D: // end original IL_029D: Label22 IL_029D: Label23 IL_029D: Label24 IL_029D: Label0 IL_029D: ret DONE ### Patch: virtual System.Boolean CarAI::StartPathFind(System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays, System.Boolean undergroundTarget) ### Replacement: static System.Boolean CarAI::CarAI.StartPathFind_Patch1(CarAI this, System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays, System.Boolean undergroundTarget) IL_0000: Local var 0: VehicleInfo IL_0000: Local var 1: PathUnit/Position IL_0000: Local var 2: PathUnit/Position IL_0000: Local var 3: PathUnit/Position IL_0000: Local var 4: PathUnit/Position IL_0000: Local var 5: System.Single IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Single IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Boolean IL_0000: Local var 10: System.UInt32 IL_0000: Local var 11: PathUnit/Position IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 12 (System.Boolean) IL_0009: ldc.i4 0 IL_000E: stloc 13 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 13 (System.Boolean) IL_0017: ldloc 13 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldarg 1 IL_0024: ldarg 2 IL_0028: ldarg 3 IL_002C: ldarg 4 IL_0030: ldarg 5 IL_0034: ldarg 6 IL_0038: ldarg 7 IL_003C: call static System.Void TrafficManager.Patch._VehicleAI._CarAI.StartPathFindPatch::Prefix(System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays, System.Boolean undergroundTarget) IL_0041: Label1 IL_0041: nop IL_0042: ldloc 13 (System.Boolean) IL_0046: brfalse => Label0 IL_004B: // start original IL_004B: ldarg.0 IL_004C: ldfld VehicleInfo VehicleAI::m_info IL_0051: stloc.0 IL_0052: ldarg.2 IL_0053: ldfld Flags Vehicle::m_flags IL_0058: ldc.i4 805306368 IL_005D: and IL_005E: ldc.i4.0 IL_005F: ceq IL_0061: ldc.i4.0 IL_0062: ceq IL_0064: stloc.s 9 (System.Boolean) IL_0066: ldarg.3 IL_0067: ldc.i4.s 9 IL_0069: ldc.i4.s 33 IL_006B: ldloc.0 IL_006C: ldfld VehicleType VehicleInfo::m_vehicleType IL_0071: ldloc.0 IL_0072: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_0077: ldloc.s 9 (System.Boolean) IL_0079: ldc.i4.0 IL_007A: ldc.r4 32 IL_007F: ldloca.s 1 (PathUnit+Position) IL_0081: ldloca.s 2 (PathUnit+Position) IL_0083: ldloca.s 5 (System.Single) IL_0085: ldloca.s 6 (System.Single) IL_0087: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_008C: brfalse => Label2 IL_0091: ldarg.s 4 IL_0093: ldc.i4.s 9 IL_0095: ldc.i4.s 33 IL_0097: ldloc.0 IL_0098: ldfld VehicleType VehicleInfo::m_vehicleType IL_009D: ldloc.0 IL_009E: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_00A3: ldarg.s 7 IL_00A5: ldc.i4.0 IL_00A6: ldc.r4 32 IL_00AB: ldloca.s 3 (PathUnit+Position) IL_00AD: ldloca.s 4 (PathUnit+Position) IL_00AF: ldloca.s 7 (System.Single) IL_00B1: ldloca.s 8 (System.Single) IL_00B3: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_00B8: brfalse => Label3 IL_00BD: ldarg.s 5 IL_00BF: brfalse => Label4 IL_00C4: ldloc.s 5 (System.Single) IL_00C6: ldc.r4 10 IL_00CB: bge.un => Label5 IL_00D0: Label4 IL_00D0: ldloca.s 2 (PathUnit+Position) IL_00D2: initobj PathUnit+Position IL_00D8: Label5 IL_00D8: ldarg.s 6 IL_00DA: brfalse => Label6 IL_00DF: ldloc.s 7 (System.Single) IL_00E1: ldc.r4 10 IL_00E6: bge.un => Label7 IL_00EB: Label6 IL_00EB: ldloca.s 4 (PathUnit+Position) IL_00ED: initobj PathUnit+Position IL_00F3: Label7 IL_00F3: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_00F8: ldloca.s 10 (System.UInt32) IL_00FA: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_00FF: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0104: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0109: ldfld System.UInt32 SimulationManager::m_currentBuildIndex IL_010E: ldloc.1 IL_010F: ldloc.2 IL_0110: ldloc.3 IL_0111: ldloc.s 4 (PathUnit+Position) IL_0113: ldloca.s 11 (PathUnit+Position) IL_0115: initobj PathUnit+Position IL_011B: ldloc.s 11 (PathUnit+Position) IL_011D: ldc.i4.1 IL_011E: ldloc.0 IL_011F: ldfld VehicleType VehicleInfo::m_vehicleType IL_0124: ldloc.0 IL_0125: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_012A: ldc.r4 20000 IL_012F: ldarg.0 IL_0130: callvirt virtual System.Boolean CarAI::IsHeavyVehicle() IL_0135: ldarg.0 IL_0136: ldarg.1 IL_0137: ldarg.2 IL_0138: callvirt virtual System.Boolean VehicleAI::IgnoreBlocked(System.UInt16 vehicleID, Vehicle& vehicleData) IL_013D: ldc.i4.0 IL_013E: ldc.i4.0 IL_013F: ldc.i4.0 IL_0140: ldc.i4.0 IL_0141: ldarg.0 IL_0142: callvirt virtual System.Boolean CarAI::CombustionEngine() IL_0147: callvirt System.Boolean PathManager::CreatePath(System.UInt32& unit, ColossalFramework.Math.Randomizer& randomizer, System.UInt32 buildIndex, Position startPosA, Position startPosB, Position endPosA, Position endPosB, Position vehiclePosition, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, System.Single maxLength, System.Boolean isHeavyVehicle, System.Boolean ignoreBlocked, System.Boolean stablePath, System.Boolean skipQueue, System.Boolean randomParking, System.Boolean ignoreFlooded, System.Boolean combustionEngine) IL_014C: brfalse => Label8 IL_0151: ldarg.2 IL_0152: ldfld System.UInt32 Vehicle::m_path IL_0157: brfalse => Label9 IL_015C: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_0161: ldarg.2 IL_0162: ldfld System.UInt32 Vehicle::m_path IL_0167: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit) IL_016C: Label9 IL_016C: ldarg.2 IL_016D: ldloc.s 10 (System.UInt32) IL_016F: stfld System.UInt32 Vehicle::m_path IL_0174: ldarg.2 IL_0175: dup IL_0176: ldfld Flags Vehicle::m_flags IL_017B: ldc.i4 256 IL_0180: or IL_0181: stfld Flags Vehicle::m_flags IL_0186: ldc.i4.1 IL_0187: br => Label10 IL_018C: Label2 IL_018C: Label3 IL_018C: Label8 IL_018C: ldc.i4.0 IL_018D: // end original IL_018D: Label10 IL_018D: stloc 12 (System.Boolean) IL_0191: Label0 IL_0191: ldloc 12 (System.Boolean) IL_0195: ret DONE ### Patch: virtual System.Void BusAI::CalculateSegmentPosition(System.UInt16 vehicleID, Vehicle& vehicleData, Position position, System.UInt32 laneID, System.Byte offset, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) ### Replacement: static System.Void BusAI::BusAI.CalculateSegmentPosition_Patch0(BusAI this, System.UInt16 vehicleID, Vehicle& vehicleData, Position position, System.UInt32 laneID, System.Byte offset, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) IL_0000: Local var 0: NetManager IL_0000: Local var 1: NetInfo IL_0000: Local var 2: NetInfo/Lane IL_0000: Local var 3: System.Single IL_0000: // start original IL_0000: ldarg.2 IL_0001: ldfld Flags Vehicle::m_flags IL_0006: ldc.i4 3072 IL_000B: and IL_000C: brfalse => Label0 IL_0011: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0016: stloc.0 IL_0017: ldloc.0 IL_0018: ldfld Array16`1 NetManager::m_segments IL_001D: ldfld NetSegment[] Array16`1::m_buffer IL_0022: ldarga.s 3 IL_0024: ldfld System.UInt16 Position::m_segment IL_0029: ldelema NetSegment IL_002E: call NetInfo NetSegment::get_Info() IL_0033: stloc.1 IL_0034: ldloc.1 IL_0035: ldfld Lane[] NetInfo::m_lanes IL_003A: brfalse => Label1 IL_003F: ldloc.1 IL_0040: ldfld Lane[] NetInfo::m_lanes IL_0045: ldlen IL_0046: conv.i4 IL_0047: ldarga.s 3 IL_0049: ldfld System.Byte Position::m_lane IL_004E: ble => Label2 IL_0053: ldloc.1 IL_0054: ldfld Lane[] NetInfo::m_lanes IL_0059: ldarga.s 3 IL_005B: ldfld System.Byte Position::m_lane IL_0060: ldelem.ref IL_0061: stloc.2 IL_0062: ldloc.2 IL_0063: ldfld System.Single Lane::m_stopOffset IL_0068: stloc.3 IL_0069: ldloc.0 IL_006A: ldfld Array16`1 NetManager::m_segments IL_006F: ldfld NetSegment[] Array16`1::m_buffer IL_0074: ldarga.s 3 IL_0076: ldfld System.UInt16 Position::m_segment IL_007B: ldelema NetSegment IL_0080: ldfld Flags NetSegment::m_flags IL_0085: ldc.i4.s 16 IL_0087: and IL_0088: brfalse => Label3 IL_008D: ldloc.3 IL_008E: neg IL_008F: stloc.3 IL_0090: Label3 IL_0090: ldloc.0 IL_0091: ldfld Array32`1 NetManager::m_lanes IL_0096: ldfld NetLane[] Array32`1::m_buffer IL_009B: ldarg.s 4 IL_009D: conv.u IL_009E: ldelema NetLane IL_00A3: ldarg.s 5 IL_00A5: conv.r4 IL_00A6: ldc.r4 0.003921569 IL_00AB: mul IL_00AC: ldloc.3 IL_00AD: ldarg.s 6 IL_00AF: ldarg.s 7 IL_00B1: call System.Void NetLane::CalculateStopPositionAndDirection(System.Single laneOffset, System.Single stopOffset, UnityEngine.Vector3& position, UnityEngine.Vector3& direction) IL_00B6: ldarg.0 IL_00B7: ldarg.1 IL_00B8: ldarg.2 IL_00B9: ldarg.3 IL_00BA: ldarg.s 4 IL_00BC: ldloc.1 IL_00BD: ldarg.s 8 IL_00BF: call static System.Void TrafficManager.Patch.PatchCommons::GetCustomSpeed(VehicleAI ai, System.UInt16 vehicleId, Vehicle& data, Position position, System.UInt32 laneID, NetInfo info, System.Single& maxSpeed) IL_00C4: br => Label4 IL_00C9: Label0 IL_00C9: Label1 IL_00C9: Label2 IL_00C9: ldarg.0 IL_00CA: ldarg.1 IL_00CB: ldarg.2 IL_00CC: ldarg.3 IL_00CD: ldarg.s 4 IL_00CF: ldarg.s 5 IL_00D1: ldarg.s 6 IL_00D3: ldarg.s 7 IL_00D5: ldarg.s 8 IL_00D7: call virtual System.Void CarAI::CalculateSegmentPosition(System.UInt16 vehicleID, Vehicle& vehicleData, Position position, System.UInt32 laneID, System.Byte offset, UnityEngine.Vector3& pos, UnityEngine.Vector3& dir, System.Single& maxSpeed) IL_00DC: // end original IL_00DC: Label4 IL_00DC: ret DONE ### Patch: virtual System.Boolean BusAI::StartPathFind(System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays, System.Boolean undergroundTarget) ### Replacement: static System.Boolean BusAI::BusAI.StartPathFind_Patch1(BusAI this, System.UInt16 vehicleID, Vehicle& vehicleData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, System.Boolean startBothWays, System.Boolean endBothWays, System.Boolean undergroundTarget) IL_0000: Local var 0: VehicleInfo IL_0000: Local var 1: PathUnit/Position IL_0000: Local var 2: PathUnit/Position IL_0000: Local var 3: PathUnit/Position IL_0000: Local var 4: PathUnit/Position IL_0000: Local var 5: System.Single IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Single IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Boolean IL_0000: Local var 10: System.UInt32 IL_0000: Local var 11: PathUnit/Position IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 12 (System.Boolean) IL_0009: ldc.i4 0 IL_000E: stloc 13 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 13 (System.Boolean) IL_0017: ldloc 13 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldarg 1 IL_0024: ldarg 2 IL_0028: call static System.Void TrafficManager.Patch._VehicleAI._BusAI.StartPathFindPatch::Prefix(System.UInt16 vehicleID, Vehicle& vehicleData) IL_002D: Label1 IL_002D: nop IL_002E: ldloc 13 (System.Boolean) IL_0032: brfalse => Label0 IL_0037: // start original IL_0037: ldarg.0 IL_0038: ldfld VehicleInfo VehicleAI::m_info IL_003D: stloc.0 IL_003E: ldarg.2 IL_003F: ldfld Flags Vehicle::m_flags IL_0044: ldc.i4 805306368 IL_0049: and IL_004A: ldc.i4.0 IL_004B: ceq IL_004D: ldc.i4.0 IL_004E: ceq IL_0050: stloc.s 9 (System.Boolean) IL_0052: ldarg.3 IL_0053: ldc.i4.s 9 IL_0055: ldc.i4.s 33 IL_0057: ldloc.0 IL_0058: ldfld VehicleType VehicleInfo::m_vehicleType IL_005D: ldloc.0 IL_005E: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_0063: ldloc.s 9 (System.Boolean) IL_0065: ldc.i4.0 IL_0066: ldc.r4 32 IL_006B: ldloca.s 1 (PathUnit+Position) IL_006D: ldloca.s 2 (PathUnit+Position) IL_006F: ldloca.s 5 (System.Single) IL_0071: ldloca.s 6 (System.Single) IL_0073: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_0078: brfalse => Label2 IL_007D: ldarg.s 4 IL_007F: ldc.i4.s 9 IL_0081: ldc.i4.s 33 IL_0083: ldloc.0 IL_0084: ldfld VehicleType VehicleInfo::m_vehicleType IL_0089: ldloc.0 IL_008A: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_008F: ldarg.s 7 IL_0091: ldc.i4.0 IL_0092: ldc.r4 32 IL_0097: ldloca.s 3 (PathUnit+Position) IL_0099: ldloca.s 4 (PathUnit+Position) IL_009B: ldloca.s 7 (System.Single) IL_009D: ldloca.s 8 (System.Single) IL_009F: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPosA, Position& pathPosB, System.Single& distanceSqrA, System.Single& distanceSqrB) IL_00A4: brfalse => Label3 IL_00A9: ldarg.s 5 IL_00AB: brfalse => Label4 IL_00B0: ldloc.s 5 (System.Single) IL_00B2: ldc.r4 10 IL_00B7: bge.un => Label5 IL_00BC: Label4 IL_00BC: ldloca.s 2 (PathUnit+Position) IL_00BE: initobj PathUnit+Position IL_00C4: Label5 IL_00C4: ldarg.s 6 IL_00C6: brfalse => Label6 IL_00CB: ldloc.s 7 (System.Single) IL_00CD: ldc.r4 10 IL_00D2: bge.un => Label7 IL_00D7: Label6 IL_00D7: ldloca.s 4 (PathUnit+Position) IL_00D9: initobj PathUnit+Position IL_00DF: Label7 IL_00DF: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_00E4: ldloca.s 10 (System.UInt32) IL_00E6: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_00EB: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_00F0: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_00F5: ldfld System.UInt32 SimulationManager::m_currentBuildIndex IL_00FA: ldloc.1 IL_00FB: ldloc.2 IL_00FC: ldloc.3 IL_00FD: ldloc.s 4 (PathUnit+Position) IL_00FF: ldloca.s 11 (PathUnit+Position) IL_0101: initobj PathUnit+Position IL_0107: ldloc.s 11 (PathUnit+Position) IL_0109: ldc.i4.s 33 IL_010B: ldloc.0 IL_010C: ldfld VehicleType VehicleInfo::m_vehicleType IL_0111: ldloc.0 IL_0112: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_0117: ldc.r4 20000 IL_011C: ldarg.0 IL_011D: callvirt virtual System.Boolean CarAI::IsHeavyVehicle() IL_0122: ldarg.0 IL_0123: ldarg.1 IL_0124: ldarg.2 IL_0125: callvirt virtual System.Boolean VehicleAI::IgnoreBlocked(System.UInt16 vehicleID, Vehicle& vehicleData) IL_012A: ldc.i4.0 IL_012B: ldc.i4.0 IL_012C: ldc.i4.0 IL_012D: ldc.i4.0 IL_012E: ldarg.0 IL_012F: callvirt virtual System.Boolean CarAI::CombustionEngine() IL_0134: callvirt System.Boolean PathManager::CreatePath(System.UInt32& unit, ColossalFramework.Math.Randomizer& randomizer, System.UInt32 buildIndex, Position startPosA, Position startPosB, Position endPosA, Position endPosB, Position vehiclePosition, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, System.Single maxLength, System.Boolean isHeavyVehicle, System.Boolean ignoreBlocked, System.Boolean stablePath, System.Boolean skipQueue, System.Boolean randomParking, System.Boolean ignoreFlooded, System.Boolean combustionEngine) IL_0139: brfalse => Label8 IL_013E: ldarg.2 IL_013F: ldfld System.UInt32 Vehicle::m_path IL_0144: brfalse => Label9 IL_0149: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_014E: ldarg.2 IL_014F: ldfld System.UInt32 Vehicle::m_path IL_0154: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit) IL_0159: Label9 IL_0159: ldarg.2 IL_015A: ldloc.s 10 (System.UInt32) IL_015C: stfld System.UInt32 Vehicle::m_path IL_0161: ldarg.2 IL_0162: dup IL_0163: ldfld Flags Vehicle::m_flags IL_0168: ldc.i4 256 IL_016D: or IL_016E: stfld Flags Vehicle::m_flags IL_0173: ldc.i4.1 IL_0174: br => Label10 IL_0179: Label2 IL_0179: Label3 IL_0179: Label8 IL_0179: ldc.i4.0 IL_017A: // end original IL_017A: Label10 IL_017A: stloc 12 (System.Boolean) IL_017E: Label0 IL_017E: ldloc 12 (System.Boolean) IL_0182: ret DONE ### Patch: static System.Void PedestrianZoneRoadAI::BollardsSimulationStep(System.UInt16 nodeID, NetNode& data, System.Boolean[] vehicleExist) ### Replacement: static System.Void PedestrianZoneRoadAI::PedestrianZoneRoadAI.BollardsSimulationStep_Patch1(System.UInt16 nodeID, NetNode& data, System.Boolean[] vehicleExist) IL_0000: Local var 0: NetManager IL_0000: Local var 1: System.UInt32 IL_0000: Local var 2: System.Int32 IL_0000: Local var 3: System.UInt16 IL_0000: Local var 4: System.Boolean IL_0000: Local var 5: System.Boolean IL_0000: Local var 6: RoadBaseAI/TrafficLightState IL_0000: Local var 7: RoadBaseAI/TrafficLightState IL_0000: Local var 8: RoadBaseAI/TrafficLightState IL_0000: Local var 9: RoadBaseAI/TrafficLightState IL_0000: Local var 10: System.Boolean IL_0000: Local var 11: System.Boolean IL_0000: Local var 12: RoadBaseAI/TrafficLightState IL_0000: Local var 13: RoadBaseAI/TrafficLightState IL_0000: Local var 14: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 14 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 14 (System.Boolean) IL_000E: ldloc 14 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 0 IL_001B: ldarg 1 IL_001F: call static System.Boolean TrafficManager.Patch._PedestrianZoneRoadAI.BollardSimulationStepPatch::Prefix(System.UInt16 nodeID, NetNode& data) IL_0024: stloc 14 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 14 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_003D: ldfld System.UInt32 SimulationManager::m_currentFrameIndex IL_0042: stloc.1 IL_0043: ldc.i4.0 IL_0044: stloc.2 IL_0045: br => Label2 IL_004A: Label70 IL_004A: ldarg.1 IL_004B: ldloc.2 IL_004C: call System.UInt16 NetNode::GetSegment(System.Int32 index) IL_0051: stloc.3 IL_0052: ldloc.3 IL_0053: brtrue => Label3 IL_0058: br => Label4 IL_005D: Label3 IL_005D: ldloc.0 IL_005E: ldfld Array16`1 NetManager::m_segments IL_0063: ldfld NetSegment[] Array16`1::m_buffer IL_0068: ldloc.3 IL_0069: ldelema NetSegment IL_006E: call NetInfo NetSegment::get_Info() IL_0073: callvirt System.Boolean NetInfo::IsPedestrianZoneRoad() IL_0078: stloc.s 4 (System.Boolean) IL_007A: ldarg.1 IL_007B: call FlagsLong NetNode::get_flags() IL_0080: ldc.i8 17179869184 IL_0089: and IL_008A: ldc.i4.0 IL_008B: conv.i8 IL_008C: ceq IL_008E: ldc.i4.0 IL_008F: ceq IL_0091: stloc.s 5 (System.Boolean) IL_0093: ldloc.s 4 (System.Boolean) IL_0095: ldloc.s 5 (System.Boolean) IL_0097: beq => Label5 IL_009C: ldarg.0 IL_009D: ldloc.0 IL_009E: ldfld Array16`1 NetManager::m_segments IL_00A3: ldfld NetSegment[] Array16`1::m_buffer IL_00A8: ldloc.3 IL_00A9: ldelema NetSegment IL_00AE: ldloc.1 IL_00AF: ldc.i4 256 IL_00B4: sub IL_00B5: ldloca.s 6 (RoadBaseAI+TrafficLightState) IL_00B7: ldloca.s 7 (RoadBaseAI+TrafficLightState) IL_00B9: call static System.Void RoadBaseAI::GetBollardState(System.UInt16 nodeID, NetSegment& segmentData, System.UInt32 frame, TrafficLightState& enterState, TrafficLightState& exitState) IL_00BE: ldarg.0 IL_00BF: ldloc.0 IL_00C0: ldfld Array16`1 NetManager::m_segments IL_00C5: ldfld NetSegment[] Array16`1::m_buffer IL_00CA: ldloc.3 IL_00CB: ldelema NetSegment IL_00D0: ldloc.1 IL_00D1: ldc.i4 256 IL_00D6: sub IL_00D7: ldloca.s 8 (RoadBaseAI+TrafficLightState) IL_00D9: ldloca.s 9 (RoadBaseAI+TrafficLightState) IL_00DB: ldloca.s 10 (System.Boolean) IL_00DD: ldloca.s 11 (System.Boolean) IL_00DF: call static System.Void RoadBaseAI::GetBollardState(System.UInt16 nodeID, NetSegment& segmentData, System.UInt32 frame, TrafficLightState& enterState, TrafficLightState& exitState, System.Boolean& enter, System.Boolean& exit) IL_00E4: ldloc.s 10 (System.Boolean) IL_00E6: brfalse => Label6 IL_00EB: ldc.i4.0 IL_00EC: br => Label7 IL_00F1: Label6 IL_00F1: ldc.i4.2 IL_00F2: Label7 IL_00F2: stloc.s 8 (RoadBaseAI+TrafficLightState) IL_00F4: ldloc.s 11 (System.Boolean) IL_00F6: brfalse => Label8 IL_00FB: ldc.i4.0 IL_00FC: br => Label9 IL_0101: Label8 IL_0101: ldc.i4.2 IL_0102: Label9 IL_0102: stloc.s 9 (RoadBaseAI+TrafficLightState) IL_0104: ldarg.1 IL_0105: ldfld Flags NetNode::m_flags IL_010A: ldc.i4 8388608 IL_010F: and IL_0110: brfalse => Label10 IL_0115: ldarg.0 IL_0116: ldloc.0 IL_0117: ldfld Array16`1 NetManager::m_segments IL_011C: ldfld NetSegment[] Array16`1::m_buffer IL_0121: ldloc.3 IL_0122: ldelema NetSegment IL_0127: ldloc.1 IL_0128: ldloca.s 12 (RoadBaseAI+TrafficLightState) IL_012A: ldloca.s 13 (RoadBaseAI+TrafficLightState) IL_012C: call static System.Void RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData, System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState& pedestrianLightState) IL_0131: ldloc.s 12 (RoadBaseAI+TrafficLightState) IL_0133: switch => Labels11,12,13,14 IL_0148: br => Label15 IL_014D: Label11 IL_014D: ldarg.2 IL_014E: brfalse => Label16 IL_0153: ldloc.2 IL_0154: ldarg.2 IL_0155: ldlen IL_0156: conv.i4 IL_0157: bge => Label17 IL_015C: ldarg.2 IL_015D: ldloc.2 IL_015E: ldelem.u1 IL_015F: brfalse => Label18 IL_0164: ldc.i4.0 IL_0165: stloc.s 9 (RoadBaseAI+TrafficLightState) IL_0167: Label16 IL_0167: Label17 IL_0167: Label18 IL_0167: br => Label19 IL_016C: Label12 IL_016C: ldarg.2 IL_016D: brfalse => Label20 IL_0172: ldloc.2 IL_0173: ldarg.2 IL_0174: ldlen IL_0175: conv.i4 IL_0176: bge => Label21 IL_017B: ldarg.2 IL_017C: ldloc.2 IL_017D: ldelem.u1 IL_017E: brfalse => Label22 IL_0183: ldloc.s 9 (RoadBaseAI+TrafficLightState) IL_0185: ldc.i4.2 IL_0186: beq => Label23 IL_018B: ldloc.s 9 (RoadBaseAI+TrafficLightState) IL_018D: ldc.i4.3 IL_018E: bne.un => Label24 IL_0193: Label23 IL_0193: ldc.i4.1 IL_0194: stloc.s 9 (RoadBaseAI+TrafficLightState) IL_0196: Label20 IL_0196: Label21 IL_0196: Label22 IL_0196: Label24 IL_0196: br => Label25 IL_019B: Label14 IL_019B: ldloc.s 9 (RoadBaseAI+TrafficLightState) IL_019D: ldc.i4.2 IL_019E: bne.un => Label26 IL_01A3: ldc.i4.3 IL_01A4: stloc.s 9 (RoadBaseAI+TrafficLightState) IL_01A6: Label26 IL_01A6: br => Label27 IL_01AB: Label13 IL_01AB: br => Label28 IL_01B0: Label10 IL_01B0: Label15 IL_01B0: Label19 IL_01B0: Label25 IL_01B0: Label27 IL_01B0: Label28 IL_01B0: ldloc.s 6 (RoadBaseAI+TrafficLightState) IL_01B2: switch => Labels29,30,31,32 IL_01C7: br => Label33 IL_01CC: Label29 IL_01CC: ldloc.s 8 (RoadBaseAI+TrafficLightState) IL_01CE: ldc.i4.2 IL_01CF: bne.un => Label34 IL_01D4: ldc.i4.3 IL_01D5: stloc.s 8 (RoadBaseAI+TrafficLightState) IL_01D7: br => Label35 IL_01DC: Label34 IL_01DC: ldloc.s 8 (RoadBaseAI+TrafficLightState) IL_01DE: ldc.i4.1 IL_01DF: bne.un => Label36 IL_01E4: ldc.i4.0 IL_01E5: stloc.s 8 (RoadBaseAI+TrafficLightState) IL_01E7: Label35 IL_01E7: Label36 IL_01E7: br => Label37 IL_01EC: Label32 IL_01EC: ldloc.s 8 (RoadBaseAI+TrafficLightState) IL_01EE: ldc.i4.3 IL_01EF: bne.un => Label38 IL_01F4: ldc.i4.2 IL_01F5: stloc.s 8 (RoadBaseAI+TrafficLightState) IL_01F7: br => Label39 IL_01FC: Label38 IL_01FC: ldloc.s 8 (RoadBaseAI+TrafficLightState) IL_01FE: ldc.i4.1 IL_01FF: bne.un => Label40 IL_0204: ldc.i4.0 IL_0205: stloc.s 8 (RoadBaseAI+TrafficLightState) IL_0207: Label39 IL_0207: Label40 IL_0207: br => Label41 IL_020C: Label31 IL_020C: ldloc.s 8 (RoadBaseAI+TrafficLightState) IL_020E: brtrue => Label42 IL_0213: ldc.i4.1 IL_0214: stloc.s 8 (RoadBaseAI+TrafficLightState) IL_0216: Label42 IL_0216: ldloc.s 8 (RoadBaseAI+TrafficLightState) IL_0218: ldc.i4.3 IL_0219: bne.un => Label43 IL_021E: ldc.i4.2 IL_021F: stloc.s 8 (RoadBaseAI+TrafficLightState) IL_0221: Label43 IL_0221: br => Label44 IL_0226: Label30 IL_0226: ldloc.s 8 (RoadBaseAI+TrafficLightState) IL_0228: ldc.i4.1 IL_0229: bne.un => Label45 IL_022E: ldc.i4.0 IL_022F: stloc.s 8 (RoadBaseAI+TrafficLightState) IL_0231: br => Label46 IL_0236: Label45 IL_0236: ldloc.s 8 (RoadBaseAI+TrafficLightState) IL_0238: ldc.i4.3 IL_0239: bne.un => Label47 IL_023E: ldc.i4.2 IL_023F: stloc.s 8 (RoadBaseAI+TrafficLightState) IL_0241: Label46 IL_0241: Label47 IL_0241: br => Label48 IL_0246: Label33 IL_0246: Label37 IL_0246: Label41 IL_0246: Label44 IL_0246: Label48 IL_0246: ldloc.s 7 (RoadBaseAI+TrafficLightState) IL_0248: switch => Labels49,50,51,52 IL_025D: br => Label53 IL_0262: Label49 IL_0262: ldloc.s 9 (RoadBaseAI+TrafficLightState) IL_0264: ldc.i4.2 IL_0265: bne.un => Label54 IL_026A: ldc.i4.3 IL_026B: stloc.s 9 (RoadBaseAI+TrafficLightState) IL_026D: br => Label55 IL_0272: Label54 IL_0272: ldloc.s 9 (RoadBaseAI+TrafficLightState) IL_0274: ldc.i4.1 IL_0275: bne.un => Label56 IL_027A: ldc.i4.0 IL_027B: stloc.s 9 (RoadBaseAI+TrafficLightState) IL_027D: Label55 IL_027D: Label56 IL_027D: br => Label57 IL_0282: Label52 IL_0282: ldloc.s 9 (RoadBaseAI+TrafficLightState) IL_0284: ldc.i4.3 IL_0285: bne.un => Label58 IL_028A: ldc.i4.2 IL_028B: stloc.s 9 (RoadBaseAI+TrafficLightState) IL_028D: br => Label59 IL_0292: Label58 IL_0292: ldloc.s 9 (RoadBaseAI+TrafficLightState) IL_0294: ldc.i4.1 IL_0295: bne.un => Label60 IL_029A: ldc.i4.0 IL_029B: stloc.s 9 (RoadBaseAI+TrafficLightState) IL_029D: Label59 IL_029D: Label60 IL_029D: br => Label61 IL_02A2: Label51 IL_02A2: ldloc.s 9 (RoadBaseAI+TrafficLightState) IL_02A4: brtrue => Label62 IL_02A9: ldc.i4.1 IL_02AA: stloc.s 9 (RoadBaseAI+TrafficLightState) IL_02AC: Label62 IL_02AC: ldloc.s 9 (RoadBaseAI+TrafficLightState) IL_02AE: ldc.i4.3 IL_02AF: bne.un => Label63 IL_02B4: ldc.i4.2 IL_02B5: stloc.s 9 (RoadBaseAI+TrafficLightState) IL_02B7: Label63 IL_02B7: br => Label64 IL_02BC: Label50 IL_02BC: ldloc.s 9 (RoadBaseAI+TrafficLightState) IL_02BE: ldc.i4.1 IL_02BF: bne.un => Label65 IL_02C4: ldc.i4.0 IL_02C5: stloc.s 9 (RoadBaseAI+TrafficLightState) IL_02C7: br => Label66 IL_02CC: Label65 IL_02CC: ldloc.s 9 (RoadBaseAI+TrafficLightState) IL_02CE: ldc.i4.3 IL_02CF: bne.un => Label67 IL_02D4: ldc.i4.2 IL_02D5: stloc.s 9 (RoadBaseAI+TrafficLightState) IL_02D7: Label66 IL_02D7: Label67 IL_02D7: br => Label68 IL_02DC: Label53 IL_02DC: Label57 IL_02DC: Label61 IL_02DC: Label64 IL_02DC: Label68 IL_02DC: ldarg.0 IL_02DD: ldloc.0 IL_02DE: ldfld Array16`1 NetManager::m_segments IL_02E3: ldfld NetSegment[] Array16`1::m_buffer IL_02E8: ldloc.3 IL_02E9: ldelema NetSegment IL_02EE: ldloc.1 IL_02EF: ldloc.s 8 (RoadBaseAI+TrafficLightState) IL_02F1: ldloc.s 9 (RoadBaseAI+TrafficLightState) IL_02F3: ldc.i4.0 IL_02F4: ldc.i4.0 IL_02F5: call static System.Void RoadBaseAI::SetBollardState(System.UInt16 nodeID, NetSegment& segmentData, System.UInt32 frame, TrafficLightState enterState, TrafficLightState exitState, System.Boolean enter, System.Boolean exit) IL_02FA: br => Label69 IL_02FF: Label5 IL_02FF: ldarg.0 IL_0300: ldloc.0 IL_0301: ldfld Array16`1 NetManager::m_segments IL_0306: ldfld NetSegment[] Array16`1::m_buffer IL_030B: ldloc.3 IL_030C: ldelema NetSegment IL_0311: ldloc.1 IL_0312: ldc.i4.0 IL_0313: ldc.i4.0 IL_0314: ldc.i4.0 IL_0315: ldc.i4.0 IL_0316: call static System.Void RoadBaseAI::SetBollardState(System.UInt16 nodeID, NetSegment& segmentData, System.UInt32 frame, TrafficLightState enterState, TrafficLightState exitState, System.Boolean enter, System.Boolean exit) IL_031B: Label4 IL_031B: Label69 IL_031B: ldloc.2 IL_031C: ldc.i4.1 IL_031D: add IL_031E: stloc.2 IL_031F: Label2 IL_031F: ldloc.2 IL_0320: ldc.i4.8 IL_0321: blt => Label70 IL_0326: // end original IL_0326: Label0 IL_0326: ret DONE ### Patch: UnityEngine.Vector4 CitizenAI::GetPathTargetPosition(System.UInt16 instanceID, CitizenInstance& citizenData, Frame& frameData, System.Single minSqrDistance) ### Replacement: static UnityEngine.Vector4 CitizenAI::CitizenAI.GetPathTargetPosition_Patch0(CitizenAI this, System.UInt16 instanceID, CitizenInstance& citizenData, Frame& frameData, System.Single minSqrDistance) IL_0000: Local var 0: PathManager IL_0000: Local var 1: NetManager IL_0000: Local var 2: UnityEngine.Vector4 IL_0000: Local var 3: System.Single IL_0000: Local var 4: PathUnit/Position IL_0000: Local var 5: System.Int32 IL_0000: Local var 6: System.UInt32 IL_0000: Local var 7: PathUnit/Position IL_0000: Local var 8: NetInfo IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Single IL_0000: Local var 11: System.UInt32 IL_0000: Local var 12: ColossalFramework.Math.Randomizer IL_0000: Local var 13: System.Single IL_0000: Local var 14: NetInfo IL_0000: Local var 15: System.Single IL_0000: Local var 16: System.Single IL_0000: Local var 17: System.Single IL_0000: Local var 18: System.Boolean IL_0000: Local var 19: System.Int32 IL_0000: Local var 20: System.Single IL_0000: Local var 21: System.Int32 IL_0000: Local var 22: UnityEngine.Vector3 IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: UnityEngine.Vector3 IL_0000: Local var 25: UnityEngine.Vector3 IL_0000: Local var 26: System.Int32 IL_0000: Local var 27: System.UInt32 IL_0000: Local var 28: PathUnit/Position IL_0000: Local var 29: NetInfo IL_0000: Local var 30: System.Int32 IL_0000: Local var 31: System.UInt32 IL_0000: Local var 32: System.UInt32 IL_0000: Local var 33: PathUnit/Position IL_0000: Local var 34: System.Single IL_0000: Local var 35: System.Single IL_0000: Local var 36: NetInfo/LaneType IL_0000: Local var 37: System.UInt32 IL_0000: Local var 38: System.Single IL_0000: Local var 39: System.Boolean IL_0000: Local var 40: System.UInt16 IL_0000: Local var 41: System.UInt16 IL_0000: Local var 42: System.UInt16 IL_0000: Local var 43: System.UInt16 IL_0000: Local var 44: System.UInt32 IL_0000: Local var 45: System.UInt32 IL_0000: Local var 46: System.UInt32 IL_0000: Local var 47: System.UInt32 IL_0000: Local var 48: System.Byte IL_0000: Local var 49: ColossalFramework.Math.Bezier3 IL_0000: Local var 50: UnityEngine.Vector3 IL_0000: Local var 51: UnityEngine.Vector3 IL_0000: Local var 52: System.Single IL_0000: Local var 53: UnityEngine.Vector3 IL_0000: Local var 54: UnityEngine.Vector3 IL_0000: Local var 55: System.Single IL_0000: Local var 56: System.Single IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: System.Int32 IL_0000: Local var 60: System.Single IL_0000: Local var 61: UnityEngine.Vector3 IL_0000: Local var 62: UnityEngine.Vector3 IL_0000: Local var 63: UnityEngine.Vector3 IL_0000: Local var 64: CitizenInstance/Flags IL_0000: Local var 65: System.Int32 IL_0000: Local var 66: System.Int32 IL_0000: Local var 67: ColossalFramework.Math.Segment3 IL_0000: Local var 68: UnityEngine.Vector3 IL_0000: Local var 69: UnityEngine.Vector3 IL_0000: Local var 70: UnityEngine.Vector3 IL_0000: Local var 71: UnityEngine.Vector3 IL_0000: Local var 72: System.Single IL_0000: Local var 73: System.Single IL_0000: Local var 74: System.Single IL_0000: Local var 75: System.Single IL_0000: Local var 76: System.Int32 IL_0000: Local var 77: System.Single IL_0000: Local var 78: CitizenInstance/Flags IL_0000: Local var 79: System.UInt16 IL_0000: Local var 80: System.UInt16 IL_0000: Local var 81: BuildingManager IL_0000: Local var 82: BuildingInfo IL_0000: Local var 83: InstanceID IL_0000: // start original IL_0000: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_000B: stloc.1 IL_000C: ldarg.2 IL_000D: ldfld UnityEngine.Vector4 CitizenInstance::m_targetPos IL_0012: stloc.2 IL_0013: ldarg.2 IL_0014: ldfld UnityEngine.Vector4 CitizenInstance::m_targetPos IL_0019: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_001E: ldarg.3 IL_001F: ldfld UnityEngine.Vector3 Frame::m_position IL_0024: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0029: call static System.Single ColossalFramework.Math.VectorUtils::LengthSqrXZ(UnityEngine.Vector3 v) IL_002E: stloc.3 IL_002F: ldloc.3 IL_0030: ldarg.s 4 IL_0032: blt.un => Label0 IL_0037: ldloc.2 IL_0038: br => Label126 IL_003D: Label0 IL_003D: ldarg.2 IL_003E: ldfld System.Byte CitizenInstance::m_pathPositionIndex IL_0043: ldc.i4 255 IL_0048: bne.un => Label1 IL_004D: ldarg.2 IL_004E: ldc.i4.0 IL_004F: stfld System.Byte CitizenInstance::m_pathPositionIndex IL_0054: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_0059: ldfld Array32`1 PathManager::m_pathUnits IL_005E: ldfld PathUnit[] Array32`1::m_buffer IL_0063: ldarg.2 IL_0064: ldfld System.UInt32 CitizenInstance::m_path IL_0069: conv.u IL_006A: ldelema PathUnit IL_006F: ldarg.2 IL_0070: ldfld System.Byte CitizenInstance::m_pathPositionIndex IL_0075: ldc.i4.1 IL_0076: shr IL_0077: ldloc.2 IL_0078: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_007D: ldarg.2 IL_007E: ldflda System.Byte CitizenInstance::m_lastPathOffset IL_0083: call System.Boolean PathUnit::CalculatePathPositionOffset(System.Int32 index, UnityEngine.Vector3 refPos, System.Byte& offset) IL_0088: brtrue => Label2 IL_008D: ldarg.0 IL_008E: ldarg.1 IL_008F: ldarg.2 IL_0090: call System.Void CitizenAI::InvalidPath(System.UInt16 instanceID, CitizenInstance& citizenData) IL_0095: ldloc.2 IL_0096: br => Label127 IL_009B: Label1 IL_009B: Label2 IL_009B: ldloc.0 IL_009C: ldfld Array32`1 PathManager::m_pathUnits IL_00A1: ldfld PathUnit[] Array32`1::m_buffer IL_00A6: ldarg.2 IL_00A7: ldfld System.UInt32 CitizenInstance::m_path IL_00AC: conv.u IL_00AD: ldelema PathUnit IL_00B2: ldarg.2 IL_00B3: ldfld System.Byte CitizenInstance::m_pathPositionIndex IL_00B8: ldc.i4.1 IL_00B9: shr IL_00BA: ldloca.s 4 (PathUnit+Position) IL_00BC: call System.Boolean PathUnit::GetPosition(System.Int32 index, Position& position) IL_00C1: brtrue => Label3 IL_00C6: ldarg.0 IL_00C7: ldarg.1 IL_00C8: ldarg.2 IL_00C9: call System.Void CitizenAI::InvalidPath(System.UInt16 instanceID, CitizenInstance& citizenData) IL_00CE: ldloc.2 IL_00CF: br => Label128 IL_00D4: Label3 IL_00D4: ldarg.2 IL_00D5: ldfld System.Byte CitizenInstance::m_pathPositionIndex IL_00DA: ldc.i4.1 IL_00DB: and IL_00DC: brtrue => Label4 IL_00E1: ldarg.2 IL_00E2: ldfld System.Byte CitizenInstance::m_pathPositionIndex IL_00E7: ldc.i4.1 IL_00E8: shr IL_00E9: ldc.i4.1 IL_00EA: add IL_00EB: stloc.s 5 (System.Int32) IL_00ED: ldarg.2 IL_00EE: ldfld System.UInt32 CitizenInstance::m_path IL_00F3: stloc.s 6 (System.UInt32) IL_00F5: ldloc.s 5 (System.Int32) IL_00F7: ldloc.0 IL_00F8: ldfld Array32`1 PathManager::m_pathUnits IL_00FD: ldfld PathUnit[] Array32`1::m_buffer IL_0102: ldloc.s 6 (System.UInt32) IL_0104: conv.u IL_0105: ldelema PathUnit IL_010A: ldfld System.Byte PathUnit::m_positionCount IL_010F: blt => Label5 IL_0114: ldc.i4.0 IL_0115: stloc.s 5 (System.Int32) IL_0117: ldloc.0 IL_0118: ldfld Array32`1 PathManager::m_pathUnits IL_011D: ldfld PathUnit[] Array32`1::m_buffer IL_0122: ldloc.s 6 (System.UInt32) IL_0124: conv.u IL_0125: ldelema PathUnit IL_012A: ldfld System.UInt32 PathUnit::m_nextPathUnit IL_012F: stloc.s 6 (System.UInt32) IL_0131: Label5 IL_0131: ldloc.s 6 (System.UInt32) IL_0133: brfalse => Label6 IL_0138: ldloc.0 IL_0139: ldfld Array32`1 PathManager::m_pathUnits IL_013E: ldfld PathUnit[] Array32`1::m_buffer IL_0143: ldloc.s 6 (System.UInt32) IL_0145: conv.u IL_0146: ldelema PathUnit IL_014B: ldloc.s 5 (System.Int32) IL_014D: ldloca.s 7 (PathUnit+Position) IL_014F: call System.Boolean PathUnit::GetPosition(System.Int32 index, Position& position) IL_0154: brfalse => Label7 IL_0159: ldloca.s 7 (PathUnit+Position) IL_015B: ldfld System.UInt16 Position::m_segment IL_0160: ldloca.s 4 (PathUnit+Position) IL_0162: ldfld System.UInt16 Position::m_segment IL_0167: bne.un => Label8 IL_016C: ldloc.1 IL_016D: ldfld Array16`1 NetManager::m_segments IL_0172: ldfld NetSegment[] Array16`1::m_buffer IL_0177: ldloca.s 4 (PathUnit+Position) IL_0179: ldfld System.UInt16 Position::m_segment IL_017E: ldelema NetSegment IL_0183: call NetInfo NetSegment::get_Info() IL_0188: stloc.s 8 (NetInfo) IL_018A: ldloc.s 8 (NetInfo) IL_018C: ldfld Lane[] NetInfo::m_lanes IL_0191: ldlen IL_0192: conv.i4 IL_0193: ldloca.s 4 (PathUnit+Position) IL_0195: ldfld System.Byte Position::m_lane IL_019A: ble => Label9 IL_019F: ldloc.s 8 (NetInfo) IL_01A1: ldfld Lane[] NetInfo::m_lanes IL_01A6: ldlen IL_01A7: conv.i4 IL_01A8: ldloca.s 7 (PathUnit+Position) IL_01AA: ldfld System.Byte Position::m_lane IL_01AF: ble => Label10 IL_01B4: ldloc.s 8 (NetInfo) IL_01B6: ldfld Lane[] NetInfo::m_lanes IL_01BB: ldloca.s 4 (PathUnit+Position) IL_01BD: ldfld System.Byte Position::m_lane IL_01C2: ldelem.ref IL_01C3: ldfld System.Single Lane::m_position IL_01C8: stloc.s 9 (System.Single) IL_01CA: ldloc.s 8 (NetInfo) IL_01CC: ldfld Lane[] NetInfo::m_lanes IL_01D1: ldloca.s 7 (PathUnit+Position) IL_01D3: ldfld System.Byte Position::m_lane IL_01D8: ldelem.ref IL_01D9: ldfld System.Single Lane::m_position IL_01DE: stloc.s 10 (System.Single) IL_01E0: ldloc.s 9 (System.Single) IL_01E2: ldloc.s 10 (System.Single) IL_01E4: sub IL_01E5: call static System.Single UnityEngine.Mathf::Abs(System.Single f) IL_01EA: ldc.r4 4 IL_01EF: bge.un => Label11 IL_01F4: ldarg.2 IL_01F5: ldloc.s 5 (System.Int32) IL_01F7: ldc.i4.1 IL_01F8: shl IL_01F9: conv.u1 IL_01FA: stfld System.Byte CitizenInstance::m_pathPositionIndex IL_01FF: ldloc.s 7 (PathUnit+Position) IL_0201: stloc.s 4 (PathUnit+Position) IL_0203: ldloc.s 6 (System.UInt32) IL_0205: ldarg.2 IL_0206: ldfld System.UInt32 CitizenInstance::m_path IL_020B: beq => Label12 IL_0210: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_0215: ldarg.2 IL_0216: ldflda System.UInt32 CitizenInstance::m_path IL_021B: callvirt System.Void PathManager::ReleaseFirstUnit(System.UInt32& unit) IL_0220: Label4 IL_0220: Label6 IL_0220: Label7 IL_0220: Label8 IL_0220: Label9 IL_0220: Label10 IL_0220: Label11 IL_0220: Label12 IL_0220: ldloc.s 4 (PathUnit+Position) IL_0222: call static System.UInt32 PathManager::GetLaneID(Position pathPos) IL_0227: stloc.s 11 (System.UInt32) IL_0229: ldloca.s 12 (ColossalFramework.Math.Randomizer) IL_022B: ldarg.1 IL_022C: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0231: ldloca.s 12 (ColossalFramework.Math.Randomizer) IL_0233: ldc.i4 -500 IL_0238: ldc.i4 500 IL_023D: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max) IL_0242: conv.r4 IL_0243: ldc.r4 0.001 IL_0248: mul IL_0249: stloc.s 13 (System.Single) IL_024B: Label125 IL_024B: ldloc.1 IL_024C: ldfld Array16`1 NetManager::m_segments IL_0251: ldfld NetSegment[] Array16`1::m_buffer IL_0256: ldloca.s 4 (PathUnit+Position) IL_0258: ldfld System.UInt16 Position::m_segment IL_025D: ldelema NetSegment IL_0262: call NetInfo NetSegment::get_Info() IL_0267: stloc.s 14 (NetInfo) IL_0269: ldloc.s 14 (NetInfo) IL_026B: ldfld Lane[] NetInfo::m_lanes IL_0270: ldlen IL_0271: conv.i4 IL_0272: ldloca.s 4 (PathUnit+Position) IL_0274: ldfld System.Byte Position::m_lane IL_0279: bgt => Label13 IL_027E: ldarg.0 IL_027F: ldarg.1 IL_0280: ldarg.2 IL_0281: call System.Void CitizenAI::InvalidPath(System.UInt16 instanceID, CitizenInstance& citizenData) IL_0286: ldloc.2 IL_0287: br => Label129 IL_028C: Label13 IL_028C: ldloc.s 14 (NetInfo) IL_028E: ldfld Lane[] NetInfo::m_lanes IL_0293: ldloca.s 4 (PathUnit+Position) IL_0295: ldfld System.Byte Position::m_lane IL_029A: ldelem.ref IL_029B: ldfld System.Single Lane::m_width IL_02A0: stloc.s 15 (System.Single) IL_02A2: ldc.r4 0 IL_02A7: ldloc.s 15 (System.Single) IL_02A9: ldc.r4 1 IL_02AE: sub IL_02AF: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_02B4: ldloc.s 13 (System.Single) IL_02B6: mul IL_02B7: stloc.s 16 (System.Single) IL_02B9: ldloc.s 14 (NetInfo) IL_02BB: ldfld Lane[] NetInfo::m_lanes IL_02C0: ldloca.s 4 (PathUnit+Position) IL_02C2: ldfld System.Byte Position::m_lane IL_02C7: ldelem.ref IL_02C8: ldfld System.Boolean Lane::m_useTerrainHeight IL_02CD: brtrue => Label14 IL_02D2: ldarg.2 IL_02D3: ldfld Flags CitizenInstance::m_flags IL_02D8: ldc.i4 32768 IL_02DD: and IL_02DE: brtrue => Label15 IL_02E3: Label14 IL_02E3: ldc.r4 1 IL_02E8: br => Label16 IL_02ED: Label15 IL_02ED: ldc.r4 0 IL_02F2: Label16 IL_02F2: stloc.s 17 (System.Single) IL_02F4: ldarg.2 IL_02F5: ldfld System.Byte CitizenInstance::m_pathPositionIndex IL_02FA: ldc.i4.1 IL_02FB: and IL_02FC: brtrue => Label17 IL_0301: ldc.i4.1 IL_0302: stloc.s 18 (System.Boolean) IL_0304: ldloca.s 4 (PathUnit+Position) IL_0306: ldfld System.Byte Position::m_offset IL_030B: ldarg.2 IL_030C: ldfld System.Byte CitizenInstance::m_lastPathOffset IL_0311: sub IL_0312: stloc.s 19 (System.Int32) IL_0314: br => Label18 IL_0319: Label32 IL_0319: ldloc.s 18 (System.Boolean) IL_031B: brfalse => Label19 IL_0320: ldc.i4.0 IL_0321: stloc.s 18 (System.Boolean) IL_0323: br => Label20 IL_0328: Label19 IL_0328: ldarg.s 4 IL_032A: call static System.Single UnityEngine.Mathf::Sqrt(System.Single f) IL_032F: ldloc.2 IL_0330: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0335: ldarg.3 IL_0336: ldfld UnityEngine.Vector3 Frame::m_position IL_033B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0340: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_0345: sub IL_0346: stloc.s 20 (System.Single) IL_0348: ldloc.s 20 (System.Single) IL_034A: ldc.r4 0 IL_034F: bge.un => Label21 IL_0354: ldc.i4.4 IL_0355: stloc.s 21 (System.Int32) IL_0357: br => Label22 IL_035C: Label21 IL_035C: ldc.i4.4 IL_035D: ldloc.s 20 (System.Single) IL_035F: ldc.r4 256 IL_0364: mul IL_0365: ldloc.1 IL_0366: ldfld Array32`1 NetManager::m_lanes IL_036B: ldfld NetLane[] Array32`1::m_buffer IL_0370: ldloc.s 11 (System.UInt32) IL_0372: conv.u IL_0373: ldelema NetLane IL_0378: ldfld System.Single NetLane::m_length IL_037D: ldc.r4 1 IL_0382: add IL_0383: div IL_0384: call static System.Int32 UnityEngine.Mathf::CeilToInt(System.Single f) IL_0389: add IL_038A: stloc.s 21 (System.Int32) IL_038C: Label22 IL_038C: ldloc.s 19 (System.Int32) IL_038E: ldc.i4.0 IL_038F: bge => Label23 IL_0394: ldarg.2 IL_0395: ldarg.2 IL_0396: ldfld System.Byte CitizenInstance::m_lastPathOffset IL_039B: ldloc.s 21 (System.Int32) IL_039D: sub IL_039E: ldloca.s 4 (PathUnit+Position) IL_03A0: ldfld System.Byte Position::m_offset IL_03A5: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_03AA: conv.u1 IL_03AB: stfld System.Byte CitizenInstance::m_lastPathOffset IL_03B0: br => Label24 IL_03B5: Label23 IL_03B5: ldloc.s 19 (System.Int32) IL_03B7: ldc.i4.0 IL_03B8: ble => Label25 IL_03BD: ldarg.2 IL_03BE: ldarg.2 IL_03BF: ldfld System.Byte CitizenInstance::m_lastPathOffset IL_03C4: ldloc.s 21 (System.Int32) IL_03C6: add IL_03C7: ldloca.s 4 (PathUnit+Position) IL_03C9: ldfld System.Byte Position::m_offset IL_03CE: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_03D3: conv.u1 IL_03D4: stfld System.Byte CitizenInstance::m_lastPathOffset IL_03D9: Label20 IL_03D9: Label24 IL_03D9: Label25 IL_03D9: ldloc.1 IL_03DA: ldfld Array32`1 NetManager::m_lanes IL_03DF: ldfld NetLane[] Array32`1::m_buffer IL_03E4: ldloc.s 11 (System.UInt32) IL_03E6: conv.u IL_03E7: ldelema NetLane IL_03EC: ldarg.2 IL_03ED: ldfld System.Byte CitizenInstance::m_lastPathOffset IL_03F2: conv.r4 IL_03F3: ldc.r4 0.003921569 IL_03F8: mul IL_03F9: ldloca.s 22 (UnityEngine.Vector3) IL_03FB: ldloca.s 23 (UnityEngine.Vector3) IL_03FD: call System.Void NetLane::CalculatePositionAndDirection(System.Single laneOffset, UnityEngine.Vector3& position, UnityEngine.Vector3& direction) IL_0402: ldloc.s 22 (UnityEngine.Vector3) IL_0404: call static UnityEngine.Vector4 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector3 v) IL_0409: stloc.2 IL_040A: ldloca.s 2 (UnityEngine.Vector4) IL_040C: ldloc.s 17 (System.Single) IL_040E: stfld System.Single UnityEngine.Vector4::w IL_0413: call static UnityEngine.Vector3 UnityEngine.Vector3::get_up() IL_0418: ldloc.s 23 (UnityEngine.Vector3) IL_041A: call static UnityEngine.Vector3 UnityEngine.Vector3::Cross(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs) IL_041F: stloc.s 25 (UnityEngine.Vector3) IL_0421: ldloca.s 25 (UnityEngine.Vector3) IL_0423: call UnityEngine.Vector3 UnityEngine.Vector3::get_normalized() IL_0428: ldloc.s 16 (System.Single) IL_042A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_042F: stloc.s 24 (UnityEngine.Vector3) IL_0431: ldloc.s 19 (System.Int32) IL_0433: ldc.i4.0 IL_0434: ble => Label26 IL_0439: ldloca.s 2 (UnityEngine.Vector4) IL_043B: dup IL_043C: ldfld System.Single UnityEngine.Vector4::x IL_0441: ldloca.s 24 (UnityEngine.Vector3) IL_0443: ldfld System.Single UnityEngine.Vector3::x IL_0448: add IL_0449: stfld System.Single UnityEngine.Vector4::x IL_044E: ldloca.s 2 (UnityEngine.Vector4) IL_0450: dup IL_0451: ldfld System.Single UnityEngine.Vector4::z IL_0456: ldloca.s 24 (UnityEngine.Vector3) IL_0458: ldfld System.Single UnityEngine.Vector3::z IL_045D: add IL_045E: stfld System.Single UnityEngine.Vector4::z IL_0463: br => Label27 IL_0468: Label26 IL_0468: ldloca.s 2 (UnityEngine.Vector4) IL_046A: dup IL_046B: ldfld System.Single UnityEngine.Vector4::x IL_0470: ldloca.s 24 (UnityEngine.Vector3) IL_0472: ldfld System.Single UnityEngine.Vector3::x IL_0477: sub IL_0478: stfld System.Single UnityEngine.Vector4::x IL_047D: ldloca.s 2 (UnityEngine.Vector4) IL_047F: dup IL_0480: ldfld System.Single UnityEngine.Vector4::z IL_0485: ldloca.s 24 (UnityEngine.Vector3) IL_0487: ldfld System.Single UnityEngine.Vector3::z IL_048C: sub IL_048D: stfld System.Single UnityEngine.Vector4::z IL_0492: Label27 IL_0492: ldloc.2 IL_0493: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0498: ldarg.3 IL_0499: ldfld UnityEngine.Vector3 Frame::m_position IL_049E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04A3: call static System.Single ColossalFramework.Math.VectorUtils::LengthSqrXZ(UnityEngine.Vector3 v) IL_04A8: stloc.3 IL_04A9: ldloc.3 IL_04AA: ldarg.s 4 IL_04AC: blt.un => Label28 IL_04B1: ldarg.2 IL_04B2: ldarg.2 IL_04B3: ldfld Flags CitizenInstance::m_flags IL_04B8: ldc.i4 -524421 IL_04BD: and IL_04BE: ldloc.s 14 (NetInfo) IL_04C0: ldfld Flags NetInfo::m_setCitizenFlags IL_04C5: or IL_04C6: stfld Flags CitizenInstance::m_flags IL_04CB: ldloc.2 IL_04CC: br => Label130 IL_04D1: Label28 IL_04D1: ldloca.s 4 (PathUnit+Position) IL_04D3: ldfld System.Byte Position::m_offset IL_04D8: ldarg.2 IL_04D9: ldfld System.Byte CitizenInstance::m_lastPathOffset IL_04DE: sub IL_04DF: stloc.s 19 (System.Int32) IL_04E1: ldarg.2 IL_04E2: ldfld Flags CitizenInstance::m_flags IL_04E7: ldc.i4 32768 IL_04EC: and IL_04ED: brtrue => Label29 IL_04F2: ldarg.2 IL_04F3: dup IL_04F4: ldfld Flags CitizenInstance::m_flags IL_04F9: ldc.i4 32768 IL_04FE: or IL_04FF: stfld Flags CitizenInstance::m_flags IL_0504: ldarg.2 IL_0505: ldfld Flags CitizenInstance::m_flags IL_050A: ldc.i4 1048576 IL_050F: and IL_0510: brtrue => Label30 IL_0515: ldloc.1 IL_0516: ldfld Array16`1 NetManager::m_segments IL_051B: ldfld NetSegment[] Array16`1::m_buffer IL_0520: ldloca.s 4 (PathUnit+Position) IL_0522: ldfld System.UInt16 Position::m_segment IL_0527: ldelema NetSegment IL_052C: ldfld Flags NetSegment::m_flags IL_0531: ldc.i4 8388608 IL_0536: and IL_0537: brtrue => Label31 IL_053C: ldarg.0 IL_053D: ldarg.1 IL_053E: ldarg.2 IL_053F: ldloc.s 4 (PathUnit+Position) IL_0541: callvirt virtual System.Boolean CitizenAI::SpawnBicycle(System.UInt16 instanceID, CitizenInstance& citizenData, Position pathPos) IL_0546: pop IL_0547: Label18 IL_0547: Label29 IL_0547: Label30 IL_0547: Label31 IL_0547: ldloc.s 19 (System.Int32) IL_0549: brtrue => Label32 IL_054E: ldarg.2 IL_054F: dup IL_0550: ldfld System.Byte CitizenInstance::m_pathPositionIndex IL_0555: ldc.i4.1 IL_0556: add IL_0557: conv.u1 IL_0558: stfld System.Byte CitizenInstance::m_pathPositionIndex IL_055D: ldarg.2 IL_055E: ldc.i4.0 IL_055F: stfld System.Byte CitizenInstance::m_lastPathOffset IL_0564: Label17 IL_0564: ldarg.2 IL_0565: ldfld System.Byte CitizenInstance::m_pathPositionIndex IL_056A: ldc.i4.1 IL_056B: shr IL_056C: ldc.i4.1 IL_056D: add IL_056E: stloc.s 26 (System.Int32) IL_0570: ldarg.2 IL_0571: ldfld System.UInt32 CitizenInstance::m_path IL_0576: stloc.s 27 (System.UInt32) IL_0578: ldloc.s 26 (System.Int32) IL_057A: ldloc.0 IL_057B: ldfld Array32`1 PathManager::m_pathUnits IL_0580: ldfld PathUnit[] Array32`1::m_buffer IL_0585: ldarg.2 IL_0586: ldfld System.UInt32 CitizenInstance::m_path IL_058B: conv.u IL_058C: ldelema PathUnit IL_0591: ldfld System.Byte PathUnit::m_positionCount IL_0596: blt => Label33 IL_059B: ldc.i4.0 IL_059C: stloc.s 26 (System.Int32) IL_059E: ldloc.0 IL_059F: ldfld Array32`1 PathManager::m_pathUnits IL_05A4: ldfld PathUnit[] Array32`1::m_buffer IL_05A9: ldarg.2 IL_05AA: ldfld System.UInt32 CitizenInstance::m_path IL_05AF: conv.u IL_05B0: ldelema PathUnit IL_05B5: ldfld System.UInt32 PathUnit::m_nextPathUnit IL_05BA: stloc.s 27 (System.UInt32) IL_05BC: ldloc.s 27 (System.UInt32) IL_05BE: brtrue => Label34 IL_05C3: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_05C8: ldarg.2 IL_05C9: ldfld System.UInt32 CitizenInstance::m_path IL_05CE: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit) IL_05D3: ldarg.2 IL_05D4: ldc.i4.0 IL_05D5: stfld System.UInt32 CitizenInstance::m_path IL_05DA: ldloc.2 IL_05DB: br => Label131 IL_05E0: Label33 IL_05E0: Label34 IL_05E0: ldloc.0 IL_05E1: ldfld Array32`1 PathManager::m_pathUnits IL_05E6: ldfld PathUnit[] Array32`1::m_buffer IL_05EB: ldloc.s 27 (System.UInt32) IL_05ED: conv.u IL_05EE: ldelema PathUnit IL_05F3: ldloc.s 26 (System.Int32) IL_05F5: ldloca.s 28 (PathUnit+Position) IL_05F7: call System.Boolean PathUnit::GetPosition(System.Int32 index, Position& position) IL_05FC: brtrue => Label35 IL_0601: ldarg.0 IL_0602: ldarg.1 IL_0603: ldarg.2 IL_0604: call System.Void CitizenAI::InvalidPath(System.UInt16 instanceID, CitizenInstance& citizenData) IL_0609: ldloc.2 IL_060A: br => Label132 IL_060F: Label35 IL_060F: ldloc.1 IL_0610: ldfld Array16`1 NetManager::m_segments IL_0615: ldfld NetSegment[] Array16`1::m_buffer IL_061A: ldloca.s 28 (PathUnit+Position) IL_061C: ldfld System.UInt16 Position::m_segment IL_0621: ldelema NetSegment IL_0626: call NetInfo NetSegment::get_Info() IL_062B: stloc.s 29 (NetInfo) IL_062D: ldloc.s 29 (NetInfo) IL_062F: ldfld Lane[] NetInfo::m_lanes IL_0634: ldlen IL_0635: conv.i4 IL_0636: ldloca.s 28 (PathUnit+Position) IL_0638: ldfld System.Byte Position::m_lane IL_063D: bgt => Label36 IL_0642: ldarg.0 IL_0643: ldarg.1 IL_0644: ldarg.2 IL_0645: call System.Void CitizenAI::InvalidPath(System.UInt16 instanceID, CitizenInstance& citizenData) IL_064A: ldloc.2 IL_064B: br => Label133 IL_0650: Label36 IL_0650: ldloc.s 26 (System.Int32) IL_0652: ldc.i4.1 IL_0653: add IL_0654: stloc.s 30 (System.Int32) IL_0656: ldloc.s 27 (System.UInt32) IL_0658: stloc.s 31 (System.UInt32) IL_065A: ldc.i4.0 IL_065B: stloc.s 32 (System.UInt32) IL_065D: ldloc.s 30 (System.Int32) IL_065F: ldloc.0 IL_0660: ldfld Array32`1 PathManager::m_pathUnits IL_0665: ldfld PathUnit[] Array32`1::m_buffer IL_066A: ldloc.s 27 (System.UInt32) IL_066C: conv.u IL_066D: ldelema PathUnit IL_0672: ldfld System.Byte PathUnit::m_positionCount IL_0677: blt => Label37 IL_067C: ldc.i4.0 IL_067D: stloc.s 30 (System.Int32) IL_067F: ldloc.0 IL_0680: ldfld Array32`1 PathManager::m_pathUnits IL_0685: ldfld PathUnit[] Array32`1::m_buffer IL_068A: ldloc.s 27 (System.UInt32) IL_068C: conv.u IL_068D: ldelema PathUnit IL_0692: ldfld System.UInt32 PathUnit::m_nextPathUnit IL_0697: stloc.s 31 (System.UInt32) IL_0699: Label37 IL_0699: ldloc.s 31 (System.UInt32) IL_069B: brfalse => Label38 IL_06A0: ldloc.0 IL_06A1: ldfld Array32`1 PathManager::m_pathUnits IL_06A6: ldfld PathUnit[] Array32`1::m_buffer IL_06AB: ldloc.s 31 (System.UInt32) IL_06AD: conv.u IL_06AE: ldelema PathUnit IL_06B3: ldloc.s 30 (System.Int32) IL_06B5: ldloca.s 33 (PathUnit+Position) IL_06B7: call System.Boolean PathUnit::GetPosition(System.Int32 index, Position& position) IL_06BC: brfalse => Label39 IL_06C1: ldloca.s 33 (PathUnit+Position) IL_06C3: ldfld System.UInt16 Position::m_segment IL_06C8: ldloca.s 28 (PathUnit+Position) IL_06CA: ldfld System.UInt16 Position::m_segment IL_06CF: bne.un => Label40 IL_06D4: ldloc.s 29 (NetInfo) IL_06D6: ldfld Lane[] NetInfo::m_lanes IL_06DB: ldlen IL_06DC: conv.i4 IL_06DD: ldloca.s 33 (PathUnit+Position) IL_06DF: ldfld System.Byte Position::m_lane IL_06E4: ble => Label41 IL_06E9: ldloc.s 29 (NetInfo) IL_06EB: ldfld Lane[] NetInfo::m_lanes IL_06F0: ldloca.s 28 (PathUnit+Position) IL_06F2: ldfld System.Byte Position::m_lane IL_06F7: ldelem.ref IL_06F8: ldfld System.Single Lane::m_position IL_06FD: stloc.s 34 (System.Single) IL_06FF: ldloc.s 29 (NetInfo) IL_0701: ldfld Lane[] NetInfo::m_lanes IL_0706: ldloca.s 33 (PathUnit+Position) IL_0708: ldfld System.Byte Position::m_lane IL_070D: ldelem.ref IL_070E: ldfld System.Single Lane::m_position IL_0713: stloc.s 35 (System.Single) IL_0715: ldloc.s 34 (System.Single) IL_0717: ldloc.s 35 (System.Single) IL_0719: sub IL_071A: call static System.Single UnityEngine.Mathf::Abs(System.Single f) IL_071F: ldc.r4 4 IL_0724: bge.un => Label42 IL_0729: ldloc.s 28 (PathUnit+Position) IL_072B: call static System.UInt32 PathManager::GetLaneID(Position pathPos) IL_0730: stloc.s 32 (System.UInt32) IL_0732: ldloc.s 30 (System.Int32) IL_0734: stloc.s 26 (System.Int32) IL_0736: ldloc.s 33 (PathUnit+Position) IL_0738: stloc.s 28 (PathUnit+Position) IL_073A: ldloc.s 31 (System.UInt32) IL_073C: stloc.s 27 (System.UInt32) IL_073E: Label38 IL_073E: Label39 IL_073E: Label40 IL_073E: Label41 IL_073E: Label42 IL_073E: ldloc.s 29 (NetInfo) IL_0740: ldfld Lane[] NetInfo::m_lanes IL_0745: ldloca.s 28 (PathUnit+Position) IL_0747: ldfld System.Byte Position::m_lane IL_074C: ldelem.ref IL_074D: ldfld LaneType Lane::m_laneType IL_0752: stloc.s 36 (NetInfo+LaneType) IL_0754: ldloc.s 28 (PathUnit+Position) IL_0756: call static System.UInt32 PathManager::GetLaneID(Position pathPos) IL_075B: stloc.s 37 (System.UInt32) IL_075D: ldloc.s 29 (NetInfo) IL_075F: ldfld Lane[] NetInfo::m_lanes IL_0764: ldloca.s 28 (PathUnit+Position) IL_0766: ldfld System.Byte Position::m_lane IL_076B: ldelem.ref IL_076C: ldfld System.Boolean Lane::m_useTerrainHeight IL_0771: brfalse => Label43 IL_0776: ldc.r4 1 IL_077B: br => Label44 IL_0780: Label43 IL_0780: ldc.r4 0 IL_0785: Label44 IL_0785: stloc.s 38 (System.Single) IL_0787: ldc.i4.0 IL_0788: stloc.s 39 (System.Boolean) IL_078A: ldloc.1 IL_078B: ldfld Array16`1 NetManager::m_segments IL_0790: ldfld NetSegment[] Array16`1::m_buffer IL_0795: ldloca.s 4 (PathUnit+Position) IL_0797: ldfld System.UInt16 Position::m_segment IL_079C: ldelema NetSegment IL_07A1: ldfld System.UInt16 NetSegment::m_startNode IL_07A6: stloc.s 40 (System.UInt16) IL_07A8: ldloc.1 IL_07A9: ldfld Array16`1 NetManager::m_segments IL_07AE: ldfld NetSegment[] Array16`1::m_buffer IL_07B3: ldloca.s 4 (PathUnit+Position) IL_07B5: ldfld System.UInt16 Position::m_segment IL_07BA: ldelema NetSegment IL_07BF: ldfld System.UInt16 NetSegment::m_endNode IL_07C4: stloc.s 41 (System.UInt16) IL_07C6: ldloc.1 IL_07C7: ldfld Array16`1 NetManager::m_segments IL_07CC: ldfld NetSegment[] Array16`1::m_buffer IL_07D1: ldloca.s 28 (PathUnit+Position) IL_07D3: ldfld System.UInt16 Position::m_segment IL_07D8: ldelema NetSegment IL_07DD: ldfld System.UInt16 NetSegment::m_startNode IL_07E2: stloc.s 42 (System.UInt16) IL_07E4: ldloc.1 IL_07E5: ldfld Array16`1 NetManager::m_segments IL_07EA: ldfld NetSegment[] Array16`1::m_buffer IL_07EF: ldloca.s 28 (PathUnit+Position) IL_07F1: ldfld System.UInt16 Position::m_segment IL_07F6: ldelema NetSegment IL_07FB: ldfld System.UInt16 NetSegment::m_endNode IL_0800: stloc.s 43 (System.UInt16) IL_0802: ldloc.s 42 (System.UInt16) IL_0804: ldloc.s 40 (System.UInt16) IL_0806: beq => Label45 IL_080B: ldloc.s 42 (System.UInt16) IL_080D: ldloc.s 41 (System.UInt16) IL_080F: beq => Label46 IL_0814: ldloc.s 43 (System.UInt16) IL_0816: ldloc.s 40 (System.UInt16) IL_0818: beq => Label47 IL_081D: ldloc.s 43 (System.UInt16) IL_081F: ldloc.s 41 (System.UInt16) IL_0821: beq => Label48 IL_0826: ldloc.1 IL_0827: ldfld Array16`1 NetManager::m_nodes IL_082C: ldfld NetNode[] Array16`1::m_buffer IL_0831: ldloc.s 40 (System.UInt16) IL_0833: ldelema NetNode IL_0838: ldfld System.UInt32 NetNode::m_lane IL_083D: stloc.s 44 (System.UInt32) IL_083F: ldloc.1 IL_0840: ldfld Array16`1 NetManager::m_nodes IL_0845: ldfld NetNode[] Array16`1::m_buffer IL_084A: ldloc.s 42 (System.UInt16) IL_084C: ldelema NetNode IL_0851: ldfld System.UInt32 NetNode::m_lane IL_0856: stloc.s 45 (System.UInt32) IL_0858: ldloc.1 IL_0859: ldfld Array16`1 NetManager::m_nodes IL_085E: ldfld NetNode[] Array16`1::m_buffer IL_0863: ldloc.s 41 (System.UInt16) IL_0865: ldelema NetNode IL_086A: ldfld System.UInt32 NetNode::m_lane IL_086F: stloc.s 46 (System.UInt32) IL_0871: ldloc.1 IL_0872: ldfld Array16`1 NetManager::m_nodes IL_0877: ldfld NetNode[] Array16`1::m_buffer IL_087C: ldloc.s 43 (System.UInt16) IL_087E: ldelema NetNode IL_0883: ldfld System.UInt32 NetNode::m_lane IL_0888: stloc.s 47 (System.UInt32) IL_088A: ldloc.s 44 (System.UInt32) IL_088C: ldloc.s 37 (System.UInt32) IL_088E: beq => Label49 IL_0893: ldloc.s 45 (System.UInt32) IL_0895: ldloc.s 11 (System.UInt32) IL_0897: beq => Label50 IL_089C: ldloc.s 46 (System.UInt32) IL_089E: ldloc.s 37 (System.UInt32) IL_08A0: beq => Label51 IL_08A5: ldloc.s 47 (System.UInt32) IL_08A7: ldloc.s 11 (System.UInt32) IL_08A9: beq => Label52 IL_08AE: ldloc.s 32 (System.UInt32) IL_08B0: brfalse => Label53 IL_08B5: ldloc.s 44 (System.UInt32) IL_08B7: ldloc.s 32 (System.UInt32) IL_08B9: beq => Label54 IL_08BE: ldloc.s 46 (System.UInt32) IL_08C0: ldloc.s 32 (System.UInt32) IL_08C2: beq => Label55 IL_08C7: Label53 IL_08C7: ldarg.0 IL_08C8: ldarg.1 IL_08C9: ldarg.2 IL_08CA: call System.Void CitizenAI::InvalidPath(System.UInt16 instanceID, CitizenInstance& citizenData) IL_08CF: ldloc.2 IL_08D0: br => Label134 IL_08D5: Label49 IL_08D5: Label50 IL_08D5: Label51 IL_08D5: Label52 IL_08D5: Label54 IL_08D5: Label55 IL_08D5: ldloc.1 IL_08D6: ldfld Array16`1 NetManager::m_nodes IL_08DB: ldfld NetNode[] Array16`1::m_buffer IL_08E0: ldloc.s 40 (System.UInt16) IL_08E2: ldelema NetNode IL_08E7: ldfld Flags NetNode::m_flags IL_08EC: ldloc.1 IL_08ED: ldfld Array16`1 NetManager::m_nodes IL_08F2: ldfld NetNode[] Array16`1::m_buffer IL_08F7: ldloc.s 41 (System.UInt16) IL_08F9: ldelema NetNode IL_08FE: ldfld Flags NetNode::m_flags IL_0903: or IL_0904: ldc.i4.8 IL_0905: and IL_0906: brtrue => Label56 IL_090B: ldloc.1 IL_090C: ldfld Array16`1 NetManager::m_nodes IL_0911: ldfld NetNode[] Array16`1::m_buffer IL_0916: ldloc.s 42 (System.UInt16) IL_0918: ldelema NetNode IL_091D: ldfld Flags NetNode::m_flags IL_0922: ldloc.1 IL_0923: ldfld Array16`1 NetManager::m_nodes IL_0928: ldfld NetNode[] Array16`1::m_buffer IL_092D: ldloc.s 43 (System.UInt16) IL_092F: ldelema NetNode IL_0934: ldfld Flags NetNode::m_flags IL_0939: or IL_093A: ldc.i4.8 IL_093B: and IL_093C: brfalse => Label57 IL_0941: ldarg.0 IL_0942: ldarg.1 IL_0943: ldarg.2 IL_0944: call System.Void CitizenAI::InvalidPath(System.UInt16 instanceID, CitizenInstance& citizenData) IL_0949: ldloc.2 IL_094A: br => Label135 IL_094F: Label56 IL_094F: Label57 IL_094F: ldc.i4.1 IL_0950: stloc.s 39 (System.Boolean) IL_0952: Label45 IL_0952: Label46 IL_0952: Label47 IL_0952: Label48 IL_0952: ldloc.s 36 (NetInfo+LaneType) IL_0954: ldc.i4.s 72 IL_0956: and IL_0957: conv.u1 IL_0958: brfalse => Label58 IL_095D: ldarg.2 IL_095E: dup IL_095F: ldfld Flags CitizenInstance::m_flags IL_0964: ldc.i4 512 IL_0969: or IL_096A: stfld Flags CitizenInstance::m_flags IL_096F: ldarg.2 IL_0970: dup IL_0971: ldfld Flags CitizenInstance::m_flags IL_0976: ldc.i4 -4097 IL_097B: and IL_097C: stfld Flags CitizenInstance::m_flags IL_0981: ldarg.2 IL_0982: ldc.i4.0 IL_0983: stfld System.Byte CitizenInstance::m_waitCounter IL_0988: ldloc.s 27 (System.UInt32) IL_098A: ldarg.2 IL_098B: ldfld System.UInt32 CitizenInstance::m_path IL_0990: beq => Label59 IL_0995: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_099A: ldarg.2 IL_099B: ldflda System.UInt32 CitizenInstance::m_path IL_09A0: callvirt System.Void PathManager::ReleaseFirstUnit(System.UInt32& unit) IL_09A5: Label59 IL_09A5: ldarg.2 IL_09A6: ldloc.s 26 (System.Int32) IL_09A8: ldc.i4.1 IL_09A9: shl IL_09AA: conv.u1 IL_09AB: stfld System.Byte CitizenInstance::m_pathPositionIndex IL_09B0: ldarg.2 IL_09B1: ldloca.s 28 (PathUnit+Position) IL_09B3: ldfld System.Byte Position::m_offset IL_09B8: stfld System.Byte CitizenInstance::m_lastPathOffset IL_09BD: ldarg.2 IL_09BE: ldarg.2 IL_09BF: ldfld Flags CitizenInstance::m_flags IL_09C4: ldc.i4 -2621573 IL_09C9: and IL_09CA: ldloc.s 14 (NetInfo) IL_09CC: ldfld Flags NetInfo::m_setCitizenFlags IL_09D1: or IL_09D2: stfld Flags CitizenInstance::m_flags IL_09D7: ldarg.2 IL_09D8: ldfld Flags CitizenInstance::m_flags IL_09DD: ldc.i4 1048576 IL_09E2: and IL_09E3: brfalse => Label60 IL_09E8: ldarg.2 IL_09E9: ldfld System.UInt32 CitizenInstance::m_citizen IL_09EE: brfalse => Label61 IL_09F3: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_09F8: ldfld Array32`1 CitizenManager::m_citizens IL_09FD: ldfld Citizen[] Array32`1::m_buffer IL_0A02: ldarg.2 IL_0A03: ldfld System.UInt32 CitizenInstance::m_citizen IL_0A08: conv.u IL_0A09: ldelema Citizen IL_0A0E: ldarg.2 IL_0A0F: ldfld System.UInt32 CitizenInstance::m_citizen IL_0A14: ldc.i4.0 IL_0A15: ldc.i4.0 IL_0A16: call System.Void Citizen::SetVehicle(System.UInt32 citizenID, System.UInt16 vehicleID, System.UInt32 unitID) IL_0A1B: Label61 IL_0A1B: ldarg.2 IL_0A1C: dup IL_0A1D: ldfld Flags CitizenInstance::m_flags IL_0A22: ldc.i4 -1048577 IL_0A27: and IL_0A28: stfld Flags CitizenInstance::m_flags IL_0A2D: Label60 IL_0A2D: ldloc.2 IL_0A2E: br => Label136 IL_0A33: Label58 IL_0A33: ldloc.s 36 (NetInfo+LaneType) IL_0A35: ldc.i4.s 33 IL_0A37: and IL_0A38: conv.u1 IL_0A39: brfalse => Label62 IL_0A3E: ldloc.s 29 (NetInfo) IL_0A40: ldfld Lane[] NetInfo::m_lanes IL_0A45: ldloca.s 28 (PathUnit+Position) IL_0A47: ldfld System.Byte Position::m_lane IL_0A4C: ldelem.ref IL_0A4D: ldfld VehicleType Lane::m_vehicleType IL_0A52: ldc.i4.s 32 IL_0A54: and IL_0A55: brfalse => Label63 IL_0A5A: ldarg.2 IL_0A5B: ldfld Flags CitizenInstance::m_flags IL_0A60: ldc.i4 1048576 IL_0A65: and IL_0A66: brtrue => Label64 IL_0A6B: ldarg.0 IL_0A6C: ldarg.1 IL_0A6D: ldarg.2 IL_0A6E: ldloc.s 28 (PathUnit+Position) IL_0A70: callvirt virtual System.Boolean CitizenAI::SpawnBicycle(System.UInt16 instanceID, CitizenInstance& citizenData, Position pathPos) IL_0A75: brtrue => Label65 IL_0A7A: ldarg.0 IL_0A7B: ldarg.1 IL_0A7C: ldarg.2 IL_0A7D: call System.Void CitizenAI::InvalidPath(System.UInt16 instanceID, CitizenInstance& citizenData) IL_0A82: ldloc.2 IL_0A83: br => Label137 IL_0A88: Label64 IL_0A88: Label65 IL_0A88: ldarg.2 IL_0A89: dup IL_0A8A: ldfld Flags CitizenInstance::m_flags IL_0A8F: ldc.i4 2097152 IL_0A94: or IL_0A95: stfld Flags CitizenInstance::m_flags IL_0A9A: br => Label66 IL_0A9F: Label63 IL_0A9F: ldloc.s 27 (System.UInt32) IL_0AA1: ldarg.2 IL_0AA2: ldfld System.UInt32 CitizenInstance::m_path IL_0AA7: beq => Label67 IL_0AAC: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_0AB1: ldarg.2 IL_0AB2: ldflda System.UInt32 CitizenInstance::m_path IL_0AB7: callvirt System.Void PathManager::ReleaseFirstUnit(System.UInt32& unit) IL_0ABC: Label67 IL_0ABC: ldarg.2 IL_0ABD: ldloc.s 26 (System.Int32) IL_0ABF: ldc.i4.1 IL_0AC0: shl IL_0AC1: conv.u1 IL_0AC2: stfld System.Byte CitizenInstance::m_pathPositionIndex IL_0AC7: ldarg.2 IL_0AC8: ldloca.s 28 (PathUnit+Position) IL_0ACA: ldfld System.Byte Position::m_offset IL_0ACF: stfld System.Byte CitizenInstance::m_lastPathOffset IL_0AD4: ldarg.0 IL_0AD5: ldarg.1 IL_0AD6: ldarg.2 IL_0AD7: ldloc.s 28 (PathUnit+Position) IL_0AD9: callvirt virtual System.Boolean CitizenAI::SpawnVehicle(System.UInt16 instanceID, CitizenInstance& citizenData, Position pathPos) IL_0ADE: brtrue => Label68 IL_0AE3: ldarg.0 IL_0AE4: ldarg.1 IL_0AE5: ldarg.2 IL_0AE6: call System.Void CitizenAI::InvalidPath(System.UInt16 instanceID, CitizenInstance& citizenData) IL_0AEB: Label68 IL_0AEB: ldloc.2 IL_0AEC: br => Label138 IL_0AF1: Label66 IL_0AF1: br => Label69 IL_0AF6: Label62 IL_0AF6: ldloc.s 36 (NetInfo+LaneType) IL_0AF8: ldc.i4.2 IL_0AF9: beq => Label70 IL_0AFE: ldarg.0 IL_0AFF: ldarg.1 IL_0B00: ldarg.2 IL_0B01: call System.Void CitizenAI::InvalidPath(System.UInt16 instanceID, CitizenInstance& citizenData) IL_0B06: ldloc.2 IL_0B07: br => Label139 IL_0B0C: Label70 IL_0B0C: ldarg.2 IL_0B0D: dup IL_0B0E: ldfld Flags CitizenInstance::m_flags IL_0B13: ldc.i4 -2097153 IL_0B18: and IL_0B19: stfld Flags CitizenInstance::m_flags IL_0B1E: ldarg.2 IL_0B1F: ldfld Flags CitizenInstance::m_flags IL_0B24: ldc.i4 1048576 IL_0B29: and IL_0B2A: brfalse => Label71 IL_0B2F: ldloc.1 IL_0B30: ldfld Array16`1 NetManager::m_segments IL_0B35: ldfld NetSegment[] Array16`1::m_buffer IL_0B3A: ldloca.s 28 (PathUnit+Position) IL_0B3C: ldfld System.UInt16 Position::m_segment IL_0B41: ldelema NetSegment IL_0B46: ldfld Flags NetSegment::m_flags IL_0B4B: ldc.i4 8388608 IL_0B50: and IL_0B51: brfalse => Label72 IL_0B56: ldarg.2 IL_0B57: ldfld System.UInt32 CitizenInstance::m_citizen IL_0B5C: brfalse => Label73 IL_0B61: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0B66: ldfld Array32`1 CitizenManager::m_citizens IL_0B6B: ldfld Citizen[] Array32`1::m_buffer IL_0B70: ldarg.2 IL_0B71: ldfld System.UInt32 CitizenInstance::m_citizen IL_0B76: conv.u IL_0B77: ldelema Citizen IL_0B7C: ldarg.2 IL_0B7D: ldfld System.UInt32 CitizenInstance::m_citizen IL_0B82: ldc.i4.0 IL_0B83: ldc.i4.0 IL_0B84: call System.Void Citizen::SetVehicle(System.UInt32 citizenID, System.UInt16 vehicleID, System.UInt32 unitID) IL_0B89: Label73 IL_0B89: ldarg.2 IL_0B8A: dup IL_0B8B: ldfld Flags CitizenInstance::m_flags IL_0B90: ldc.i4 -1048577 IL_0B95: and IL_0B96: stfld Flags CitizenInstance::m_flags IL_0B9B: Label69 IL_0B9B: Label71 IL_0B9B: Label72 IL_0B9B: ldloc.s 37 (System.UInt32) IL_0B9D: ldloc.2 IL_0B9E: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0BA3: ldloca.s 48 (System.Byte) IL_0BA5: call static System.Void PathUnit::CalculatePathPositionOffset(System.UInt32 laneID, UnityEngine.Vector3 refPos, System.Byte& offset) IL_0BAA: ldloca.s 28 (PathUnit+Position) IL_0BAC: ldfld System.UInt16 Position::m_segment IL_0BB1: ldloca.s 4 (PathUnit+Position) IL_0BB3: ldfld System.UInt16 Position::m_segment IL_0BB8: beq => Label74 IL_0BBD: ldloc.1 IL_0BBE: ldfld Array16`1 NetManager::m_segments IL_0BC3: ldfld NetSegment[] Array16`1::m_buffer IL_0BC8: ldloca.s 28 (PathUnit+Position) IL_0BCA: ldfld System.UInt16 Position::m_segment IL_0BCF: ldelema NetSegment IL_0BD4: ldfld Flags NetSegment::m_flags IL_0BD9: ldc.i4 4194312 IL_0BDE: and IL_0BDF: brfalse => Label75 IL_0BE4: ldarg.0 IL_0BE5: ldarg.1 IL_0BE6: ldarg.2 IL_0BE7: call System.Void CitizenAI::InvalidPath(System.UInt16 instanceID, CitizenInstance& citizenData) IL_0BEC: ldloc.2 IL_0BED: br => Label140 IL_0BF2: Label75 IL_0BF2: ldloca.s 49 (ColossalFramework.Math.Bezier3) IL_0BF4: initobj ColossalFramework.Math.Bezier3 IL_0BFA: ldloc.1 IL_0BFB: ldfld Array32`1 NetManager::m_lanes IL_0C00: ldfld NetLane[] Array32`1::m_buffer IL_0C05: ldloc.s 11 (System.UInt32) IL_0C07: conv.u IL_0C08: ldelema NetLane IL_0C0D: ldloca.s 4 (PathUnit+Position) IL_0C0F: ldfld System.Byte Position::m_offset IL_0C14: conv.r4 IL_0C15: ldc.r4 0.003921569 IL_0C1A: mul IL_0C1B: ldloca.s 49 (ColossalFramework.Math.Bezier3) IL_0C1D: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a IL_0C22: ldloca.s 50 (UnityEngine.Vector3) IL_0C24: call System.Void NetLane::CalculatePositionAndDirection(System.Single laneOffset, UnityEngine.Vector3& position, UnityEngine.Vector3& direction) IL_0C29: ldloc.1 IL_0C2A: ldfld Array32`1 NetManager::m_lanes IL_0C2F: ldfld NetLane[] Array32`1::m_buffer IL_0C34: ldloc.s 37 (System.UInt32) IL_0C36: conv.u IL_0C37: ldelema NetLane IL_0C3C: ldloc.s 48 (System.Byte) IL_0C3E: conv.r4 IL_0C3F: ldc.r4 0.003921569 IL_0C44: mul IL_0C45: ldloca.s 49 (ColossalFramework.Math.Bezier3) IL_0C47: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::d IL_0C4C: ldloca.s 51 (UnityEngine.Vector3) IL_0C4E: call System.Void NetLane::CalculatePositionAndDirection(System.Single laneOffset, UnityEngine.Vector3& position, UnityEngine.Vector3& direction) IL_0C53: ldloca.s 4 (PathUnit+Position) IL_0C55: ldfld System.Byte Position::m_offset IL_0C5A: brtrue => Label76 IL_0C5F: ldloc.s 50 (UnityEngine.Vector3) IL_0C61: call static UnityEngine.Vector3 UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a) IL_0C66: stloc.s 50 (UnityEngine.Vector3) IL_0C68: Label76 IL_0C68: ldloc.s 48 (System.Byte) IL_0C6A: ldloca.s 28 (PathUnit+Position) IL_0C6C: ldfld System.Byte Position::m_offset IL_0C71: bge => Label77 IL_0C76: ldloc.s 51 (UnityEngine.Vector3) IL_0C78: call static UnityEngine.Vector3 UnityEngine.Vector3::op_UnaryNegation(UnityEngine.Vector3 a) IL_0C7D: stloc.s 51 (UnityEngine.Vector3) IL_0C7F: Label77 IL_0C7F: ldloca.s 50 (UnityEngine.Vector3) IL_0C81: call System.Void UnityEngine.Vector3::Normalize() IL_0C86: ldloca.s 51 (UnityEngine.Vector3) IL_0C88: call System.Void UnityEngine.Vector3::Normalize() IL_0C8D: ldloca.s 49 (ColossalFramework.Math.Bezier3) IL_0C8F: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a IL_0C94: ldloc.s 50 (UnityEngine.Vector3) IL_0C96: ldloca.s 49 (ColossalFramework.Math.Bezier3) IL_0C98: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::d IL_0C9D: ldloc.s 51 (UnityEngine.Vector3) IL_0C9F: ldc.i4.1 IL_0CA0: ldc.i4.1 IL_0CA1: ldloca.s 49 (ColossalFramework.Math.Bezier3) IL_0CA3: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::b IL_0CA8: ldloca.s 49 (ColossalFramework.Math.Bezier3) IL_0CAA: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::c IL_0CAF: ldloca.s 52 (System.Single) IL_0CB1: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2, System.Single& distance) IL_0CB6: ldloc.s 52 (System.Single) IL_0CB8: ldc.r4 1 IL_0CBD: blt.un => Label78 IL_0CC2: ldloc.s 52 (System.Single) IL_0CC4: ldc.r4 128 IL_0CC9: ldloc 4 IL_0CCD: call static System.Single TrafficManager.Patch._CitizenAI.GetPathTargetPositionPatch::GetGap(System.Single gap, Position pathPos) IL_0CD2: ble.un => Label79 IL_0CD7: ldarg.0 IL_0CD8: ldarg.1 IL_0CD9: ldarg.2 IL_0CDA: call System.Void CitizenAI::InvalidPath(System.UInt16 instanceID, CitizenInstance& citizenData) IL_0CDF: ldloc.2 IL_0CE0: br => Label141 IL_0CE5: Label79 IL_0CE5: ldarg.2 IL_0CE6: ldfld System.Byte CitizenInstance::m_lastPathOffset IL_0CEB: brtrue => Label80 IL_0CF0: ldarg.0 IL_0CF1: ldarg.1 IL_0CF2: ldarg.2 IL_0CF3: ldloc.s 4 (PathUnit+Position) IL_0CF5: ldloc.s 28 (PathUnit+Position) IL_0CF7: ldloca.s 4 (PathUnit+Position) IL_0CF9: ldfld System.Byte Position::m_offset IL_0CFE: ldloc.s 48 (System.Byte) IL_0D00: ldloc.s 49 (ColossalFramework.Math.Bezier3) IL_0D02: callvirt virtual System.Boolean CitizenAI::CheckSegmentChange(System.UInt16 instanceID, CitizenInstance& citizenData, Position prevPos, Position nextPos, System.Int32 prevOffset, System.Int32 nextOffset, ColossalFramework.Math.Bezier3 bezier) IL_0D07: brtrue => Label81 IL_0D0C: call static UnityEngine.Vector3 UnityEngine.Vector3::get_up() IL_0D11: ldloc.s 50 (UnityEngine.Vector3) IL_0D13: call static UnityEngine.Vector3 UnityEngine.Vector3::Cross(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs) IL_0D18: stloc.s 54 (UnityEngine.Vector3) IL_0D1A: ldloca.s 54 (UnityEngine.Vector3) IL_0D1C: call UnityEngine.Vector3 UnityEngine.Vector3::get_normalized() IL_0D21: ldloc.s 16 (System.Single) IL_0D23: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0D28: stloc.s 53 (UnityEngine.Vector3) IL_0D2A: ldloca.s 49 (ColossalFramework.Math.Bezier3) IL_0D2C: ldfld UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a IL_0D31: ldloc.s 53 (UnityEngine.Vector3) IL_0D33: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0D38: call static UnityEngine.Vector4 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector3 v) IL_0D3D: br => Label142 IL_0D42: Label80 IL_0D42: Label81 IL_0D42: ldloca.s 49 (ColossalFramework.Math.Bezier3) IL_0D44: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a IL_0D49: ldfld System.Single UnityEngine.Vector3::y IL_0D4E: ldloca.s 49 (ColossalFramework.Math.Bezier3) IL_0D50: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::d IL_0D55: ldfld System.Single UnityEngine.Vector3::y IL_0D5A: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0D5F: stloc.s 55 (System.Single) IL_0D61: ldloca.s 49 (ColossalFramework.Math.Bezier3) IL_0D63: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::a IL_0D68: ldfld System.Single UnityEngine.Vector3::y IL_0D6D: ldloca.s 49 (ColossalFramework.Math.Bezier3) IL_0D6F: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::d IL_0D74: ldfld System.Single UnityEngine.Vector3::y IL_0D79: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0D7E: stloc.s 56 (System.Single) IL_0D80: ldloca.s 49 (ColossalFramework.Math.Bezier3) IL_0D82: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::b IL_0D87: ldloca.s 49 (ColossalFramework.Math.Bezier3) IL_0D89: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::b IL_0D8E: ldfld System.Single UnityEngine.Vector3::y IL_0D93: ldloc.s 55 (System.Single) IL_0D95: ldloc.s 56 (System.Single) IL_0D97: call static System.Single UnityEngine.Mathf::Clamp(System.Single value, System.Single min, System.Single max) IL_0D9C: stfld System.Single UnityEngine.Vector3::y IL_0DA1: ldloca.s 49 (ColossalFramework.Math.Bezier3) IL_0DA3: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::c IL_0DA8: ldloca.s 49 (ColossalFramework.Math.Bezier3) IL_0DAA: ldflda UnityEngine.Vector3 ColossalFramework.Math.Bezier3::c IL_0DAF: ldfld System.Single UnityEngine.Vector3::y IL_0DB4: ldloc.s 55 (System.Single) IL_0DB6: ldloc.s 56 (System.Single) IL_0DB8: call static System.Single UnityEngine.Mathf::Clamp(System.Single value, System.Single min, System.Single max) IL_0DBD: stfld System.Single UnityEngine.Vector3::y IL_0DC2: ldloc.s 29 (NetInfo) IL_0DC4: ldfld Lane[] NetInfo::m_lanes IL_0DC9: ldloca.s 28 (PathUnit+Position) IL_0DCB: ldfld System.Byte Position::m_lane IL_0DD0: ldelem.ref IL_0DD1: ldfld System.Single Lane::m_width IL_0DD6: stloc.s 57 (System.Single) IL_0DD8: br => Label82 IL_0DDD: Label91 IL_0DDD: ldarg.s 4 IL_0DDF: call static System.Single UnityEngine.Mathf::Sqrt(System.Single f) IL_0DE4: ldloc.2 IL_0DE5: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0DEA: ldarg.3 IL_0DEB: ldfld UnityEngine.Vector3 Frame::m_position IL_0DF0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0DF5: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_0DFA: sub IL_0DFB: stloc.s 58 (System.Single) IL_0DFD: ldloc.s 58 (System.Single) IL_0DFF: ldc.r4 0 IL_0E04: bge.un => Label83 IL_0E09: ldc.i4.8 IL_0E0A: stloc.s 59 (System.Int32) IL_0E0C: br => Label84 IL_0E11: Label83 IL_0E11: ldc.i4.8 IL_0E12: ldloc.s 58 (System.Single) IL_0E14: ldc.r4 256 IL_0E19: mul IL_0E1A: ldloc.s 52 (System.Single) IL_0E1C: ldc.r4 1 IL_0E21: add IL_0E22: div IL_0E23: call static System.Int32 UnityEngine.Mathf::CeilToInt(System.Single f) IL_0E28: add IL_0E29: stloc.s 59 (System.Int32) IL_0E2B: Label84 IL_0E2B: ldarg.2 IL_0E2C: ldarg.2 IL_0E2D: ldfld System.Byte CitizenInstance::m_lastPathOffset IL_0E32: ldloc.s 59 (System.Int32) IL_0E34: add IL_0E35: ldc.i4 255 IL_0E3A: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0E3F: conv.u1 IL_0E40: stfld System.Byte CitizenInstance::m_lastPathOffset IL_0E45: ldarg.2 IL_0E46: ldfld System.Byte CitizenInstance::m_lastPathOffset IL_0E4B: conv.r4 IL_0E4C: ldc.r4 0.003921569 IL_0E51: mul IL_0E52: stloc.s 60 (System.Single) IL_0E54: ldloca.s 49 (ColossalFramework.Math.Bezier3) IL_0E56: ldloc.s 60 (System.Single) IL_0E58: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0E5D: call static UnityEngine.Vector4 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector3 v) IL_0E62: stloc.2 IL_0E63: ldloca.s 2 (UnityEngine.Vector4) IL_0E65: ldloc.s 17 (System.Single) IL_0E67: ldloc.s 38 (System.Single) IL_0E69: ldloc.s 17 (System.Single) IL_0E6B: sub IL_0E6C: ldloc.s 60 (System.Single) IL_0E6E: mul IL_0E6F: add IL_0E70: stfld System.Single UnityEngine.Vector4::w IL_0E75: ldc.r4 0 IL_0E7A: ldloc.s 15 (System.Single) IL_0E7C: ldloc.s 57 (System.Single) IL_0E7E: ldloc.s 60 (System.Single) IL_0E80: call static System.Single UnityEngine.Mathf::Lerp(System.Single a, System.Single b, System.Single t) IL_0E85: ldc.r4 1 IL_0E8A: sub IL_0E8B: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0E90: ldloc.s 13 (System.Single) IL_0E92: mul IL_0E93: stloc.s 16 (System.Single) IL_0E95: ldloca.s 49 (ColossalFramework.Math.Bezier3) IL_0E97: ldloc.s 60 (System.Single) IL_0E99: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Tangent(System.Single t) IL_0E9E: stloc.s 61 (UnityEngine.Vector3) IL_0EA0: call static UnityEngine.Vector3 UnityEngine.Vector3::get_up() IL_0EA5: ldloc.s 61 (UnityEngine.Vector3) IL_0EA7: call static UnityEngine.Vector3 UnityEngine.Vector3::Cross(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs) IL_0EAC: stloc.s 63 (UnityEngine.Vector3) IL_0EAE: ldloca.s 63 (UnityEngine.Vector3) IL_0EB0: call UnityEngine.Vector3 UnityEngine.Vector3::get_normalized() IL_0EB5: ldloc.s 16 (System.Single) IL_0EB7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0EBC: stloc.s 62 (UnityEngine.Vector3) IL_0EBE: ldloca.s 2 (UnityEngine.Vector4) IL_0EC0: dup IL_0EC1: ldfld System.Single UnityEngine.Vector4::x IL_0EC6: ldloca.s 62 (UnityEngine.Vector3) IL_0EC8: ldfld System.Single UnityEngine.Vector3::x IL_0ECD: add IL_0ECE: stfld System.Single UnityEngine.Vector4::x IL_0ED3: ldloca.s 2 (UnityEngine.Vector4) IL_0ED5: dup IL_0ED6: ldfld System.Single UnityEngine.Vector4::z IL_0EDB: ldloca.s 62 (UnityEngine.Vector3) IL_0EDD: ldfld System.Single UnityEngine.Vector3::z IL_0EE2: add IL_0EE3: stfld System.Single UnityEngine.Vector4::z IL_0EE8: ldloc.2 IL_0EE9: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0EEE: ldarg.3 IL_0EEF: ldfld UnityEngine.Vector3 Frame::m_position IL_0EF4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0EF9: call static System.Single ColossalFramework.Math.VectorUtils::LengthSqrXZ(UnityEngine.Vector3 v) IL_0EFE: stloc.3 IL_0EFF: ldloc.3 IL_0F00: ldarg.s 4 IL_0F02: blt.un => Label85 IL_0F07: ldarg.2 IL_0F08: ldfld Flags CitizenInstance::m_flags IL_0F0D: ldc.i4 -524421 IL_0F12: and IL_0F13: stloc.s 64 (CitizenInstance+Flags) IL_0F15: ldloc.s 64 (CitizenInstance+Flags) IL_0F17: ldloc.s 14 (NetInfo) IL_0F19: ldfld Flags NetInfo::m_setCitizenFlags IL_0F1E: ldloc.s 29 (NetInfo) IL_0F20: ldfld Flags NetInfo::m_setCitizenFlags IL_0F25: and IL_0F26: or IL_0F27: stloc.s 64 (CitizenInstance+Flags) IL_0F29: ldloc.s 64 (CitizenInstance+Flags) IL_0F2B: ldloc.s 14 (NetInfo) IL_0F2D: ldfld Flags NetInfo::m_setCitizenFlags IL_0F32: ldloc.s 29 (NetInfo) IL_0F34: ldfld Flags NetInfo::m_setCitizenFlags IL_0F39: or IL_0F3A: ldc.i4 524288 IL_0F3F: and IL_0F40: or IL_0F41: stloc.s 64 (CitizenInstance+Flags) IL_0F43: ldloc.s 64 (CitizenInstance+Flags) IL_0F45: ldc.i4.4 IL_0F46: and IL_0F47: brtrue => Label86 IL_0F4C: ldloc.s 14 (NetInfo) IL_0F4E: ldfld Flags NetInfo::m_setCitizenFlags IL_0F53: ldloc.s 29 (NetInfo) IL_0F55: ldfld Flags NetInfo::m_setCitizenFlags IL_0F5A: or IL_0F5B: ldc.i4.4 IL_0F5C: and IL_0F5D: brfalse => Label87 IL_0F62: ldloc.s 64 (CitizenInstance+Flags) IL_0F64: ldc.i4 524288 IL_0F69: or IL_0F6A: stloc.s 64 (CitizenInstance+Flags) IL_0F6C: Label86 IL_0F6C: Label87 IL_0F6C: ldarg.2 IL_0F6D: ldloc.s 64 (CitizenInstance+Flags) IL_0F6F: stfld Flags CitizenInstance::m_flags IL_0F74: ldloc.2 IL_0F75: br => Label143 IL_0F7A: Label85 IL_0F7A: ldarg.2 IL_0F7B: ldfld Flags CitizenInstance::m_flags IL_0F80: ldc.i4 32768 IL_0F85: and IL_0F86: brtrue => Label88 IL_0F8B: ldarg.2 IL_0F8C: dup IL_0F8D: ldfld Flags CitizenInstance::m_flags IL_0F92: ldc.i4 32768 IL_0F97: or IL_0F98: stfld Flags CitizenInstance::m_flags IL_0F9D: ldarg.2 IL_0F9E: ldfld Flags CitizenInstance::m_flags IL_0FA3: ldc.i4 1048576 IL_0FA8: and IL_0FA9: brtrue => Label89 IL_0FAE: ldloc.1 IL_0FAF: ldfld Array16`1 NetManager::m_segments IL_0FB4: ldfld NetSegment[] Array16`1::m_buffer IL_0FB9: ldloca.s 28 (PathUnit+Position) IL_0FBB: ldfld System.UInt16 Position::m_segment IL_0FC0: ldelema NetSegment IL_0FC5: ldfld Flags NetSegment::m_flags IL_0FCA: ldc.i4 8388608 IL_0FCF: and IL_0FD0: brtrue => Label90 IL_0FD5: ldarg.0 IL_0FD6: ldarg.1 IL_0FD7: ldarg.2 IL_0FD8: ldloc.s 4 (PathUnit+Position) IL_0FDA: callvirt virtual System.Boolean CitizenAI::SpawnBicycle(System.UInt16 instanceID, CitizenInstance& citizenData, Position pathPos) IL_0FDF: pop IL_0FE0: Label82 IL_0FE0: Label88 IL_0FE0: Label89 IL_0FE0: Label90 IL_0FE0: ldarg.2 IL_0FE1: ldfld System.Byte CitizenInstance::m_lastPathOffset IL_0FE6: ldc.i4 255 IL_0FEB: blt => Label91 IL_0FF0: Label78 IL_0FF0: br => Label92 IL_0FF5: Label74 IL_0FF5: ldloc.s 37 (System.UInt32) IL_0FF7: ldloc.s 11 (System.UInt32) IL_0FF9: beq => Label93 IL_0FFE: ldloca.s 4 (PathUnit+Position) IL_1000: ldfld System.Byte Position::m_offset IL_1005: ldc.i4 128 IL_100A: blt => Label94 IL_100F: ldc.i4 255 IL_1014: br => Label95 IL_1019: Label94 IL_1019: ldc.i4.0 IL_101A: Label95 IL_101A: stloc.s 65 (System.Int32) IL_101C: ldloc.s 48 (System.Byte) IL_101E: ldc.i4 128 IL_1023: blt => Label96 IL_1028: ldc.i4 255 IL_102D: br => Label97 IL_1032: Label96 IL_1032: ldc.i4.0 IL_1033: Label97 IL_1033: stloc.s 66 (System.Int32) IL_1035: ldloc.1 IL_1036: ldfld Array32`1 NetManager::m_lanes IL_103B: ldfld NetLane[] Array32`1::m_buffer IL_1040: ldloc.s 11 (System.UInt32) IL_1042: conv.u IL_1043: ldelema NetLane IL_1048: ldloc.s 65 (System.Int32) IL_104A: conv.r4 IL_104B: ldc.r4 0.003921569 IL_1050: mul IL_1051: ldloca.s 67 (ColossalFramework.Math.Segment3) IL_1053: ldflda UnityEngine.Vector3 ColossalFramework.Math.Segment3::a IL_1058: ldloca.s 68 (UnityEngine.Vector3) IL_105A: call System.Void NetLane::CalculatePositionAndDirection(System.Single laneOffset, UnityEngine.Vector3& position, UnityEngine.Vector3& direction) IL_105F: ldloc.s 65 (System.Int32) IL_1061: brtrue => Label98 IL_1066: ldloca.s 67 (ColossalFramework.Math.Segment3) IL_1068: dup IL_1069: ldfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a IL_106E: ldloca.s 68 (UnityEngine.Vector3) IL_1070: call UnityEngine.Vector3 UnityEngine.Vector3::get_normalized() IL_1075: ldc.r4 1.5 IL_107A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_107F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_1084: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a IL_1089: br => Label99 IL_108E: Label98 IL_108E: ldloc.s 65 (System.Int32) IL_1090: ldc.i4 255 IL_1095: bne.un => Label100 IL_109A: ldloca.s 67 (ColossalFramework.Math.Segment3) IL_109C: dup IL_109D: ldfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a IL_10A2: ldloca.s 68 (UnityEngine.Vector3) IL_10A4: call UnityEngine.Vector3 UnityEngine.Vector3::get_normalized() IL_10A9: ldc.r4 1.5 IL_10AE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_10B3: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_10B8: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a IL_10BD: Label99 IL_10BD: Label100 IL_10BD: ldloc.1 IL_10BE: ldfld Array32`1 NetManager::m_lanes IL_10C3: ldfld NetLane[] Array32`1::m_buffer IL_10C8: ldloc.s 37 (System.UInt32) IL_10CA: conv.u IL_10CB: ldelema NetLane IL_10D0: ldloc.s 66 (System.Int32) IL_10D2: conv.r4 IL_10D3: ldc.r4 0.003921569 IL_10D8: mul IL_10D9: ldloca.s 67 (ColossalFramework.Math.Segment3) IL_10DB: ldflda UnityEngine.Vector3 ColossalFramework.Math.Segment3::b IL_10E0: ldloca.s 69 (UnityEngine.Vector3) IL_10E2: call System.Void NetLane::CalculatePositionAndDirection(System.Single laneOffset, UnityEngine.Vector3& position, UnityEngine.Vector3& direction) IL_10E7: ldloc.s 66 (System.Int32) IL_10E9: brtrue => Label101 IL_10EE: ldloca.s 67 (ColossalFramework.Math.Segment3) IL_10F0: dup IL_10F1: ldfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b IL_10F6: ldloca.s 69 (UnityEngine.Vector3) IL_10F8: call UnityEngine.Vector3 UnityEngine.Vector3::get_normalized() IL_10FD: ldc.r4 1.5 IL_1102: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_1107: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_110C: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b IL_1111: br => Label102 IL_1116: Label101 IL_1116: ldloc.s 66 (System.Int32) IL_1118: ldc.i4 255 IL_111D: bne.un => Label103 IL_1122: ldloca.s 67 (ColossalFramework.Math.Segment3) IL_1124: dup IL_1125: ldfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b IL_112A: ldloca.s 69 (UnityEngine.Vector3) IL_112C: call UnityEngine.Vector3 UnityEngine.Vector3::get_normalized() IL_1131: ldc.r4 1.5 IL_1136: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_113B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_1140: stfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b IL_1145: Label102 IL_1145: Label103 IL_1145: call static UnityEngine.Vector3 UnityEngine.Vector3::get_up() IL_114A: ldloca.s 67 (ColossalFramework.Math.Segment3) IL_114C: ldfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::b IL_1151: ldloca.s 67 (ColossalFramework.Math.Segment3) IL_1153: ldfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a IL_1158: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_115D: call static UnityEngine.Vector3 UnityEngine.Vector3::Cross(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs) IL_1162: stloc.s 71 (UnityEngine.Vector3) IL_1164: ldloca.s 71 (UnityEngine.Vector3) IL_1166: call UnityEngine.Vector3 UnityEngine.Vector3::get_normalized() IL_116B: ldloc.s 13 (System.Single) IL_116D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_1172: stloc.s 70 (UnityEngine.Vector3) IL_1174: ldarg.2 IL_1175: ldfld System.Byte CitizenInstance::m_lastPathOffset IL_117A: brtrue => Label104 IL_117F: ldloc.s 11 (System.UInt32) IL_1181: ldloc.s 37 (System.UInt32) IL_1183: beq => Label105 IL_1188: ldarg.0 IL_1189: ldarg.1 IL_118A: ldarg.2 IL_118B: ldloc.s 4 (PathUnit+Position) IL_118D: ldloc.s 28 (PathUnit+Position) IL_118F: ldloc.s 65 (System.Int32) IL_1191: ldloc.s 66 (System.Int32) IL_1193: callvirt virtual System.Boolean CitizenAI::CheckLaneChange(System.UInt16 instanceID, CitizenInstance& citizenData, Position prevPos, Position nextPos, System.Int32 prevOffset, System.Int32 nextOffset) IL_1198: brtrue => Label106 IL_119D: ldloca.s 67 (ColossalFramework.Math.Segment3) IL_119F: ldfld UnityEngine.Vector3 ColossalFramework.Math.Segment3::a IL_11A4: ldloc.s 70 (UnityEngine.Vector3) IL_11A6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_11AB: call static UnityEngine.Vector4 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector3 v) IL_11B0: br => Label144 IL_11B5: Label104 IL_11B5: Label105 IL_11B5: Label106 IL_11B5: ldloc.s 14 (NetInfo) IL_11B7: ldfld Lane[] NetInfo::m_lanes IL_11BC: ldloca.s 4 (PathUnit+Position) IL_11BE: ldfld System.Byte Position::m_lane IL_11C3: ldelem.ref IL_11C4: ldfld System.Single Lane::m_position IL_11C9: ldloc.s 29 (NetInfo) IL_11CB: ldfld Lane[] NetInfo::m_lanes IL_11D0: ldloca.s 28 (PathUnit+Position) IL_11D2: ldfld System.Byte Position::m_lane IL_11D7: ldelem.ref IL_11D8: ldfld System.Single Lane::m_position IL_11DD: sub IL_11DE: call static System.Single UnityEngine.Mathf::Abs(System.Single f) IL_11E3: stloc.s 72 (System.Single) IL_11E5: ldloc.s 14 (NetInfo) IL_11E7: ldfld System.Single NetInfo::m_halfWidth IL_11EC: ldloc.s 14 (NetInfo) IL_11EE: ldfld System.Single NetInfo::m_pavementWidth IL_11F3: sub IL_11F4: ldc.r4 1 IL_11F9: ldloc.s 72 (System.Single) IL_11FB: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_1200: div IL_1201: stloc.s 73 (System.Single) IL_1203: ldloc.s 14 (NetInfo) IL_1205: ldfld System.Single NetInfo::m_surfaceLevel IL_120A: ldloc.s 14 (NetInfo) IL_120C: ldfld Lane[] NetInfo::m_lanes IL_1211: ldloca.s 4 (PathUnit+Position) IL_1213: ldfld System.Byte Position::m_lane IL_1218: ldelem.ref IL_1219: ldfld System.Single Lane::m_verticalOffset IL_121E: sub IL_121F: stloc.s 74 (System.Single) IL_1221: br => Label107 IL_1226: Label117 IL_1226: ldarg.s 4 IL_1228: call static System.Single UnityEngine.Mathf::Sqrt(System.Single f) IL_122D: ldloc.2 IL_122E: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_1233: ldarg.3 IL_1234: ldfld UnityEngine.Vector3 Frame::m_position IL_1239: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_123E: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_1243: sub IL_1244: stloc.s 75 (System.Single) IL_1246: ldloc.s 75 (System.Single) IL_1248: ldc.r4 0 IL_124D: bge.un => Label108 IL_1252: ldc.i4.8 IL_1253: stloc.s 76 (System.Int32) IL_1255: br => Label109 IL_125A: Label108 IL_125A: ldc.i4.8 IL_125B: ldloc.s 75 (System.Single) IL_125D: ldc.r4 256 IL_1262: mul IL_1263: ldloc.s 72 (System.Single) IL_1265: ldc.r4 1 IL_126A: add IL_126B: div IL_126C: call static System.Int32 UnityEngine.Mathf::CeilToInt(System.Single f) IL_1271: add IL_1272: stloc.s 76 (System.Int32) IL_1274: Label109 IL_1274: ldarg.2 IL_1275: ldarg.2 IL_1276: ldfld System.Byte CitizenInstance::m_lastPathOffset IL_127B: ldloc.s 76 (System.Int32) IL_127D: add IL_127E: ldc.i4 255 IL_1283: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_1288: conv.u1 IL_1289: stfld System.Byte CitizenInstance::m_lastPathOffset IL_128E: ldarg.2 IL_128F: ldfld System.Byte CitizenInstance::m_lastPathOffset IL_1294: conv.r4 IL_1295: ldc.r4 0.003921569 IL_129A: mul IL_129B: stloc.s 77 (System.Single) IL_129D: ldloca.s 67 (ColossalFramework.Math.Segment3) IL_129F: ldloc.s 77 (System.Single) IL_12A1: call UnityEngine.Vector3 ColossalFramework.Math.Segment3::Position(System.Single t) IL_12A6: ldloc.s 70 (UnityEngine.Vector3) IL_12A8: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_12AD: call static UnityEngine.Vector4 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector3 v) IL_12B2: stloc.2 IL_12B3: ldloca.s 2 (UnityEngine.Vector4) IL_12B5: ldloc.s 17 (System.Single) IL_12B7: ldloc.s 38 (System.Single) IL_12B9: ldloc.s 17 (System.Single) IL_12BB: sub IL_12BC: ldloc.s 77 (System.Single) IL_12BE: mul IL_12BF: add IL_12C0: stfld System.Single UnityEngine.Vector4::w IL_12C5: ldloc.s 77 (System.Single) IL_12C7: ldc.r4 0.5 IL_12CC: sub IL_12CD: call static System.Single UnityEngine.Mathf::Abs(System.Single f) IL_12D2: ldloc.s 73 (System.Single) IL_12D4: bge.un => Label110 IL_12D9: ldloca.s 2 (UnityEngine.Vector4) IL_12DB: dup IL_12DC: ldfld System.Single UnityEngine.Vector4::y IL_12E1: ldloc.s 74 (System.Single) IL_12E3: add IL_12E4: stfld System.Single UnityEngine.Vector4::y IL_12E9: Label110 IL_12E9: ldloc.2 IL_12EA: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_12EF: ldarg.3 IL_12F0: ldfld UnityEngine.Vector3 Frame::m_position IL_12F5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_12FA: call static System.Single ColossalFramework.Math.VectorUtils::LengthSqrXZ(UnityEngine.Vector3 v) IL_12FF: stloc.3 IL_1300: ldloc.3 IL_1301: ldarg.s 4 IL_1303: blt.un => Label111 IL_1308: ldarg.2 IL_1309: ldfld Flags CitizenInstance::m_flags IL_130E: ldc.i4 -524421 IL_1313: and IL_1314: stloc.s 78 (CitizenInstance+Flags) IL_1316: ldloc.s 78 (CitizenInstance+Flags) IL_1318: ldloc.s 14 (NetInfo) IL_131A: ldfld Flags NetInfo::m_setCitizenFlags IL_131F: ldloc.s 29 (NetInfo) IL_1321: ldfld Flags NetInfo::m_setCitizenFlags IL_1326: and IL_1327: or IL_1328: stloc.s 78 (CitizenInstance+Flags) IL_132A: ldloc.s 78 (CitizenInstance+Flags) IL_132C: ldloc.s 14 (NetInfo) IL_132E: ldfld Flags NetInfo::m_setCitizenFlags IL_1333: ldloc.s 29 (NetInfo) IL_1335: ldfld Flags NetInfo::m_setCitizenFlags IL_133A: or IL_133B: ldc.i4 524288 IL_1340: and IL_1341: or IL_1342: stloc.s 78 (CitizenInstance+Flags) IL_1344: ldloc.s 78 (CitizenInstance+Flags) IL_1346: ldc.i4.4 IL_1347: and IL_1348: brtrue => Label112 IL_134D: ldloc.s 14 (NetInfo) IL_134F: ldfld Flags NetInfo::m_setCitizenFlags IL_1354: ldloc.s 29 (NetInfo) IL_1356: ldfld Flags NetInfo::m_setCitizenFlags IL_135B: or IL_135C: ldc.i4.4 IL_135D: and IL_135E: brfalse => Label113 IL_1363: ldloc.s 78 (CitizenInstance+Flags) IL_1365: ldc.i4 524288 IL_136A: or IL_136B: stloc.s 78 (CitizenInstance+Flags) IL_136D: Label112 IL_136D: Label113 IL_136D: ldarg.2 IL_136E: ldloc.s 78 (CitizenInstance+Flags) IL_1370: stfld Flags CitizenInstance::m_flags IL_1375: ldloc.2 IL_1376: br => Label145 IL_137B: Label111 IL_137B: ldarg.2 IL_137C: ldfld Flags CitizenInstance::m_flags IL_1381: ldc.i4 32768 IL_1386: and IL_1387: brtrue => Label114 IL_138C: ldarg.2 IL_138D: dup IL_138E: ldfld Flags CitizenInstance::m_flags IL_1393: ldc.i4 32768 IL_1398: or IL_1399: stfld Flags CitizenInstance::m_flags IL_139E: ldloc.1 IL_139F: ldfld Array16`1 NetManager::m_segments IL_13A4: ldfld NetSegment[] Array16`1::m_buffer IL_13A9: ldloca.s 28 (PathUnit+Position) IL_13AB: ldfld System.UInt16 Position::m_segment IL_13B0: ldelema NetSegment IL_13B5: ldfld Flags NetSegment::m_flags IL_13BA: ldc.i4 8388608 IL_13BF: and IL_13C0: brtrue => Label115 IL_13C5: ldarg.2 IL_13C6: ldfld Flags CitizenInstance::m_flags IL_13CB: ldc.i4 1048576 IL_13D0: and IL_13D1: brtrue => Label116 IL_13D6: ldarg.0 IL_13D7: ldarg.1 IL_13D8: ldarg.2 IL_13D9: ldloc.s 4 (PathUnit+Position) IL_13DB: callvirt virtual System.Boolean CitizenAI::SpawnBicycle(System.UInt16 instanceID, CitizenInstance& citizenData, Position pathPos) IL_13E0: pop IL_13E1: Label107 IL_13E1: Label114 IL_13E1: Label115 IL_13E1: Label116 IL_13E1: ldarg.2 IL_13E2: ldfld System.Byte CitizenInstance::m_lastPathOffset IL_13E7: ldc.i4 255 IL_13EC: blt => Label117 IL_13F1: Label92 IL_13F1: Label93 IL_13F1: ldloc.1 IL_13F2: ldfld Array16`1 NetManager::m_segments IL_13F7: ldfld NetSegment[] Array16`1::m_buffer IL_13FC: ldloca.s 28 (PathUnit+Position) IL_13FE: ldfld System.UInt16 Position::m_segment IL_1403: ldelema NetSegment IL_1408: ldfld Flags NetSegment::m_flags IL_140D: ldc.i4.s 32 IL_140F: and IL_1410: brfalse => Label118 IL_1415: ldloc.1 IL_1416: ldfld Array16`1 NetManager::m_segments IL_141B: ldfld NetSegment[] Array16`1::m_buffer IL_1420: ldloca.s 4 (PathUnit+Position) IL_1422: ldfld System.UInt16 Position::m_segment IL_1427: ldelema NetSegment IL_142C: ldfld Flags NetSegment::m_flags IL_1431: ldc.i4.s 32 IL_1433: and IL_1434: brfalse => Label119 IL_1439: ldloc.s 39 (System.Boolean) IL_143B: brfalse => Label120 IL_1440: Label119 IL_1440: ldloca.s 28 (PathUnit+Position) IL_1442: ldfld System.UInt16 Position::m_segment IL_1447: ldc.r4 363 IL_144C: call static System.UInt16 NetSegment::FindOwnerBuilding(System.UInt16 segmentID, System.Single maxDistance) IL_1451: stloc.s 79 (System.UInt16) IL_1453: ldloc.s 79 (System.UInt16) IL_1455: brfalse => Label121 IL_145A: ldc.i4.0 IL_145B: stloc.s 80 (System.UInt16) IL_145D: ldloc.1 IL_145E: ldfld Array16`1 NetManager::m_segments IL_1463: ldfld NetSegment[] Array16`1::m_buffer IL_1468: ldloca.s 4 (PathUnit+Position) IL_146A: ldfld System.UInt16 Position::m_segment IL_146F: ldelema NetSegment IL_1474: ldfld Flags NetSegment::m_flags IL_1479: ldc.i4.s 32 IL_147B: and IL_147C: brfalse => Label122 IL_1481: ldloca.s 4 (PathUnit+Position) IL_1483: ldfld System.UInt16 Position::m_segment IL_1488: ldc.r4 363 IL_148D: call static System.UInt16 NetSegment::FindOwnerBuilding(System.UInt16 segmentID, System.Single maxDistance) IL_1492: stloc.s 80 (System.UInt16) IL_1494: Label122 IL_1494: ldloc.s 79 (System.UInt16) IL_1496: ldloc.s 80 (System.UInt16) IL_1498: beq => Label123 IL_149D: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_14A2: stloc.s 81 (BuildingManager) IL_14A4: ldloc.s 81 (BuildingManager) IL_14A6: ldfld Array16`1 BuildingManager::m_buildings IL_14AB: ldfld Building[] Array16`1::m_buffer IL_14B0: ldloc.s 79 (System.UInt16) IL_14B2: ldelema Building IL_14B7: call BuildingInfo Building::get_Info() IL_14BC: stloc.s 82 (BuildingInfo) IL_14BE: ldloca.s 83 (InstanceID) IL_14C0: initobj InstanceID IL_14C6: ldloca.s 83 (InstanceID) IL_14C8: ldarg.1 IL_14C9: call System.Void InstanceID::set_CitizenInstance(System.UInt16 value) IL_14CE: ldloc.s 82 (BuildingInfo) IL_14D0: ldfld BuildingAI BuildingInfo::m_buildingAI IL_14D5: ldloc.s 79 (System.UInt16) IL_14D7: ldloc.s 81 (BuildingManager) IL_14D9: ldfld Array16`1 BuildingManager::m_buildings IL_14DE: ldfld Building[] Array16`1::m_buffer IL_14E3: ldloc.s 79 (System.UInt16) IL_14E5: ldelema Building IL_14EA: ldloca.s 28 (PathUnit+Position) IL_14EC: ldfld System.UInt16 Position::m_segment IL_14F1: ldloca.s 28 (PathUnit+Position) IL_14F3: ldfld System.Byte Position::m_offset IL_14F8: ldloc.s 83 (InstanceID) IL_14FA: callvirt virtual System.Void BuildingAI::EnterBuildingSegment(System.UInt16 buildingID, Building& data, System.UInt16 segmentID, System.Byte offset, InstanceID itemID) IL_14FF: Label118 IL_14FF: Label120 IL_14FF: Label121 IL_14FF: Label123 IL_14FF: ldloc.s 27 (System.UInt32) IL_1501: ldarg.2 IL_1502: ldfld System.UInt32 CitizenInstance::m_path IL_1507: beq => Label124 IL_150C: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_1511: ldarg.2 IL_1512: ldflda System.UInt32 CitizenInstance::m_path IL_1517: callvirt System.Void PathManager::ReleaseFirstUnit(System.UInt32& unit) IL_151C: Label124 IL_151C: ldarg.2 IL_151D: ldloc.s 26 (System.Int32) IL_151F: ldc.i4.1 IL_1520: shl IL_1521: conv.u1 IL_1522: stfld System.Byte CitizenInstance::m_pathPositionIndex IL_1527: ldarg.2 IL_1528: ldloc.s 48 (System.Byte) IL_152A: stfld System.Byte CitizenInstance::m_lastPathOffset IL_152F: ldloc.s 28 (PathUnit+Position) IL_1531: stloc.s 4 (PathUnit+Position) IL_1533: ldloc.s 37 (System.UInt32) IL_1535: stloc.s 11 (System.UInt32) IL_1537: br => Label125 IL_153C: // end original IL_153C: Label126 IL_153C: Label127 IL_153C: Label128 IL_153C: Label129 IL_153C: Label130 IL_153C: Label131 IL_153C: Label132 IL_153C: Label133 IL_153C: Label134 IL_153C: Label135 IL_153C: Label136 IL_153C: Label137 IL_153C: Label138 IL_153C: Label139 IL_153C: Label140 IL_153C: Label141 IL_153C: Label142 IL_153C: Label143 IL_153C: Label144 IL_153C: Label145 IL_153C: ret DONE ### Patch: System.Boolean CitizenAI::StartPathFind(System.UInt16 instanceID, CitizenInstance& citizenData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, VehicleInfo vehicleInfo, System.Boolean enableTransport, System.Boolean ignoreCost) ### Replacement: static System.Boolean CitizenAI::CitizenAI.StartPathFind_Patch1(CitizenAI this, System.UInt16 instanceID, CitizenInstance& citizenData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, VehicleInfo vehicleInfo, System.Boolean enableTransport, System.Boolean ignoreCost) IL_0000: Local var 0: NetInfo/LaneType IL_0000: Local var 1: VehicleInfo/VehicleType IL_0000: Local var 2: VehicleInfo/VehicleCategory IL_0000: Local var 3: System.Boolean IL_0000: Local var 4: System.Boolean IL_0000: Local var 5: SimulationManager IL_0000: Local var 6: CitizenManager IL_0000: Local var 7: PathUnit/Position IL_0000: Local var 8: System.UInt16 IL_0000: Local var 9: UnityEngine.Vector3 IL_0000: Local var 10: System.Boolean IL_0000: Local var 11: System.Boolean IL_0000: Local var 12: System.Single IL_0000: Local var 13: PathUnit/Position IL_0000: Local var 14: PathUnit/Position IL_0000: Local var 15: System.UInt32 IL_0000: Local var 16: System.UInt32 IL_0000: Local var 17: PathUnit/Position IL_0000: Local var 18: System.Boolean IL_0000: Local var 19: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 18 (System.Boolean) IL_0009: ldc.i4 0 IL_000E: stloc 19 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 19 (System.Boolean) IL_0017: ldloc 19 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldloca 18 (System.Boolean) IL_0024: ldarg 1 IL_0028: ldarg 2 IL_002C: ldarg 3 IL_0030: ldarg 4 IL_0034: ldarg 5 IL_0038: ldarg 6 IL_003C: ldarg 7 IL_0040: call static System.Boolean TrafficManager.Patch._CitizenAI.StartPathFindPatch::Prefix(System.Boolean& __result, System.UInt16 instanceID, CitizenInstance& citizenData, UnityEngine.Vector3 startPos, UnityEngine.Vector3 endPos, VehicleInfo vehicleInfo, System.Boolean enableTransport, System.Boolean ignoreCost) IL_0045: stloc 19 (System.Boolean) IL_0049: Label1 IL_0049: nop IL_004A: ldloc 19 (System.Boolean) IL_004E: brfalse => Label0 IL_0053: // start original IL_0053: ldc.i4.2 IL_0054: stloc.0 IL_0055: ldc.i4.0 IL_0056: stloc.1 IL_0057: ldc.i4.0 IL_0058: conv.i8 IL_0059: stloc.2 IL_005A: ldc.i4.0 IL_005B: stloc.3 IL_005C: ldc.i4.0 IL_005D: stloc.s 4 (System.Boolean) IL_005F: ldarg.s 5 IL_0061: brfalse => Label2 IL_0066: ldarg.s 5 IL_0068: ldfld ItemClass VehicleInfo::m_class IL_006D: ldfld SubService ItemClass::m_subService IL_0072: ldc.i4.s 15 IL_0074: bne.un => Label3 IL_0079: ldarg.2 IL_007A: ldfld Flags CitizenInstance::m_flags IL_007F: ldc.i4 8388608 IL_0084: and IL_0085: brtrue => Label4 IL_008A: call static DistrictManager ColossalFramework.Singleton`1::get_instance() IL_008F: ldfld Array8`1 DistrictManager::m_districts IL_0094: ldfld District[] Array8`1::m_buffer IL_0099: ldc.i4.0 IL_009A: ldelema District IL_009F: ldflda DistrictProductionData District::m_productionData IL_00A4: ldfld System.UInt32 DistrictProductionData::m_finalTaxiCapacity IL_00A9: brfalse => Label5 IL_00AE: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_00B3: stloc.s 5 (SimulationManager) IL_00B5: ldloc.s 5 (SimulationManager) IL_00B7: ldfld System.Boolean SimulationManager::m_isNightTime IL_00BC: brtrue => Label6 IL_00C1: ldloc.s 5 (SimulationManager) IL_00C3: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_00C8: ldc.i4.2 IL_00C9: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_00CE: brtrue => Label7 IL_00D3: Label6 IL_00D3: ldloc.0 IL_00D4: ldc.i4.s 33 IL_00D6: or IL_00D7: conv.u1 IL_00D8: stloc.0 IL_00D9: ldloc.1 IL_00DA: ldarg.s 5 IL_00DC: ldfld VehicleType VehicleInfo::m_vehicleType IL_00E1: or IL_00E2: stloc.1 IL_00E3: ldloc.2 IL_00E4: ldarg.s 5 IL_00E6: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_00EB: or IL_00EC: stloc.2 IL_00ED: Label4 IL_00ED: Label5 IL_00ED: Label7 IL_00ED: br => Label8 IL_00F2: Label3 IL_00F2: ldloc.0 IL_00F3: ldc.i4.1 IL_00F4: or IL_00F5: conv.u1 IL_00F6: stloc.0 IL_00F7: ldloc.1 IL_00F8: ldarg.s 5 IL_00FA: ldfld VehicleType VehicleInfo::m_vehicleType IL_00FF: or IL_0100: stloc.1 IL_0101: ldloc.2 IL_0102: ldarg.s 5 IL_0104: callvirt VehicleCategory VehicleInfo::get_vehicleCategory() IL_0109: or IL_010A: stloc.2 IL_010B: ldarg.2 IL_010C: ldfld System.UInt16 CitizenInstance::m_targetBuilding IL_0111: brfalse => Label9 IL_0116: ldarg.2 IL_0117: ldfld Flags CitizenInstance::m_flags IL_011C: ldc.i4 134217728 IL_0121: and IL_0122: brfalse => Label10 IL_0127: ldc.i4.1 IL_0128: stloc.3 IL_0129: br => Label11 IL_012E: Label10 IL_012E: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0133: ldfld Array16`1 BuildingManager::m_buildings IL_0138: ldfld Building[] Array16`1::m_buffer IL_013D: ldarg.2 IL_013E: ldfld System.UInt16 CitizenInstance::m_targetBuilding IL_0143: ldelema Building IL_0148: call BuildingInfo Building::get_Info() IL_014D: ldfld ItemClass BuildingInfo::m_class IL_0152: ldfld Service ItemClass::m_service IL_0157: ldc.i4.8 IL_0158: ble => Label12 IL_015D: ldc.i4.1 IL_015E: stloc.3 IL_015F: Label9 IL_015F: Label11 IL_015F: Label12 IL_015F: ldarg.s 5 IL_0161: ldfld VehicleType VehicleInfo::m_vehicleType IL_0166: ldc.i4.1 IL_0167: bne.un => Label13 IL_016C: ldarg.s 5 IL_016E: ldfld ItemClass VehicleInfo::m_class IL_0173: ldfld SubService ItemClass::m_subService IL_0178: ldc.i4.1 IL_0179: ceq IL_017B: stloc.s 4 (System.Boolean) IL_017D: Label2 IL_017D: Label8 IL_017D: Label13 IL_017D: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0182: stloc.s 6 (CitizenManager) IL_0184: ldloca.s 7 (PathUnit+Position) IL_0186: initobj PathUnit+Position IL_018C: ldloc.s 6 (CitizenManager) IL_018E: ldfld Array32`1 CitizenManager::m_citizens IL_0193: ldfld Citizen[] Array32`1::m_buffer IL_0198: ldarg.2 IL_0199: ldfld System.UInt32 CitizenInstance::m_citizen IL_019E: conv.u IL_019F: ldelema Citizen IL_01A4: ldfld System.UInt16 Citizen::m_parkedVehicle IL_01A9: stloc.s 8 (System.UInt16) IL_01AB: ldloc.s 8 (System.UInt16) IL_01AD: brfalse => Label14 IL_01B2: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_01B7: ldfld Array16`1 VehicleManager::m_parkedVehicles IL_01BC: ldfld VehicleParked[] Array16`1::m_buffer IL_01C1: ldloc.s 8 (System.UInt16) IL_01C3: ldelema VehicleParked IL_01C8: ldfld UnityEngine.Vector3 VehicleParked::m_position IL_01CD: stloc.s 9 (UnityEngine.Vector3) IL_01CF: ldloc.s 9 (UnityEngine.Vector3) IL_01D1: ldc.i4.s 9 IL_01D3: ldc.i4.s 33 IL_01D5: ldc.i4.1 IL_01D6: ldc.i4.m1 IL_01D7: conv.i8 IL_01D8: ldc.i4.0 IL_01D9: ldc.i4.0 IL_01DA: ldc.r4 32 IL_01DF: ldloca.s 7 (PathUnit+Position) IL_01E1: call static System.Boolean PathManager::FindPathPosition(UnityEngine.Vector3 position, Service service, LaneType laneType, VehicleType vehicleType, VehicleCategory vehicleCategory, System.Boolean allowUnderground, System.Boolean requireConnect, System.Single maxDistance, Position& pathPos) IL_01E6: pop IL_01E7: Label14 IL_01E7: ldarg.2 IL_01E8: ldfld Flags CitizenInstance::m_flags IL_01ED: ldc.i4 524292 IL_01F2: and IL_01F3: ldc.i4.0 IL_01F4: ceq IL_01F6: ldc.i4.0 IL_01F7: ceq IL_01F9: stloc.s 10 (System.Boolean) IL_01FB: ldarg.2 IL_01FC: ldfld Flags CitizenInstance::m_flags IL_0201: ldc.i4 268435456 IL_0206: and IL_0207: brfalse => Label15 IL_020C: ldc.i4.1 IL_020D: stloc.s 11 (System.Boolean) IL_020F: ldc.r4 160000 IL_0214: stloc.s 12 (System.Single) IL_0216: ldloc.0 IL_0217: ldc.i4 222 IL_021C: and IL_021D: conv.u1 IL_021E: stloc.0 IL_021F: br => Label16 IL_0224: Label15 IL_0224: ldc.i4.0 IL_0225: stloc.s 11 (System.Boolean) IL_0227: ldc.r4 20000 IL_022C: stloc.s 12 (System.Single) IL_022E: Label16 IL_022E: ldarg.0 IL_022F: ldarg.1 IL_0230: ldarg.2 IL_0231: ldarg.3 IL_0232: ldloc.0 IL_0233: ldloc.1 IL_0234: ldloc.2 IL_0235: ldloc.s 10 (System.Boolean) IL_0237: ldloca.s 13 (PathUnit+Position) IL_0239: callvirt virtual System.Boolean CitizenAI::FindPathPosition(System.UInt16 instanceID, CitizenInstance& citizenData, UnityEngine.Vector3 pos, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, System.Boolean allowUnderground, Position& position) IL_023E: brfalse => Label17 IL_0243: ldarg.0 IL_0244: ldarg.1 IL_0245: ldarg.2 IL_0246: ldarg.s 4 IL_0248: ldloc.0 IL_0249: ldloc.1 IL_024A: ldloc.2 IL_024B: ldc.i4.0 IL_024C: ldloca.s 14 (PathUnit+Position) IL_024E: callvirt virtual System.Boolean CitizenAI::FindPathPosition(System.UInt16 instanceID, CitizenInstance& citizenData, UnityEngine.Vector3 pos, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, System.Boolean allowUnderground, Position& position) IL_0253: brfalse => Label18 IL_0258: ldarg.s 6 IL_025A: brfalse => Label19 IL_025F: ldarg.2 IL_0260: ldfld Flags CitizenInstance::m_flags IL_0265: ldc.i4 8192 IL_026A: and IL_026B: brtrue => Label20 IL_0270: ldloc.0 IL_0271: ldc.i4.8 IL_0272: or IL_0273: conv.u1 IL_0274: stloc.0 IL_0275: ldarg.2 IL_0276: ldfld System.UInt32 CitizenInstance::m_citizen IL_027B: stloc.s 16 (System.UInt32) IL_027D: ldloc.s 16 (System.UInt32) IL_027F: brfalse => Label21 IL_0284: ldloc.s 6 (CitizenManager) IL_0286: ldfld Array32`1 CitizenManager::m_citizens IL_028B: ldfld Citizen[] Array32`1::m_buffer IL_0290: ldloc.s 16 (System.UInt32) IL_0292: conv.u IL_0293: ldelema Citizen IL_0298: ldfld Flags Citizen::m_flags IL_029D: ldc.i4 512 IL_02A2: and IL_02A3: brfalse => Label22 IL_02A8: ldloc.0 IL_02A9: ldc.i4.s 64 IL_02AB: or IL_02AC: conv.u1 IL_02AD: stloc.0 IL_02AE: Label19 IL_02AE: Label20 IL_02AE: Label21 IL_02AE: Label22 IL_02AE: ldloca.s 17 (PathUnit+Position) IL_02B0: initobj PathUnit+Position IL_02B6: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_02BB: ldloca.s 15 (System.UInt32) IL_02BD: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_02C2: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_02C7: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_02CC: ldfld System.UInt32 SimulationManager::m_currentBuildIndex IL_02D1: ldloc.s 13 (PathUnit+Position) IL_02D3: ldloc.s 17 (PathUnit+Position) IL_02D5: ldloc.s 14 (PathUnit+Position) IL_02D7: ldloc.s 17 (PathUnit+Position) IL_02D9: ldloc.s 7 (PathUnit+Position) IL_02DB: ldloc.0 IL_02DC: ldloc.1 IL_02DD: ldloc.2 IL_02DE: ldloc.s 12 (System.Single) IL_02E0: ldc.i4.0 IL_02E1: ldc.i4.0 IL_02E2: ldloc.s 11 (System.Boolean) IL_02E4: ldc.i4.0 IL_02E5: ldloc.3 IL_02E6: ldc.i4.0 IL_02E7: ldloc.s 4 (System.Boolean) IL_02E9: ldarg.s 7 IL_02EB: callvirt System.Boolean PathManager::CreatePath(System.UInt32& unit, ColossalFramework.Math.Randomizer& randomizer, System.UInt32 buildIndex, Position startPosA, Position startPosB, Position endPosA, Position endPosB, Position vehiclePosition, LaneType laneTypes, VehicleType vehicleTypes, VehicleCategory vehicleCategories, System.Single maxLength, System.Boolean isHeavyVehicle, System.Boolean ignoreBlocked, System.Boolean stablePath, System.Boolean skipQueue, System.Boolean randomParking, System.Boolean ignoreFlooded, System.Boolean combustionEngine, System.Boolean ignoreCost) IL_02F0: brfalse => Label23 IL_02F5: ldarg.2 IL_02F6: ldfld System.UInt32 CitizenInstance::m_path IL_02FB: brfalse => Label24 IL_0300: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_0305: ldarg.2 IL_0306: ldfld System.UInt32 CitizenInstance::m_path IL_030B: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit) IL_0310: Label24 IL_0310: ldarg.2 IL_0311: ldloc.s 15 (System.UInt32) IL_0313: stfld System.UInt32 CitizenInstance::m_path IL_0318: ldarg.2 IL_0319: dup IL_031A: ldfld Flags CitizenInstance::m_flags IL_031F: ldc.i4 256 IL_0324: or IL_0325: stfld Flags CitizenInstance::m_flags IL_032A: ldc.i4.1 IL_032B: br => Label25 IL_0330: Label17 IL_0330: Label18 IL_0330: Label23 IL_0330: ldc.i4.0 IL_0331: // end original IL_0331: Label25 IL_0331: stloc 18 (System.Boolean) IL_0335: Label0 IL_0335: ldloc 18 (System.Boolean) IL_0339: ret DONE ### Patch: virtual System.String TouristAI::GetLocalizedStatus(System.UInt16 instanceID, CitizenInstance& data, InstanceID& target) ### Replacement: static System.String TouristAI::TouristAI.GetLocalizedStatus_Patch1(TouristAI this, System.UInt16 instanceID, CitizenInstance& data, InstanceID& target) IL_0000: Local var 0: CitizenManager IL_0000: Local var 1: System.UInt32 IL_0000: Local var 2: System.UInt16 IL_0000: Local var 3: System.UInt16 IL_0000: Local var 4: VehicleManager IL_0000: Local var 5: VehicleInfo IL_0000: Local var 6: InstanceID IL_0000: Local var 7: System.UInt16 IL_0000: Local var 8: System.Boolean IL_0000: Local var 9: System.Boolean IL_0000: Local var 10: VehicleManager IL_0000: Local var 11: VehicleInfo IL_0000: Local var 12: InstanceID IL_0000: Local var 13: System.String IL_0000: ldnull IL_0001: stloc 13 (System.String) IL_0005: // start original IL_0005: ldarg.2 IL_0006: ldfld Flags CitizenInstance::m_flags IL_000B: ldc.i4 100663296 IL_0010: and IL_0011: brfalse => Label0 IL_0016: ldarg.3 IL_0017: ldsfld InstanceID InstanceID::Empty IL_001C: stobj InstanceID IL_0021: ldstr "CITIZEN_STATUS_CONFUSED" IL_0026: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_002B: br => Label28 IL_0030: Label0 IL_0030: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0035: stloc.0 IL_0036: ldarg.2 IL_0037: ldfld System.UInt32 CitizenInstance::m_citizen IL_003C: stloc.1 IL_003D: ldc.i4.0 IL_003E: stloc.2 IL_003F: ldloc.1 IL_0040: brfalse => Label1 IL_0045: ldloc.0 IL_0046: ldfld Array32`1 CitizenManager::m_citizens IL_004B: ldfld Citizen[] Array32`1::m_buffer IL_0050: ldloc.1 IL_0051: conv.u IL_0052: ldelema Citizen IL_0057: ldfld System.UInt16 Citizen::m_vehicle IL_005C: stloc.2 IL_005D: Label1 IL_005D: ldarg.2 IL_005E: ldfld System.UInt16 CitizenInstance::m_targetBuilding IL_0063: stloc.3 IL_0064: ldloc.3 IL_0065: brfalse => Label2 IL_006A: ldarg.2 IL_006B: ldfld Flags CitizenInstance::m_flags IL_0070: ldc.i4 134217728 IL_0075: and IL_0076: brfalse => Label3 IL_007B: ldloc.2 IL_007C: brfalse => Label4 IL_0081: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_0086: stloc.s 4 (VehicleManager) IL_0088: ldloc.s 4 (VehicleManager) IL_008A: ldfld Array16`1 VehicleManager::m_vehicles IL_008F: ldfld Vehicle[] Array16`1::m_buffer IL_0094: ldloc.2 IL_0095: ldelema Vehicle IL_009A: call VehicleInfo Vehicle::get_Info() IL_009F: stloc.s 5 (VehicleInfo) IL_00A1: ldloc.s 5 (VehicleInfo) IL_00A3: ldfld ItemClass VehicleInfo::m_class IL_00A8: ldfld Service ItemClass::m_service IL_00AD: ldc.i4.1 IL_00AE: bne.un => Label5 IL_00B3: ldloc.s 5 (VehicleInfo) IL_00B5: ldfld VehicleType VehicleInfo::m_vehicleType IL_00BA: ldc.i4.s 32 IL_00BC: beq => Label6 IL_00C1: ldloc.s 5 (VehicleInfo) IL_00C3: ldfld VehicleAI VehicleInfo::m_vehicleAI IL_00C8: ldloc.2 IL_00C9: ldloc.s 4 (VehicleManager) IL_00CB: ldfld Array16`1 VehicleManager::m_vehicles IL_00D0: ldfld Vehicle[] Array16`1::m_buffer IL_00D5: ldloc.2 IL_00D6: ldelema Vehicle IL_00DB: callvirt virtual InstanceID VehicleAI::GetOwnerID(System.UInt16 vehicleID, Vehicle& vehicleData) IL_00E0: stloc.s 6 (InstanceID) IL_00E2: ldloca.s 6 (InstanceID) IL_00E4: call System.UInt32 InstanceID::get_Citizen() IL_00E9: ldloc.1 IL_00EA: bne.un => Label7 IL_00EF: ldarg.3 IL_00F0: ldsfld InstanceID InstanceID::Empty IL_00F5: stobj InstanceID IL_00FA: ldarg.3 IL_00FB: ldloc.3 IL_00FC: call System.Void InstanceID::set_NetNode(System.UInt16 value) IL_0101: ldstr "CITIZEN_STATUS_DRIVINGTO" IL_0106: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_010B: br => Label29 IL_0110: Label7 IL_0110: br => Label8 IL_0115: Label5 IL_0115: Label6 IL_0115: ldloc.s 5 (VehicleInfo) IL_0117: ldfld ItemClass VehicleInfo::m_class IL_011C: ldfld Service ItemClass::m_service IL_0121: ldc.i4.s 19 IL_0123: beq => Label9 IL_0128: ldloc.s 5 (VehicleInfo) IL_012A: ldfld ItemClass VehicleInfo::m_class IL_012F: ldfld Service ItemClass::m_service IL_0134: ldc.i4.s 20 IL_0136: bne.un => Label10 IL_013B: Label9 IL_013B: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0140: ldfld Array16`1 NetManager::m_nodes IL_0145: ldfld NetNode[] Array16`1::m_buffer IL_014A: ldloc.3 IL_014B: ldelema NetNode IL_0150: ldfld System.UInt16 NetNode::m_transportLine IL_0155: stloc.s 7 (System.UInt16) IL_0157: ldarg.2 IL_0158: ldfld Flags CitizenInstance::m_flags IL_015D: ldc.i4 4194304 IL_0162: and IL_0163: brfalse => Label11 IL_0168: ldarg.3 IL_0169: ldsfld InstanceID InstanceID::Empty IL_016E: stobj InstanceID IL_0173: ldstr "CITIZEN_STATUS_WAITING_TAXI" IL_0178: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_017D: br => Label30 IL_0182: Label11 IL_0182: ldloc.s 4 (VehicleManager) IL_0184: ldfld Array16`1 VehicleManager::m_vehicles IL_0189: ldfld Vehicle[] Array16`1::m_buffer IL_018E: ldloc.2 IL_018F: ldelema Vehicle IL_0194: ldfld System.UInt16 Vehicle::m_transportLine IL_0199: ldloc.s 7 (System.UInt16) IL_019B: beq => Label12 IL_01A0: ldarg.3 IL_01A1: ldsfld InstanceID InstanceID::Empty IL_01A6: stobj InstanceID IL_01AB: ldarg.3 IL_01AC: ldloc.3 IL_01AD: call System.Void InstanceID::set_NetNode(System.UInt16 value) IL_01B2: ldstr "CITIZEN_STATUS_TRAVELLINGTO" IL_01B7: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_01BC: br => Label31 IL_01C1: Label4 IL_01C1: Label8 IL_01C1: Label10 IL_01C1: Label12 IL_01C1: ldarg.2 IL_01C2: ldfld Flags CitizenInstance::m_flags IL_01C7: ldc.i4 268435456 IL_01CC: and IL_01CD: brfalse => Label13 IL_01D2: ldarg.3 IL_01D3: ldsfld InstanceID InstanceID::Empty IL_01D8: stobj InstanceID IL_01DD: ldarg.3 IL_01DE: ldloc.3 IL_01DF: call System.Void InstanceID::set_NetNode(System.UInt16 value) IL_01E4: ldstr "CITIZEN_STATUS_VISITING" IL_01E9: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_01EE: br => Label32 IL_01F3: Label13 IL_01F3: ldarg.3 IL_01F4: ldsfld InstanceID InstanceID::Empty IL_01F9: stobj InstanceID IL_01FE: ldarg.3 IL_01FF: ldloc.3 IL_0200: call System.Void InstanceID::set_NetNode(System.UInt16 value) IL_0205: ldstr "CITIZEN_STATUS_GOINGTO" IL_020A: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_020F: br => Label33 IL_0214: Label3 IL_0214: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0219: ldfld Array16`1 BuildingManager::m_buildings IL_021E: ldfld Building[] Array16`1::m_buffer IL_0223: ldloc.3 IL_0224: ldelema Building IL_0229: ldfld Flags Building::m_flags IL_022E: ldc.i4 192 IL_0233: and IL_0234: ldc.i4.0 IL_0235: ceq IL_0237: ldc.i4.0 IL_0238: ceq IL_023A: stloc.s 8 (System.Boolean) IL_023C: ldarg.2 IL_023D: ldfld System.UInt32 CitizenInstance::m_path IL_0242: brtrue => Label14 IL_0247: ldarg.2 IL_0248: ldfld Flags CitizenInstance::m_flags IL_024D: ldc.i4.s 64 IL_024F: and IL_0250: ldc.i4.0 IL_0251: ceq IL_0253: ldc.i4.0 IL_0254: ceq IL_0256: br => Label15 IL_025B: Label14 IL_025B: ldc.i4.0 IL_025C: Label15 IL_025C: stloc.s 9 (System.Boolean) IL_025E: ldloc.2 IL_025F: brfalse => Label16 IL_0264: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_0269: stloc.s 10 (VehicleManager) IL_026B: ldloc.s 10 (VehicleManager) IL_026D: ldfld Array16`1 VehicleManager::m_vehicles IL_0272: ldfld Vehicle[] Array16`1::m_buffer IL_0277: ldloc.2 IL_0278: ldelema Vehicle IL_027D: call VehicleInfo Vehicle::get_Info() IL_0282: stloc.s 11 (VehicleInfo) IL_0284: ldloc.s 11 (VehicleInfo) IL_0286: ldfld ItemClass VehicleInfo::m_class IL_028B: ldfld Service ItemClass::m_service IL_0290: ldc.i4.1 IL_0291: bne.un => Label17 IL_0296: ldloc.s 11 (VehicleInfo) IL_0298: ldfld VehicleType VehicleInfo::m_vehicleType IL_029D: ldc.i4.s 32 IL_029F: beq => Label18 IL_02A4: ldloc.s 11 (VehicleInfo) IL_02A6: ldfld VehicleAI VehicleInfo::m_vehicleAI IL_02AB: ldloc.2 IL_02AC: ldloc.s 10 (VehicleManager) IL_02AE: ldfld Array16`1 VehicleManager::m_vehicles IL_02B3: ldfld Vehicle[] Array16`1::m_buffer IL_02B8: ldloc.2 IL_02B9: ldelema Vehicle IL_02BE: callvirt virtual InstanceID VehicleAI::GetOwnerID(System.UInt16 vehicleID, Vehicle& vehicleData) IL_02C3: stloc.s 12 (InstanceID) IL_02C5: ldloca.s 12 (InstanceID) IL_02C7: call System.UInt32 InstanceID::get_Citizen() IL_02CC: ldloc.1 IL_02CD: bne.un => Label19 IL_02D2: ldloc.s 8 (System.Boolean) IL_02D4: brfalse => Label20 IL_02D9: ldarg.3 IL_02DA: ldsfld InstanceID InstanceID::Empty IL_02DF: stobj InstanceID IL_02E4: ldstr "CITIZEN_STATUS_DRIVINGTO_OUTSIDE" IL_02E9: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_02EE: br => Label34 IL_02F3: Label20 IL_02F3: ldarg.3 IL_02F4: ldsfld InstanceID InstanceID::Empty IL_02F9: stobj InstanceID IL_02FE: ldarg.3 IL_02FF: ldloc.3 IL_0300: call System.Void InstanceID::set_Building(System.UInt16 value) IL_0305: ldstr "CITIZEN_STATUS_DRIVINGTO" IL_030A: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_030F: br => Label35 IL_0314: Label19 IL_0314: br => Label21 IL_0319: Label17 IL_0319: Label18 IL_0319: ldloc.s 11 (VehicleInfo) IL_031B: ldfld ItemClass VehicleInfo::m_class IL_0320: ldfld Service ItemClass::m_service IL_0325: ldc.i4.s 19 IL_0327: beq => Label22 IL_032C: ldloc.s 11 (VehicleInfo) IL_032E: ldfld ItemClass VehicleInfo::m_class IL_0333: ldfld Service ItemClass::m_service IL_0338: ldc.i4.s 20 IL_033A: bne.un => Label23 IL_033F: Label22 IL_033F: ldarg.2 IL_0340: ldfld Flags CitizenInstance::m_flags IL_0345: ldc.i4 4194304 IL_034A: and IL_034B: brfalse => Label24 IL_0350: ldarg.3 IL_0351: ldsfld InstanceID InstanceID::Empty IL_0356: stobj InstanceID IL_035B: ldstr "CITIZEN_STATUS_WAITING_TAXI" IL_0360: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_0365: br => Label36 IL_036A: Label24 IL_036A: ldloc.s 8 (System.Boolean) IL_036C: brfalse => Label25 IL_0371: ldarg.3 IL_0372: ldsfld InstanceID InstanceID::Empty IL_0377: stobj InstanceID IL_037C: ldstr "CITIZEN_STATUS_TRAVELLINGTO_OUTSIDE" IL_0381: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_0386: br => Label37 IL_038B: Label25 IL_038B: ldarg.3 IL_038C: ldsfld InstanceID InstanceID::Empty IL_0391: stobj InstanceID IL_0396: ldarg.3 IL_0397: ldloc.3 IL_0398: call System.Void InstanceID::set_Building(System.UInt16 value) IL_039D: ldstr "CITIZEN_STATUS_TRAVELLINGTO" IL_03A2: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_03A7: br => Label38 IL_03AC: Label16 IL_03AC: Label21 IL_03AC: Label23 IL_03AC: ldloc.s 8 (System.Boolean) IL_03AE: brfalse => Label26 IL_03B3: ldarg.3 IL_03B4: ldsfld InstanceID InstanceID::Empty IL_03B9: stobj InstanceID IL_03BE: ldstr "CITIZEN_STATUS_GOINGTO_OUTSIDE" IL_03C3: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_03C8: br => Label39 IL_03CD: Label26 IL_03CD: ldloc.s 9 (System.Boolean) IL_03CF: brfalse => Label27 IL_03D4: ldarg.3 IL_03D5: ldsfld InstanceID InstanceID::Empty IL_03DA: stobj InstanceID IL_03DF: ldarg.3 IL_03E0: ldloc.3 IL_03E1: call System.Void InstanceID::set_Building(System.UInt16 value) IL_03E6: ldstr "CITIZEN_STATUS_VISITING" IL_03EB: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_03F0: br => Label40 IL_03F5: Label27 IL_03F5: ldarg.3 IL_03F6: ldsfld InstanceID InstanceID::Empty IL_03FB: stobj InstanceID IL_0400: ldarg.3 IL_0401: ldloc.3 IL_0402: call System.Void InstanceID::set_Building(System.UInt16 value) IL_0407: ldstr "CITIZEN_STATUS_GOINGTO" IL_040C: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_0411: br => Label41 IL_0416: Label2 IL_0416: ldarg.3 IL_0417: ldsfld InstanceID InstanceID::Empty IL_041C: stobj InstanceID IL_0421: ldstr "CITIZEN_STATUS_CONFUSED" IL_0426: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_042B: // end original IL_042B: Label28 IL_042B: Label29 IL_042B: Label30 IL_042B: Label31 IL_042B: Label32 IL_042B: Label33 IL_042B: Label34 IL_042B: Label35 IL_042B: Label36 IL_042B: Label37 IL_042B: Label38 IL_042B: Label39 IL_042B: Label40 IL_042B: Label41 IL_042B: stloc 13 (System.String) IL_042F: ldloca 13 (System.String) IL_0433: ldarg 1 IL_0437: ldarg 2 IL_043B: call static System.Void TrafficManager.Patch._CitizenAI._TouristAI.GetLocalizedStatusPatch::Postfix(System.String& __result, System.UInt16 instanceID, CitizenInstance& data) IL_0440: ldloc 13 (System.String) IL_0444: ret DONE ### Patch: virtual VehicleInfo TouristAI::GetVehicleInfo(System.UInt16 instanceID, CitizenInstance& citizenData, System.Boolean forceProbability, VehicleInfo& trailer) ### Replacement: static VehicleInfo TouristAI::TouristAI.GetVehicleInfo_Patch1(TouristAI this, System.UInt16 instanceID, CitizenInstance& citizenData, System.Boolean forceProbability, VehicleInfo& trailer) IL_0000: Local var 0: Citizen/Wealth IL_0000: Local var 1: System.Int32 IL_0000: Local var 2: System.Int32 IL_0000: Local var 3: System.Int32 IL_0000: Local var 4: ColossalFramework.Math.Randomizer IL_0000: Local var 5: System.Boolean IL_0000: Local var 6: System.Boolean IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Boolean IL_0000: Local var 9: System.Boolean IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Int32 IL_0000: Local var 12: ItemClass/Service IL_0000: Local var 13: ItemClass/SubService IL_0000: Local var 14: VehicleInfo IL_0000: Local var 15: ColossalFramework.Math.Randomizer IL_0000: Local var 16: ColossalFramework.Math.Randomizer IL_0000: Local var 17: System.Boolean IL_0000: Local var 18: VehicleInfo IL_0000: Local var 19: VehicleInfo IL_0000: Local var 20: System.Boolean IL_0000: ldnull IL_0001: stloc 19 (VehicleInfo) IL_0005: ldc.i4 0 IL_000A: stloc 20 (System.Boolean) IL_000E: ldc.i4.1 IL_000F: stloc 20 (System.Boolean) IL_0013: ldloc 20 (System.Boolean) IL_0017: brfalse => Label1 IL_001C: ldarg.0 IL_001D: ldloca 19 (VehicleInfo) IL_0021: ldarg 1 IL_0025: ldarg 2 IL_0029: ldarg 3 IL_002D: ldarg 4 IL_0031: call static System.Boolean TrafficManager.Patch._CitizenAI._TouristAI.GetVehicleInfoPatch::Prefix(TouristAI __instance, VehicleInfo& __result, System.UInt16 instanceID, CitizenInstance& citizenData, System.Boolean forceProbability, VehicleInfo& trailer) IL_0036: stloc 20 (System.Boolean) IL_003A: Label1 IL_003A: nop IL_003B: ldloc 20 (System.Boolean) IL_003F: brfalse => Label0 IL_0044: // start original IL_0044: ldarg.s 4 IL_0046: ldnull IL_0047: stind.ref IL_0048: ldarg.2 IL_0049: ldfld System.UInt32 CitizenInstance::m_citizen IL_004E: brfalse => Label2 IL_0053: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0058: ldfld Array32`1 CitizenManager::m_citizens IL_005D: ldfld Citizen[] Array32`1::m_buffer IL_0062: ldarg.2 IL_0063: ldfld System.UInt32 CitizenInstance::m_citizen IL_0068: conv.u IL_0069: ldelema Citizen IL_006E: call Wealth Citizen::get_WealthLevel() IL_0073: stloc.0 IL_0074: ldarg.3 IL_0075: brtrue => Label3 IL_007A: ldarg.2 IL_007B: ldfld Flags CitizenInstance::m_flags IL_0080: ldc.i4.s 32 IL_0082: and IL_0083: brfalse => Label4 IL_0088: Label3 IL_0088: ldc.i4.s 100 IL_008A: stloc.1 IL_008B: ldc.i4.0 IL_008C: stloc.2 IL_008D: ldarg.0 IL_008E: ldloc.0 IL_008F: call System.Int32 TouristAI::GetCamperProbability(Wealth wealth) IL_0094: stloc.3 IL_0095: br => Label5 IL_009A: Label4 IL_009A: ldarg.0 IL_009B: ldarg.2 IL_009C: ldflda Frame CitizenInstance::m_frame1 IL_00A1: ldfld UnityEngine.Vector3 Frame::m_position IL_00A6: call System.Int32 TouristAI::GetCarProbability(UnityEngine.Vector3 position) IL_00AB: stloc.1 IL_00AC: ldarg.0 IL_00AD: call System.Int32 TouristAI::GetBikeProbability() IL_00B2: stloc.2 IL_00B3: ldc.i4.0 IL_00B4: stloc.3 IL_00B5: Label5 IL_00B5: ldloca.s 4 (ColossalFramework.Math.Randomizer) IL_00B7: ldarg.2 IL_00B8: ldfld System.UInt32 CitizenInstance::m_citizen IL_00BD: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed) IL_00C2: ldloca.s 4 (ColossalFramework.Math.Randomizer) IL_00C4: ldc.i4.s 100 IL_00C6: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_00CB: ldloc.1 IL_00CC: clt IL_00CE: stloc.s 5 (System.Boolean) IL_00D0: ldloca.s 4 (ColossalFramework.Math.Randomizer) IL_00D2: ldc.i4.s 100 IL_00D4: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_00D9: ldloc.2 IL_00DA: clt IL_00DC: stloc.s 6 (System.Boolean) IL_00DE: ldloca.s 4 (ColossalFramework.Math.Randomizer) IL_00E0: ldc.i4.s 100 IL_00E2: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_00E7: ldloc.3 IL_00E8: clt IL_00EA: stloc.s 7 (System.Boolean) IL_00EC: ldloc.s 5 (System.Boolean) IL_00EE: brfalse => Label6 IL_00F3: ldarg.0 IL_00F4: ldloc.0 IL_00F5: call System.Int32 TouristAI::GetElectricCarProbability(Wealth wealth) IL_00FA: stloc.s 10 (System.Int32) IL_00FC: ldc.i4.0 IL_00FD: stloc.s 8 (System.Boolean) IL_00FF: ldloca.s 4 (ColossalFramework.Math.Randomizer) IL_0101: ldc.i4.s 100 IL_0103: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0108: ldloc.s 10 (System.Int32) IL_010A: clt IL_010C: stloc.s 9 (System.Boolean) IL_010E: br => Label7 IL_0113: Label6 IL_0113: ldarg.0 IL_0114: call System.Int32 TouristAI::GetTaxiProbability() IL_0119: stloc.s 11 (System.Int32) IL_011B: ldloca.s 4 (ColossalFramework.Math.Randomizer) IL_011D: ldc.i4.s 100 IL_011F: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0124: ldloc.s 11 (System.Int32) IL_0126: clt IL_0128: stloc.s 8 (System.Boolean) IL_012A: ldc.i4.0 IL_012B: stloc.s 9 (System.Boolean) IL_012D: Label7 IL_012D: ldc.i4.1 IL_012E: stloc.s 12 (ItemClass+Service) IL_0130: ldloc.s 9 (System.Boolean) IL_0132: brfalse => Label8 IL_0137: ldc.i4.s 25 IL_0139: br => Label9 IL_013E: Label8 IL_013E: ldc.i4.1 IL_013F: Label9 IL_013F: stloc.s 13 (ItemClass+SubService) IL_0141: ldloc.s 5 (System.Boolean) IL_0143: brtrue => Label10 IL_0148: ldloc.s 8 (System.Boolean) IL_014A: brfalse => Label11 IL_014F: ldc.i4.s 19 IL_0151: stloc.s 12 (ItemClass+Service) IL_0153: ldc.i4.s 15 IL_0155: stloc.s 13 (ItemClass+SubService) IL_0157: Label10 IL_0157: Label11 IL_0157: ldloc.s 7 (System.Boolean) IL_0159: brfalse => Label12 IL_015E: ldloc.s 4 (ColossalFramework.Math.Randomizer) IL_0160: stloc.s 15 (ColossalFramework.Math.Randomizer) IL_0162: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_0167: ldloca.s 4 (ColossalFramework.Math.Randomizer) IL_0169: ldloc.s 12 (ItemClass+Service) IL_016B: ldloc.s 13 (ItemClass+SubService) IL_016D: ldc.i4.1 IL_016E: callvirt VehicleInfo VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service service, SubService subService, Level level) IL_0173: stloc.s 14 (VehicleInfo) IL_0175: ldloc.s 14 (VehicleInfo) IL_0177: brfalse => Label13 IL_017C: ldloc.s 14 (VehicleInfo) IL_017E: ldfld VehicleAI VehicleInfo::m_vehicleAI IL_0183: isinst CarTrailerAI IL_0188: brfalse => Label14 IL_018D: Label13 IL_018D: ldarg.s 4 IL_018F: ldloc.s 14 (VehicleInfo) IL_0191: stind.ref IL_0192: ldloc.s 15 (ColossalFramework.Math.Randomizer) IL_0194: stloc.s 4 (ColossalFramework.Math.Randomizer) IL_0196: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_019B: ldfld ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_01A0: stloc.s 16 (ColossalFramework.Math.Randomizer) IL_01A2: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_01A7: ldloca.s 16 (ColossalFramework.Math.Randomizer) IL_01A9: ldloc.s 12 (ItemClass+Service) IL_01AB: ldloc.s 13 (ItemClass+SubService) IL_01AD: ldc.i4.0 IL_01AE: callvirt VehicleInfo VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service service, SubService subService, Level level) IL_01B3: stloc.s 14 (VehicleInfo) IL_01B5: ldloc.s 14 (VehicleInfo) IL_01B7: ldfld VehicleInfoGen VehicleInfoBase::m_generatedInfo IL_01BC: ldflda UnityEngine.Vector3 VehicleInfoGen::m_size IL_01C1: ldfld System.Single UnityEngine.Vector3::z IL_01C6: ldc.r4 2 IL_01CB: cgt IL_01CD: stloc.s 17 (System.Boolean) IL_01CF: ldloc.s 17 (System.Boolean) IL_01D1: brtrue => Label15 IL_01D6: ldarg.s 4 IL_01D8: ldnull IL_01D9: stind.ref IL_01DA: Label14 IL_01DA: Label15 IL_01DA: br => Label16 IL_01DF: Label12 IL_01DF: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_01E4: ldloca.s 4 (ColossalFramework.Math.Randomizer) IL_01E6: ldloc.s 12 (ItemClass+Service) IL_01E8: ldloc.s 13 (ItemClass+SubService) IL_01EA: ldc.i4.0 IL_01EB: callvirt VehicleInfo VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service service, SubService subService, Level level) IL_01F0: stloc.s 14 (VehicleInfo) IL_01F2: Label16 IL_01F2: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_01F7: ldloca.s 4 (ColossalFramework.Math.Randomizer) IL_01F9: ldc.i4.1 IL_01FA: ldc.i4.2 IL_01FB: ldc.i4.1 IL_01FC: callvirt VehicleInfo VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service service, SubService subService, Level level) IL_0201: stloc.s 18 (VehicleInfo) IL_0203: ldloc.s 6 (System.Boolean) IL_0205: brfalse => Label17 IL_020A: ldloc.s 18 (VehicleInfo) IL_020C: brfalse => Label18 IL_0211: ldloc.s 18 (VehicleInfo) IL_0213: br => Label22 IL_0218: Label17 IL_0218: Label18 IL_0218: ldloc.s 5 (System.Boolean) IL_021A: brtrue => Label19 IL_021F: ldloc.s 8 (System.Boolean) IL_0221: brfalse => Label20 IL_0226: Label19 IL_0226: ldloc.s 14 (VehicleInfo) IL_0228: brfalse => Label21 IL_022D: ldloc.s 14 (VehicleInfo) IL_022F: br => Label23 IL_0234: Label20 IL_0234: Label21 IL_0234: ldnull IL_0235: br => Label24 IL_023A: Label2 IL_023A: ldnull IL_023B: // end original IL_023B: Label22 IL_023B: Label23 IL_023B: Label24 IL_023B: stloc 19 (VehicleInfo) IL_023F: Label0 IL_023F: ldloc 19 (VehicleInfo) IL_0243: ret DONE ### Patch: virtual System.String ResidentAI::GetLocalizedStatus(System.UInt16 instanceID, CitizenInstance& data, InstanceID& target) ### Replacement: static System.String ResidentAI::ResidentAI.GetLocalizedStatus_Patch1(ResidentAI this, System.UInt16 instanceID, CitizenInstance& data, InstanceID& target) IL_0000: Local var 0: CitizenManager IL_0000: Local var 1: System.UInt32 IL_0000: Local var 2: System.Boolean IL_0000: Local var 3: System.UInt16 IL_0000: Local var 4: System.UInt16 IL_0000: Local var 5: System.UInt16 IL_0000: Local var 6: System.UInt16 IL_0000: Local var 7: VehicleManager IL_0000: Local var 8: VehicleInfo IL_0000: Local var 9: InstanceID IL_0000: Local var 10: System.UInt16 IL_0000: Local var 11: System.Boolean IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: VehicleManager IL_0000: Local var 14: VehicleInfo IL_0000: Local var 15: InstanceID IL_0000: Local var 16: System.String IL_0000: ldnull IL_0001: stloc 16 (System.String) IL_0005: // start original IL_0005: ldarg.2 IL_0006: ldfld Flags CitizenInstance::m_flags IL_000B: ldc.i4 100663296 IL_0010: and IL_0011: brfalse => Label0 IL_0016: ldarg.3 IL_0017: ldsfld InstanceID InstanceID::Empty IL_001C: stobj InstanceID IL_0021: ldstr "CITIZEN_STATUS_CONFUSED" IL_0026: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_002B: br => Label44 IL_0030: Label0 IL_0030: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0035: stloc.0 IL_0036: ldarg.2 IL_0037: ldfld System.UInt32 CitizenInstance::m_citizen IL_003C: stloc.1 IL_003D: ldc.i4.0 IL_003E: stloc.2 IL_003F: ldc.i4.0 IL_0040: stloc.3 IL_0041: ldc.i4.0 IL_0042: stloc.s 4 (System.UInt16) IL_0044: ldc.i4.0 IL_0045: stloc.s 5 (System.UInt16) IL_0047: ldloc.1 IL_0048: brfalse => Label1 IL_004D: ldloc.0 IL_004E: ldfld Array32`1 CitizenManager::m_citizens IL_0053: ldfld Citizen[] Array32`1::m_buffer IL_0058: ldloc.1 IL_0059: conv.u IL_005A: ldelema Citizen IL_005F: ldfld System.UInt16 Citizen::m_homeBuilding IL_0064: stloc.3 IL_0065: ldloc.0 IL_0066: ldfld Array32`1 CitizenManager::m_citizens IL_006B: ldfld Citizen[] Array32`1::m_buffer IL_0070: ldloc.1 IL_0071: conv.u IL_0072: ldelema Citizen IL_0077: ldfld System.UInt16 Citizen::m_workBuilding IL_007C: stloc.s 4 (System.UInt16) IL_007E: ldloc.0 IL_007F: ldfld Array32`1 CitizenManager::m_citizens IL_0084: ldfld Citizen[] Array32`1::m_buffer IL_0089: ldloc.1 IL_008A: conv.u IL_008B: ldelema Citizen IL_0090: ldfld System.UInt16 Citizen::m_vehicle IL_0095: stloc.s 5 (System.UInt16) IL_0097: ldloc.0 IL_0098: ldfld Array32`1 CitizenManager::m_citizens IL_009D: ldfld Citizen[] Array32`1::m_buffer IL_00A2: ldloc.1 IL_00A3: conv.u IL_00A4: ldelema Citizen IL_00A9: ldfld Flags Citizen::m_flags IL_00AE: ldc.i4.s 16 IL_00B0: and IL_00B1: ldc.i4.0 IL_00B2: ceq IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.2 IL_00B8: Label1 IL_00B8: ldarg.2 IL_00B9: ldfld System.UInt16 CitizenInstance::m_targetBuilding IL_00BE: stloc.s 6 (System.UInt16) IL_00C0: ldloc.s 6 (System.UInt16) IL_00C2: brfalse => Label2 IL_00C7: ldarg.2 IL_00C8: ldfld Flags CitizenInstance::m_flags IL_00CD: ldc.i4 134217728 IL_00D2: and IL_00D3: brfalse => Label3 IL_00D8: ldloc.s 5 (System.UInt16) IL_00DA: brfalse => Label4 IL_00DF: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_00E4: stloc.s 7 (VehicleManager) IL_00E6: ldloc.s 7 (VehicleManager) IL_00E8: ldfld Array16`1 VehicleManager::m_vehicles IL_00ED: ldfld Vehicle[] Array16`1::m_buffer IL_00F2: ldloc.s 5 (System.UInt16) IL_00F4: ldelema Vehicle IL_00F9: call VehicleInfo Vehicle::get_Info() IL_00FE: stloc.s 8 (VehicleInfo) IL_0100: ldloc.s 8 (VehicleInfo) IL_0102: ldfld ItemClass VehicleInfo::m_class IL_0107: ldfld Service ItemClass::m_service IL_010C: ldc.i4.1 IL_010D: bne.un => Label5 IL_0112: ldloc.s 8 (VehicleInfo) IL_0114: ldfld VehicleType VehicleInfo::m_vehicleType IL_0119: ldc.i4.s 32 IL_011B: beq => Label6 IL_0120: ldloc.s 8 (VehicleInfo) IL_0122: ldfld VehicleAI VehicleInfo::m_vehicleAI IL_0127: ldloc.s 5 (System.UInt16) IL_0129: ldloc.s 7 (VehicleManager) IL_012B: ldfld Array16`1 VehicleManager::m_vehicles IL_0130: ldfld Vehicle[] Array16`1::m_buffer IL_0135: ldloc.s 5 (System.UInt16) IL_0137: ldelema Vehicle IL_013C: callvirt virtual InstanceID VehicleAI::GetOwnerID(System.UInt16 vehicleID, Vehicle& vehicleData) IL_0141: stloc.s 9 (InstanceID) IL_0143: ldloca.s 9 (InstanceID) IL_0145: call System.UInt32 InstanceID::get_Citizen() IL_014A: ldloc.1 IL_014B: bne.un => Label7 IL_0150: ldarg.3 IL_0151: ldsfld InstanceID InstanceID::Empty IL_0156: stobj InstanceID IL_015B: ldarg.3 IL_015C: ldloc.s 6 (System.UInt16) IL_015E: call System.Void InstanceID::set_NetNode(System.UInt16 value) IL_0163: ldstr "CITIZEN_STATUS_DRIVINGTO" IL_0168: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_016D: br => Label45 IL_0172: Label7 IL_0172: br => Label8 IL_0177: Label5 IL_0177: Label6 IL_0177: ldloc.s 8 (VehicleInfo) IL_0179: ldfld ItemClass VehicleInfo::m_class IL_017E: ldfld Service ItemClass::m_service IL_0183: ldc.i4.s 19 IL_0185: beq => Label9 IL_018A: ldloc.s 8 (VehicleInfo) IL_018C: ldfld ItemClass VehicleInfo::m_class IL_0191: ldfld Service ItemClass::m_service IL_0196: ldc.i4.s 20 IL_0198: bne.un => Label10 IL_019D: Label9 IL_019D: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_01A2: ldfld Array16`1 NetManager::m_nodes IL_01A7: ldfld NetNode[] Array16`1::m_buffer IL_01AC: ldloc.s 6 (System.UInt16) IL_01AE: ldelema NetNode IL_01B3: ldfld System.UInt16 NetNode::m_transportLine IL_01B8: stloc.s 10 (System.UInt16) IL_01BA: ldarg.2 IL_01BB: ldfld Flags CitizenInstance::m_flags IL_01C0: ldc.i4 4194304 IL_01C5: and IL_01C6: brfalse => Label11 IL_01CB: ldarg.3 IL_01CC: ldsfld InstanceID InstanceID::Empty IL_01D1: stobj InstanceID IL_01D6: ldstr "CITIZEN_STATUS_WAITING_TAXI" IL_01DB: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_01E0: br => Label46 IL_01E5: Label11 IL_01E5: ldloc.s 7 (VehicleManager) IL_01E7: ldfld Array16`1 VehicleManager::m_vehicles IL_01EC: ldfld Vehicle[] Array16`1::m_buffer IL_01F1: ldloc.s 5 (System.UInt16) IL_01F3: ldelema Vehicle IL_01F8: ldfld System.UInt16 Vehicle::m_transportLine IL_01FD: ldloc.s 10 (System.UInt16) IL_01FF: beq => Label12 IL_0204: ldarg.3 IL_0205: ldsfld InstanceID InstanceID::Empty IL_020A: stobj InstanceID IL_020F: ldarg.3 IL_0210: ldloc.s 6 (System.UInt16) IL_0212: call System.Void InstanceID::set_NetNode(System.UInt16 value) IL_0217: ldstr "CITIZEN_STATUS_TRAVELLINGTO" IL_021C: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_0221: br => Label47 IL_0226: Label4 IL_0226: Label8 IL_0226: Label10 IL_0226: Label12 IL_0226: ldarg.2 IL_0227: ldfld Flags CitizenInstance::m_flags IL_022C: ldc.i4 268435456 IL_0231: and IL_0232: brfalse => Label13 IL_0237: ldarg.3 IL_0238: ldsfld InstanceID InstanceID::Empty IL_023D: stobj InstanceID IL_0242: ldarg.3 IL_0243: ldloc.s 6 (System.UInt16) IL_0245: call System.Void InstanceID::set_NetNode(System.UInt16 value) IL_024A: ldstr "CITIZEN_STATUS_VISITING" IL_024F: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_0254: br => Label48 IL_0259: Label13 IL_0259: ldarg.3 IL_025A: ldsfld InstanceID InstanceID::Empty IL_025F: stobj InstanceID IL_0264: ldarg.3 IL_0265: ldloc.s 6 (System.UInt16) IL_0267: call System.Void InstanceID::set_NetNode(System.UInt16 value) IL_026C: ldstr "CITIZEN_STATUS_GOINGTO" IL_0271: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_0276: br => Label49 IL_027B: Label3 IL_027B: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0280: ldfld Array16`1 BuildingManager::m_buildings IL_0285: ldfld Building[] Array16`1::m_buffer IL_028A: ldloc.s 6 (System.UInt16) IL_028C: ldelema Building IL_0291: ldfld Flags Building::m_flags IL_0296: ldc.i4 192 IL_029B: and IL_029C: ldc.i4.0 IL_029D: ceq IL_029F: ldc.i4.0 IL_02A0: ceq IL_02A2: stloc.s 11 (System.Boolean) IL_02A4: ldarg.2 IL_02A5: ldfld System.UInt32 CitizenInstance::m_path IL_02AA: brtrue => Label14 IL_02AF: ldarg.2 IL_02B0: ldfld Flags CitizenInstance::m_flags IL_02B5: ldc.i4.s 64 IL_02B7: and IL_02B8: ldc.i4.0 IL_02B9: ceq IL_02BB: ldc.i4.0 IL_02BC: ceq IL_02BE: br => Label15 IL_02C3: Label14 IL_02C3: ldc.i4.0 IL_02C4: Label15 IL_02C4: stloc.s 12 (System.Boolean) IL_02C6: ldloc.s 5 (System.UInt16) IL_02C8: brfalse => Label16 IL_02CD: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_02D2: stloc.s 13 (VehicleManager) IL_02D4: ldloc.s 13 (VehicleManager) IL_02D6: ldfld Array16`1 VehicleManager::m_vehicles IL_02DB: ldfld Vehicle[] Array16`1::m_buffer IL_02E0: ldloc.s 5 (System.UInt16) IL_02E2: ldelema Vehicle IL_02E7: call VehicleInfo Vehicle::get_Info() IL_02EC: stloc.s 14 (VehicleInfo) IL_02EE: ldloc.s 14 (VehicleInfo) IL_02F0: ldfld ItemClass VehicleInfo::m_class IL_02F5: ldfld Service ItemClass::m_service IL_02FA: ldc.i4.1 IL_02FB: bne.un => Label17 IL_0300: ldloc.s 14 (VehicleInfo) IL_0302: ldfld VehicleType VehicleInfo::m_vehicleType IL_0307: ldc.i4.s 32 IL_0309: beq => Label18 IL_030E: ldloc.s 14 (VehicleInfo) IL_0310: ldfld VehicleAI VehicleInfo::m_vehicleAI IL_0315: ldloc.s 5 (System.UInt16) IL_0317: ldloc.s 13 (VehicleManager) IL_0319: ldfld Array16`1 VehicleManager::m_vehicles IL_031E: ldfld Vehicle[] Array16`1::m_buffer IL_0323: ldloc.s 5 (System.UInt16) IL_0325: ldelema Vehicle IL_032A: callvirt virtual InstanceID VehicleAI::GetOwnerID(System.UInt16 vehicleID, Vehicle& vehicleData) IL_032F: stloc.s 15 (InstanceID) IL_0331: ldloca.s 15 (InstanceID) IL_0333: call System.UInt32 InstanceID::get_Citizen() IL_0338: ldloc.1 IL_0339: bne.un => Label19 IL_033E: ldloc.s 11 (System.Boolean) IL_0340: brfalse => Label20 IL_0345: ldarg.3 IL_0346: ldsfld InstanceID InstanceID::Empty IL_034B: stobj InstanceID IL_0350: ldstr "CITIZEN_STATUS_DRIVINGTO_OUTSIDE" IL_0355: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_035A: br => Label50 IL_035F: Label20 IL_035F: ldloc.s 6 (System.UInt16) IL_0361: ldloc.3 IL_0362: bne.un => Label21 IL_0367: ldarg.3 IL_0368: ldsfld InstanceID InstanceID::Empty IL_036D: stobj InstanceID IL_0372: ldstr "CITIZEN_STATUS_DRIVINGTO_HOME" IL_0377: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_037C: br => Label51 IL_0381: Label21 IL_0381: ldloc.s 6 (System.UInt16) IL_0383: ldloc.s 4 (System.UInt16) IL_0385: bne.un => Label22 IL_038A: ldarg.3 IL_038B: ldsfld InstanceID InstanceID::Empty IL_0390: stobj InstanceID IL_0395: ldloc.2 IL_0396: brfalse => Label23 IL_039B: ldstr "CITIZEN_STATUS_DRIVINGTO_SCHOOL" IL_03A0: br => Label24 IL_03A5: Label23 IL_03A5: ldstr "CITIZEN_STATUS_DRIVINGTO_WORK" IL_03AA: Label24 IL_03AA: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_03AF: br => Label52 IL_03B4: Label22 IL_03B4: ldarg.3 IL_03B5: ldsfld InstanceID InstanceID::Empty IL_03BA: stobj InstanceID IL_03BF: ldarg.3 IL_03C0: ldloc.s 6 (System.UInt16) IL_03C2: call System.Void InstanceID::set_Building(System.UInt16 value) IL_03C7: ldstr "CITIZEN_STATUS_DRIVINGTO" IL_03CC: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_03D1: br => Label53 IL_03D6: Label19 IL_03D6: br => Label25 IL_03DB: Label17 IL_03DB: Label18 IL_03DB: ldloc.s 14 (VehicleInfo) IL_03DD: ldfld ItemClass VehicleInfo::m_class IL_03E2: ldfld Service ItemClass::m_service IL_03E7: ldc.i4.s 19 IL_03E9: beq => Label26 IL_03EE: ldloc.s 14 (VehicleInfo) IL_03F0: ldfld ItemClass VehicleInfo::m_class IL_03F5: ldfld Service ItemClass::m_service IL_03FA: ldc.i4.s 20 IL_03FC: bne.un => Label27 IL_0401: Label26 IL_0401: ldarg.2 IL_0402: ldfld Flags CitizenInstance::m_flags IL_0407: ldc.i4 4194304 IL_040C: and IL_040D: brfalse => Label28 IL_0412: ldarg.3 IL_0413: ldsfld InstanceID InstanceID::Empty IL_0418: stobj InstanceID IL_041D: ldstr "CITIZEN_STATUS_WAITING_TAXI" IL_0422: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_0427: br => Label54 IL_042C: Label28 IL_042C: ldloc.s 11 (System.Boolean) IL_042E: brfalse => Label29 IL_0433: ldarg.3 IL_0434: ldsfld InstanceID InstanceID::Empty IL_0439: stobj InstanceID IL_043E: ldstr "CITIZEN_STATUS_TRAVELLINGTO_OUTSIDE" IL_0443: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_0448: br => Label55 IL_044D: Label29 IL_044D: ldloc.s 6 (System.UInt16) IL_044F: ldloc.3 IL_0450: bne.un => Label30 IL_0455: ldarg.3 IL_0456: ldsfld InstanceID InstanceID::Empty IL_045B: stobj InstanceID IL_0460: ldstr "CITIZEN_STATUS_TRAVELLINGTO_HOME" IL_0465: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_046A: br => Label56 IL_046F: Label30 IL_046F: ldloc.s 6 (System.UInt16) IL_0471: ldloc.s 4 (System.UInt16) IL_0473: bne.un => Label31 IL_0478: ldarg.3 IL_0479: ldsfld InstanceID InstanceID::Empty IL_047E: stobj InstanceID IL_0483: ldloc.2 IL_0484: brfalse => Label32 IL_0489: ldstr "CITIZEN_STATUS_TRAVELLINGTO_SCHOOL" IL_048E: br => Label33 IL_0493: Label32 IL_0493: ldstr "CITIZEN_STATUS_TRAVELLINGTO_WORK" IL_0498: Label33 IL_0498: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_049D: br => Label57 IL_04A2: Label31 IL_04A2: ldarg.3 IL_04A3: ldsfld InstanceID InstanceID::Empty IL_04A8: stobj InstanceID IL_04AD: ldarg.3 IL_04AE: ldloc.s 6 (System.UInt16) IL_04B0: call System.Void InstanceID::set_Building(System.UInt16 value) IL_04B5: ldstr "CITIZEN_STATUS_TRAVELLINGTO" IL_04BA: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_04BF: br => Label58 IL_04C4: Label16 IL_04C4: Label25 IL_04C4: Label27 IL_04C4: ldloc.s 11 (System.Boolean) IL_04C6: brfalse => Label34 IL_04CB: ldarg.3 IL_04CC: ldsfld InstanceID InstanceID::Empty IL_04D1: stobj InstanceID IL_04D6: ldstr "CITIZEN_STATUS_GOINGTO_OUTSIDE" IL_04DB: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_04E0: br => Label59 IL_04E5: Label34 IL_04E5: ldloc.s 6 (System.UInt16) IL_04E7: ldloc.3 IL_04E8: bne.un => Label35 IL_04ED: ldloc.s 12 (System.Boolean) IL_04EF: brfalse => Label36 IL_04F4: ldarg.3 IL_04F5: ldsfld InstanceID InstanceID::Empty IL_04FA: stobj InstanceID IL_04FF: ldstr "CITIZEN_STATUS_AT_HOME" IL_0504: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_0509: br => Label60 IL_050E: Label36 IL_050E: ldarg.3 IL_050F: ldsfld InstanceID InstanceID::Empty IL_0514: stobj InstanceID IL_0519: ldstr "CITIZEN_STATUS_GOINGTO_HOME" IL_051E: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_0523: br => Label61 IL_0528: Label35 IL_0528: ldloc.s 6 (System.UInt16) IL_052A: ldloc.s 4 (System.UInt16) IL_052C: bne.un => Label37 IL_0531: ldloc.s 12 (System.Boolean) IL_0533: brfalse => Label38 IL_0538: ldarg.3 IL_0539: ldsfld InstanceID InstanceID::Empty IL_053E: stobj InstanceID IL_0543: ldloc.2 IL_0544: brfalse => Label39 IL_0549: ldstr "CITIZEN_STATUS_AT_SCHOOL" IL_054E: br => Label40 IL_0553: Label39 IL_0553: ldstr "CITIZEN_STATUS_AT_WORK" IL_0558: Label40 IL_0558: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_055D: br => Label62 IL_0562: Label38 IL_0562: ldarg.3 IL_0563: ldsfld InstanceID InstanceID::Empty IL_0568: stobj InstanceID IL_056D: ldloc.2 IL_056E: brfalse => Label41 IL_0573: ldstr "CITIZEN_STATUS_GOINGTO_SCHOOL" IL_0578: br => Label42 IL_057D: Label41 IL_057D: ldstr "CITIZEN_STATUS_GOINGTO_WORK" IL_0582: Label42 IL_0582: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_0587: br => Label63 IL_058C: Label37 IL_058C: ldloc.s 12 (System.Boolean) IL_058E: brfalse => Label43 IL_0593: ldarg.3 IL_0594: ldsfld InstanceID InstanceID::Empty IL_0599: stobj InstanceID IL_059E: ldarg.3 IL_059F: ldloc.s 6 (System.UInt16) IL_05A1: call System.Void InstanceID::set_Building(System.UInt16 value) IL_05A6: ldstr "CITIZEN_STATUS_VISITING" IL_05AB: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_05B0: br => Label64 IL_05B5: Label43 IL_05B5: ldarg.3 IL_05B6: ldsfld InstanceID InstanceID::Empty IL_05BB: stobj InstanceID IL_05C0: ldarg.3 IL_05C1: ldloc.s 6 (System.UInt16) IL_05C3: call System.Void InstanceID::set_Building(System.UInt16 value) IL_05C8: ldstr "CITIZEN_STATUS_GOINGTO" IL_05CD: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_05D2: br => Label65 IL_05D7: Label2 IL_05D7: ldarg.3 IL_05D8: ldsfld InstanceID InstanceID::Empty IL_05DD: stobj InstanceID IL_05E2: ldstr "CITIZEN_STATUS_CONFUSED" IL_05E7: call static System.String ColossalFramework.Globalization.Locale::Get(System.String id) IL_05EC: // end original IL_05EC: Label44 IL_05EC: Label45 IL_05EC: Label46 IL_05EC: Label47 IL_05EC: Label48 IL_05EC: Label49 IL_05EC: Label50 IL_05EC: Label51 IL_05EC: Label52 IL_05EC: Label53 IL_05EC: Label54 IL_05EC: Label55 IL_05EC: Label56 IL_05EC: Label57 IL_05EC: Label58 IL_05EC: Label59 IL_05EC: Label60 IL_05EC: Label61 IL_05EC: Label62 IL_05EC: Label63 IL_05EC: Label64 IL_05EC: Label65 IL_05EC: stloc 16 (System.String) IL_05F0: ldloca 16 (System.String) IL_05F4: ldarg 1 IL_05F8: ldarg 2 IL_05FC: call static System.Void TrafficManager.Patch._CitizenAI._ResidentAI.GetLocalizedStatusPatch::Postfix(System.String& __result, System.UInt16 instanceID, CitizenInstance& data) IL_0601: ldloc 16 (System.String) IL_0605: ret DONE ### Patch: virtual VehicleInfo ResidentAI::GetVehicleInfo(System.UInt16 instanceID, CitizenInstance& citizenData, System.Boolean forceProbability, VehicleInfo& trailer) ### Replacement: static VehicleInfo ResidentAI::ResidentAI.GetVehicleInfo_Patch1(ResidentAI this, System.UInt16 instanceID, CitizenInstance& citizenData, System.Boolean forceProbability, VehicleInfo& trailer) IL_0000: Local var 0: Citizen/AgeGroup IL_0000: Local var 1: Citizen/AgePhase IL_0000: Local var 2: System.Int32 IL_0000: Local var 3: System.Int32 IL_0000: Local var 4: ColossalFramework.Math.Randomizer IL_0000: Local var 5: System.Boolean IL_0000: Local var 6: System.Boolean IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Boolean IL_0000: Local var 9: System.Int32 IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: ItemClass/Service IL_0000: Local var 12: ItemClass/SubService IL_0000: Local var 13: VehicleInfo IL_0000: Local var 14: VehicleInfo IL_0000: Local var 15: VehicleInfo IL_0000: Local var 16: System.Boolean IL_0000: ldnull IL_0001: stloc 15 (VehicleInfo) IL_0005: ldc.i4 0 IL_000A: stloc 16 (System.Boolean) IL_000E: ldc.i4.1 IL_000F: stloc 16 (System.Boolean) IL_0013: ldloc 16 (System.Boolean) IL_0017: brfalse => Label1 IL_001C: ldarg.0 IL_001D: ldloca 15 (VehicleInfo) IL_0021: ldarg 1 IL_0025: ldarg 2 IL_0029: ldarg 3 IL_002D: ldarg 4 IL_0031: call static System.Boolean TrafficManager.Patch._CitizenAI._ResidentAI.GetVehicleInfoPatch::Prefix(ResidentAI __instance, VehicleInfo& __result, System.UInt16 instanceID, CitizenInstance& citizenData, System.Boolean forceProbability, VehicleInfo& trailer) IL_0036: stloc 16 (System.Boolean) IL_003A: Label1 IL_003A: nop IL_003B: ldloc 16 (System.Boolean) IL_003F: brfalse => Label0 IL_0044: // start original IL_0044: ldarg.s 4 IL_0046: ldnull IL_0047: stind.ref IL_0048: ldarg.2 IL_0049: ldfld System.UInt32 CitizenInstance::m_citizen IL_004E: brfalse => Label2 IL_0053: ldarg.0 IL_0054: ldfld CitizenInfo CitizenAI::m_info IL_0059: ldfld AgePhase CitizenInfo::m_agePhase IL_005E: stloc.1 IL_005F: ldloc.1 IL_0060: switch => Labels3,4,5,6,7,8,9,10,11,12,13,14,15,16 IL_009D: br => Label17 IL_00A2: Label3 IL_00A2: ldc.i4.0 IL_00A3: stloc.0 IL_00A4: br => Label18 IL_00A9: Label4 IL_00A9: Label5 IL_00A9: ldc.i4.1 IL_00AA: stloc.0 IL_00AB: br => Label19 IL_00B0: Label6 IL_00B0: Label7 IL_00B0: Label8 IL_00B0: ldc.i4.2 IL_00B1: stloc.0 IL_00B2: br => Label20 IL_00B7: Label9 IL_00B7: Label10 IL_00B7: Label11 IL_00B7: Label12 IL_00B7: ldc.i4.3 IL_00B8: stloc.0 IL_00B9: br => Label21 IL_00BE: Label13 IL_00BE: Label14 IL_00BE: Label15 IL_00BE: Label16 IL_00BE: ldc.i4.4 IL_00BF: stloc.0 IL_00C0: br => Label22 IL_00C5: Label17 IL_00C5: ldc.i4.3 IL_00C6: stloc.0 IL_00C7: br => Label23 IL_00CC: Label18 IL_00CC: Label19 IL_00CC: Label20 IL_00CC: Label21 IL_00CC: Label22 IL_00CC: Label23 IL_00CC: ldarg.3 IL_00CD: brtrue => Label24 IL_00D2: ldarg.2 IL_00D3: ldfld Flags CitizenInstance::m_flags IL_00D8: ldc.i4.s 32 IL_00DA: and IL_00DB: brfalse => Label25 IL_00E0: Label24 IL_00E0: ldc.i4.s 100 IL_00E2: stloc.2 IL_00E3: ldc.i4.0 IL_00E4: stloc.3 IL_00E5: br => Label26 IL_00EA: Label25 IL_00EA: ldarg.0 IL_00EB: ldarg.1 IL_00EC: ldarg.2 IL_00ED: ldloc.0 IL_00EE: call System.Int32 ResidentAI::GetCarProbability(System.UInt16 instanceID, CitizenInstance& citizenData, AgeGroup ageGroup) IL_00F3: stloc.2 IL_00F4: ldarg.0 IL_00F5: ldarg.1 IL_00F6: ldarg.2 IL_00F7: ldloc.0 IL_00F8: call System.Int32 ResidentAI::GetBikeProbability(System.UInt16 instanceID, CitizenInstance& citizenData, AgeGroup ageGroup) IL_00FD: stloc.3 IL_00FE: Label26 IL_00FE: ldloca.s 4 (ColossalFramework.Math.Randomizer) IL_0100: ldarg.2 IL_0101: ldfld System.UInt32 CitizenInstance::m_citizen IL_0106: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.UInt32 _seed) IL_010B: ldloca.s 4 (ColossalFramework.Math.Randomizer) IL_010D: ldc.i4.s 100 IL_010F: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0114: ldloc.2 IL_0115: clt IL_0117: stloc.s 5 (System.Boolean) IL_0119: ldloca.s 4 (ColossalFramework.Math.Randomizer) IL_011B: ldc.i4.s 100 IL_011D: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0122: ldloc.3 IL_0123: clt IL_0125: stloc.s 6 (System.Boolean) IL_0127: ldloc.s 5 (System.Boolean) IL_0129: brfalse => Label27 IL_012E: ldarg.0 IL_012F: ldarg.1 IL_0130: ldarg.2 IL_0131: ldarg.0 IL_0132: ldfld CitizenInfo CitizenAI::m_info IL_0137: ldfld AgePhase CitizenInfo::m_agePhase IL_013C: call System.Int32 ResidentAI::GetElectricCarProbability(System.UInt16 instanceID, CitizenInstance& citizenData, AgePhase agePhase) IL_0141: stloc.s 9 (System.Int32) IL_0143: ldc.i4.0 IL_0144: stloc.s 7 (System.Boolean) IL_0146: ldloca.s 4 (ColossalFramework.Math.Randomizer) IL_0148: ldc.i4.s 100 IL_014A: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_014F: ldloc.s 9 (System.Int32) IL_0151: clt IL_0153: stloc.s 8 (System.Boolean) IL_0155: br => Label28 IL_015A: Label27 IL_015A: ldarg.0 IL_015B: ldarg.1 IL_015C: ldarg.2 IL_015D: ldloc.0 IL_015E: call System.Int32 ResidentAI::GetTaxiProbability(System.UInt16 instanceID, CitizenInstance& citizenData, AgeGroup ageGroup) IL_0163: stloc.s 10 (System.Int32) IL_0165: ldloca.s 4 (ColossalFramework.Math.Randomizer) IL_0167: ldc.i4.s 100 IL_0169: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_016E: ldloc.s 10 (System.Int32) IL_0170: clt IL_0172: stloc.s 7 (System.Boolean) IL_0174: ldc.i4.0 IL_0175: stloc.s 8 (System.Boolean) IL_0177: Label28 IL_0177: ldc.i4.1 IL_0178: stloc.s 11 (ItemClass+Service) IL_017A: ldloc.s 8 (System.Boolean) IL_017C: brfalse => Label29 IL_0181: ldc.i4.s 25 IL_0183: br => Label30 IL_0188: Label29 IL_0188: ldc.i4.1 IL_0189: Label30 IL_0189: stloc.s 12 (ItemClass+SubService) IL_018B: ldloc.s 5 (System.Boolean) IL_018D: brtrue => Label31 IL_0192: ldloc.s 7 (System.Boolean) IL_0194: brfalse => Label32 IL_0199: ldc.i4.s 19 IL_019B: stloc.s 11 (ItemClass+Service) IL_019D: ldc.i4.s 15 IL_019F: stloc.s 12 (ItemClass+SubService) IL_01A1: Label31 IL_01A1: Label32 IL_01A1: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_01A6: ldloca.s 4 (ColossalFramework.Math.Randomizer) IL_01A8: ldloc.s 11 (ItemClass+Service) IL_01AA: ldloc.s 12 (ItemClass+SubService) IL_01AC: ldc.i4.0 IL_01AD: callvirt VehicleInfo VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service service, SubService subService, Level level) IL_01B2: stloc.s 13 (VehicleInfo) IL_01B4: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_01B9: ldloca.s 4 (ColossalFramework.Math.Randomizer) IL_01BB: ldc.i4.1 IL_01BC: ldc.i4.2 IL_01BD: ldloc.0 IL_01BE: brtrue => Label33 IL_01C3: ldc.i4.0 IL_01C4: br => Label34 IL_01C9: Label33 IL_01C9: ldc.i4.1 IL_01CA: Label34 IL_01CA: callvirt VehicleInfo VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service service, SubService subService, Level level) IL_01CF: stloc.s 14 (VehicleInfo) IL_01D1: ldloc.s 6 (System.Boolean) IL_01D3: brfalse => Label35 IL_01D8: ldloc.s 14 (VehicleInfo) IL_01DA: brfalse => Label36 IL_01DF: ldloc.s 14 (VehicleInfo) IL_01E1: br => Label40 IL_01E6: Label35 IL_01E6: Label36 IL_01E6: ldloc.s 5 (System.Boolean) IL_01E8: brtrue => Label37 IL_01ED: ldloc.s 7 (System.Boolean) IL_01EF: brfalse => Label38 IL_01F4: Label37 IL_01F4: ldloc.s 13 (VehicleInfo) IL_01F6: brfalse => Label39 IL_01FB: ldloc.s 13 (VehicleInfo) IL_01FD: br => Label41 IL_0202: Label38 IL_0202: Label39 IL_0202: ldnull IL_0203: br => Label42 IL_0208: Label2 IL_0208: ldnull IL_0209: // end original IL_0209: Label40 IL_0209: Label41 IL_0209: Label42 IL_0209: stloc 15 (VehicleInfo) IL_020D: Label0 IL_020D: ldloc 15 (VehicleInfo) IL_0211: ret DONE ### Patch: virtual System.Void HumanAI::ArriveAtDestination(System.UInt16 instanceID, CitizenInstance& citizenData, System.Boolean success) ### Replacement: static System.Void HumanAI::HumanAI.ArriveAtDestination_Patch1(HumanAI this, System.UInt16 instanceID, CitizenInstance& citizenData, System.Boolean success) IL_0000: Local var 0: System.UInt32 IL_0000: Local var 1: CitizenManager IL_0000: Local var 2: System.UInt16 IL_0000: Local var 3: System.UInt16 IL_0000: Local var 4: TransportInfo IL_0000: Local var 5: BuildingManager IL_0000: Local var 6: BuildingInfo IL_0000: Local var 7: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 7 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 7 (System.Boolean) IL_000E: ldloc 7 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg.0 IL_0018: ldarg 1 IL_001C: ldarg 2 IL_0020: ldarg 3 IL_0024: call static System.Void TrafficManager.Patch._CitizenAI._HumanAI.ArriveAtDestinationPatch::Prefix(HumanAI __instance, System.UInt16 instanceID, CitizenInstance& citizenData, System.Boolean success) IL_0029: Label1 IL_0029: nop IL_002A: ldloc 7 (System.Boolean) IL_002E: brfalse => Label0 IL_0033: // start original IL_0033: ldarg.2 IL_0034: ldfld System.UInt32 CitizenInstance::m_citizen IL_0039: stloc.0 IL_003A: ldloc.0 IL_003B: brfalse => Label2 IL_0040: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0045: stloc.1 IL_0046: ldloc.1 IL_0047: ldfld Array32`1 CitizenManager::m_citizens IL_004C: ldfld Citizen[] Array32`1::m_buffer IL_0051: ldloc.0 IL_0052: conv.u IL_0053: ldelema Citizen IL_0058: ldloc.0 IL_0059: ldc.i4.0 IL_005A: ldc.i4.0 IL_005B: call System.Void Citizen::SetVehicle(System.UInt32 citizenID, System.UInt16 vehicleID, System.UInt32 unitID) IL_0060: ldarg.2 IL_0061: ldfld Flags CitizenInstance::m_flags IL_0066: ldc.i4 134217728 IL_006B: and IL_006C: brfalse => Label3 IL_0071: ldarg.3 IL_0072: brfalse => Label4 IL_0077: ldarg.2 IL_0078: ldfld System.UInt16 CitizenInstance::m_targetBuilding IL_007D: stloc.2 IL_007E: ldloc.2 IL_007F: brfalse => Label5 IL_0084: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0089: ldfld Array16`1 NetManager::m_nodes IL_008E: ldfld NetNode[] Array16`1::m_buffer IL_0093: ldloc.2 IL_0094: ldelema NetNode IL_0099: ldfld System.UInt16 NetNode::m_transportLine IL_009E: stloc.3 IL_009F: ldloc.3 IL_00A0: brfalse => Label6 IL_00A5: call static TransportManager ColossalFramework.Singleton`1::get_instance() IL_00AA: ldfld Array16`1 TransportManager::m_lines IL_00AF: ldfld TransportLine[] Array16`1::m_buffer IL_00B4: ldloc.3 IL_00B5: ldelema TransportLine IL_00BA: call TransportInfo TransportLine::get_Info() IL_00BF: stloc.s 4 (TransportInfo) IL_00C1: ldloc.s 4 (TransportInfo) IL_00C3: ldfld VehicleType TransportInfo::m_vehicleType IL_00C8: brtrue => Label7 IL_00CD: ldarg.1 IL_00CE: ldc.i4.1 IL_00CF: and IL_00D0: brtrue => Label8 IL_00D5: ldloc.2 IL_00D6: call static System.UInt16 TransportLine::GetNextStop(System.UInt16 stop) IL_00DB: stloc.2 IL_00DC: br => Label9 IL_00E1: Label8 IL_00E1: ldloc.2 IL_00E2: call static System.UInt16 TransportLine::GetPrevStop(System.UInt16 stop) IL_00E7: stloc.2 IL_00E8: Label9 IL_00E8: ldloc.2 IL_00E9: brfalse => Label10 IL_00EE: ldarg.2 IL_00EF: dup IL_00F0: ldfld Flags CitizenInstance::m_flags IL_00F5: ldc.i4 268435456 IL_00FA: or IL_00FB: stfld Flags CitizenInstance::m_flags IL_0100: ldarg.0 IL_0101: ldarg.1 IL_0102: ldarg.2 IL_0103: ldloc.2 IL_0104: ldc.i4.1 IL_0105: callvirt virtual System.Void CitizenAI::SetTarget(System.UInt16 instanceID, CitizenInstance& data, System.UInt16 targetIndex, System.Boolean targetIsNode) IL_010A: br => Label18 IL_010F: Label10 IL_010F: br => Label11 IL_0114: Label7 IL_0114: ldarg.2 IL_0115: dup IL_0116: ldfld Flags CitizenInstance::m_flags IL_011B: ldc.i4 268435456 IL_0120: or IL_0121: stfld Flags CitizenInstance::m_flags IL_0126: ldarg.0 IL_0127: ldarg.1 IL_0128: ldarg.2 IL_0129: ldloc.2 IL_012A: call System.Void HumanAI::WaitTouristVehicle(System.UInt16 instanceID, CitizenInstance& citizenData, System.UInt16 stop) IL_012F: br => Label19 IL_0134: Label4 IL_0134: Label5 IL_0134: Label6 IL_0134: Label11 IL_0134: br => Label12 IL_0139: Label3 IL_0139: ldarg.3 IL_013A: brfalse => Label13 IL_013F: ldloc.1 IL_0140: ldfld Array32`1 CitizenManager::m_citizens IL_0145: ldfld Citizen[] Array32`1::m_buffer IL_014A: ldloc.0 IL_014B: conv.u IL_014C: ldelema Citizen IL_0151: ldloc.0 IL_0152: ldarg.2 IL_0153: ldfld System.UInt16 CitizenInstance::m_targetBuilding IL_0158: call System.Void Citizen::SetLocationByBuilding(System.UInt32 citizenID, System.UInt16 buildingID) IL_015D: Label13 IL_015D: ldarg.2 IL_015E: ldfld System.UInt16 CitizenInstance::m_targetBuilding IL_0163: brfalse => Label14 IL_0168: ldloc.1 IL_0169: ldfld Array32`1 CitizenManager::m_citizens IL_016E: ldfld Citizen[] Array32`1::m_buffer IL_0173: ldloc.0 IL_0174: conv.u IL_0175: ldelema Citizen IL_017A: call Location Citizen::get_CurrentLocation() IL_017F: ldc.i4.2 IL_0180: bne.un => Label15 IL_0185: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_018A: stloc.s 5 (BuildingManager) IL_018C: ldloc.s 5 (BuildingManager) IL_018E: ldfld Array16`1 BuildingManager::m_buildings IL_0193: ldfld Building[] Array16`1::m_buffer IL_0198: ldarg.2 IL_0199: ldfld System.UInt16 CitizenInstance::m_targetBuilding IL_019E: ldelema Building IL_01A3: call BuildingInfo Building::get_Info() IL_01A8: stloc.s 6 (BuildingInfo) IL_01AA: ldloc.s 6 (BuildingInfo) IL_01AC: ldfld BuildingAI BuildingInfo::m_buildingAI IL_01B1: ldarg.2 IL_01B2: ldfld System.UInt16 CitizenInstance::m_targetBuilding IL_01B7: ldloc.s 5 (BuildingManager) IL_01B9: ldfld Array16`1 BuildingManager::m_buildings IL_01BE: ldfld Building[] Array16`1::m_buffer IL_01C3: ldarg.2 IL_01C4: ldfld System.UInt16 CitizenInstance::m_targetBuilding IL_01C9: ldelema Building IL_01CE: ldloc.0 IL_01CF: callvirt virtual System.Void BuildingAI::VisitorEnter(System.UInt16 buildingID, Building& data, System.UInt32 citizen) IL_01D4: Label2 IL_01D4: Label12 IL_01D4: Label14 IL_01D4: Label15 IL_01D4: ldarg.2 IL_01D5: ldfld Flags CitizenInstance::m_flags IL_01DA: ldc.i4.s 64 IL_01DC: and IL_01DD: brfalse => Label16 IL_01E2: ldarg.3 IL_01E3: brtrue => Label17 IL_01E8: Label16 IL_01E8: ldarg.0 IL_01E9: ldarg.1 IL_01EA: ldarg.2 IL_01EB: ldc.i4.0 IL_01EC: callvirt virtual System.Void CitizenAI::SetSource(System.UInt16 instanceID, CitizenInstance& data, System.UInt16 sourceBuilding) IL_01F1: ldarg.0 IL_01F2: ldarg.1 IL_01F3: ldarg.2 IL_01F4: ldc.i4.0 IL_01F5: call System.Void CitizenAI::SetTarget(System.UInt16 instanceID, CitizenInstance& data, System.UInt16 targetBuilding) IL_01FA: ldarg.2 IL_01FB: ldarg.1 IL_01FC: call System.Void CitizenInstance::Unspawn(System.UInt16 instanceID) IL_0201: // end original IL_0201: Label17 IL_0201: Label18 IL_0201: Label19 IL_0201: Label0 IL_0201: ret DONE ### Patch: System.Boolean HumanAI::CheckTrafficLights(System.UInt16 node, System.UInt16 segment) ### Replacement: static System.Boolean HumanAI::HumanAI.CheckTrafficLights_Patch1(HumanAI this, System.UInt16 node, System.UInt16 segment) IL_0000: Local var 0: NetManager IL_0000: Local var 1: System.UInt32 IL_0000: Local var 2: System.UInt32 IL_0000: Local var 3: System.UInt32 IL_0000: Local var 4: RoadBaseAI/TrafficLightState IL_0000: Local var 5: RoadBaseAI/TrafficLightState IL_0000: Local var 6: System.Boolean IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Boolean IL_0000: Local var 9: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 8 (System.Boolean) IL_0009: ldc.i4 0 IL_000E: stloc 9 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 9 (System.Boolean) IL_0017: ldloc 9 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldloca 8 (System.Boolean) IL_0024: ldarg 1 IL_0028: ldarg 2 IL_002C: call static System.Boolean TrafficManager.Patch._CitizenAI._HumanAI.CheckTrafficLightsPatch::Prefix(System.Boolean& __result, System.UInt16 node, System.UInt16 segment) IL_0031: stloc 9 (System.Boolean) IL_0035: Label1 IL_0035: nop IL_0036: ldloc 9 (System.Boolean) IL_003A: brfalse => Label0 IL_003F: // start original IL_003F: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0044: stloc.0 IL_0045: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_004A: ldfld System.UInt32 SimulationManager::m_currentFrameIndex IL_004F: stloc.1 IL_0050: ldarg.1 IL_0051: ldc.i4.8 IL_0052: shl IL_0053: ldc.i4 32768 IL_0058: div.un IL_0059: stloc.2 IL_005A: ldloc.1 IL_005B: ldloc.2 IL_005C: sub IL_005D: ldc.i4 255 IL_0062: and IL_0063: stloc.3 IL_0064: ldarg.1 IL_0065: ldloc.0 IL_0066: ldfld Array16`1 NetManager::m_segments IL_006B: ldfld NetSegment[] Array16`1::m_buffer IL_0070: ldarg.2 IL_0071: ldelema NetSegment IL_0076: ldloc.1 IL_0077: ldloc.2 IL_0078: sub IL_0079: ldloca.s 4 (RoadBaseAI+TrafficLightState) IL_007B: ldloca.s 5 (RoadBaseAI+TrafficLightState) IL_007D: ldloca.s 6 (System.Boolean) IL_007F: ldloca.s 7 (System.Boolean) IL_0081: call static System.Void RoadBaseAI::GetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData, System.UInt32 frame, TrafficLightState& vehicleLightState, TrafficLightState& pedestrianLightState, System.Boolean& vehicles, System.Boolean& pedestrians) IL_0086: ldloc.s 5 (RoadBaseAI+TrafficLightState) IL_0088: ldc.i4.1 IL_0089: beq => Label2 IL_008E: ldloc.s 5 (RoadBaseAI+TrafficLightState) IL_0090: ldc.i4.3 IL_0091: beq => Label3 IL_0096: ldloc.s 5 (RoadBaseAI+TrafficLightState) IL_0098: ldc.i4.2 IL_0099: beq => Label4 IL_009E: br => Label5 IL_00A3: Label2 IL_00A3: ldloc.3 IL_00A4: ldc.i4.s 60 IL_00A6: bge.un => Label6 IL_00AB: ldc.i4.0 IL_00AC: br => Label10 IL_00B1: Label6 IL_00B1: br => Label7 IL_00B6: Label3 IL_00B6: Label4 IL_00B6: ldloc.s 7 (System.Boolean) IL_00B8: brtrue => Label8 IL_00BD: ldloc.3 IL_00BE: ldc.i4 196 IL_00C3: blt.un => Label9 IL_00C8: ldc.i4.1 IL_00C9: stloc.s 7 (System.Boolean) IL_00CB: ldarg.1 IL_00CC: ldloc.0 IL_00CD: ldfld Array16`1 NetManager::m_segments IL_00D2: ldfld NetSegment[] Array16`1::m_buffer IL_00D7: ldarg.2 IL_00D8: ldelema NetSegment IL_00DD: ldloc.1 IL_00DE: ldloc.2 IL_00DF: sub IL_00E0: ldloc.s 4 (RoadBaseAI+TrafficLightState) IL_00E2: ldloc.s 5 (RoadBaseAI+TrafficLightState) IL_00E4: ldloc.s 6 (System.Boolean) IL_00E6: ldloc.s 7 (System.Boolean) IL_00E8: call static System.Void RoadBaseAI::SetTrafficLightState(System.UInt16 nodeID, NetSegment& segmentData, System.UInt32 frame, TrafficLightState vehicleLightState, TrafficLightState pedestrianLightState, System.Boolean vehicles, System.Boolean pedestrians) IL_00ED: Label8 IL_00ED: Label9 IL_00ED: ldc.i4.0 IL_00EE: br => Label11 IL_00F3: Label5 IL_00F3: Label7 IL_00F3: ldc.i4.1 IL_00F4: // end original IL_00F4: Label10 IL_00F4: Label11 IL_00F4: stloc 8 (System.Boolean) IL_00F8: Label0 IL_00F8: ldloc 8 (System.Boolean) IL_00FC: ret DONE ### Patch: virtual System.Void HumanAI::SimulationStep(System.UInt16 instanceID, CitizenInstance& data, UnityEngine.Vector3 physicsLodRefPos) ### Replacement: static System.Void HumanAI::HumanAI.SimulationStep_Patch1(HumanAI this, System.UInt16 instanceID, CitizenInstance& data, UnityEngine.Vector3 physicsLodRefPos) IL_0000: Local var 0: System.UInt32 IL_0000: Local var 1: CitizenManager IL_0000: Local var 2: PathManager IL_0000: Local var 3: System.Byte IL_0000: Local var 4: VehicleManager IL_0000: Local var 5: System.UInt16 IL_0000: Local var 6: VehicleInfo IL_0000: Local var 7: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 7 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 7 (System.Boolean) IL_000E: ldloc 7 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg.0 IL_0018: ldarg 1 IL_001C: ldarg 2 IL_0020: ldarg 3 IL_0024: call static System.Boolean TrafficManager.Patch._CitizenAI._HumanAI.SimulationStepPatch::Prefix(HumanAI __instance, System.UInt16 instanceID, CitizenInstance& data, UnityEngine.Vector3 physicsLodRefPos) IL_0029: stloc 7 (System.Boolean) IL_002D: Label1 IL_002D: nop IL_002E: ldloc 7 (System.Boolean) IL_0032: brfalse => Label0 IL_0037: // start original IL_0037: ldarg.2 IL_0038: ldfld Flags CitizenInstance::m_flags IL_003D: ldc.i4 100663296 IL_0042: and IL_0043: brfalse => Label2 IL_0048: ldarg.2 IL_0049: ldfld Flags CitizenInstance::m_flags IL_004E: ldc.i4.s 16 IL_0050: and IL_0051: brtrue => Label3 IL_0056: ldarg.2 IL_0057: ldfld System.UInt32 CitizenInstance::m_citizen IL_005C: stloc.0 IL_005D: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0062: ldarg.1 IL_0063: callvirt System.Void CitizenManager::ReleaseCitizenInstance(System.UInt16 instance) IL_0068: ldloc.0 IL_0069: brfalse => Label4 IL_006E: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0073: ldloc.0 IL_0074: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_0079: Label4 IL_0079: br => Label16 IL_007E: Label2 IL_007E: Label3 IL_007E: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0083: stloc.1 IL_0084: ldarg.2 IL_0085: ldfld Flags CitizenInstance::m_flags IL_008A: ldc.i4 256 IL_008F: and IL_0090: brfalse => Label5 IL_0095: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_009A: stloc.2 IL_009B: ldloc.2 IL_009C: ldfld Array32`1 PathManager::m_pathUnits IL_00A1: ldfld PathUnit[] Array32`1::m_buffer IL_00A6: ldarg.2 IL_00A7: ldfld System.UInt32 CitizenInstance::m_path IL_00AC: conv.u IL_00AD: ldelema PathUnit IL_00B2: ldfld System.Byte PathUnit::m_pathFindFlags IL_00B7: stloc.3 IL_00B8: ldloc.3 IL_00B9: ldc.i4.4 IL_00BA: and IL_00BB: brfalse => Label6 IL_00C0: ldarg.2 IL_00C1: ldfld System.UInt32 CitizenInstance::m_citizen IL_00C6: brfalse => Label7 IL_00CB: ldloc.1 IL_00CC: ldfld Array32`1 CitizenManager::m_citizens IL_00D1: ldfld Citizen[] Array32`1::m_buffer IL_00D6: ldarg.2 IL_00D7: ldfld System.UInt32 CitizenInstance::m_citizen IL_00DC: conv.u IL_00DD: ldelema Citizen IL_00E2: ldfld System.UInt16 Citizen::m_vehicle IL_00E7: brtrue => Label8 IL_00EC: Label7 IL_00EC: ldarg.0 IL_00ED: ldarg.1 IL_00EE: ldarg.2 IL_00EF: callvirt virtual System.Void HumanAI::Spawn(System.UInt16 instanceID, CitizenInstance& data) IL_00F4: Label8 IL_00F4: ldarg.2 IL_00F5: ldc.i4 255 IL_00FA: stfld System.Byte CitizenInstance::m_pathPositionIndex IL_00FF: ldarg.2 IL_0100: dup IL_0101: ldfld Flags CitizenInstance::m_flags IL_0106: ldc.i4 -257 IL_010B: and IL_010C: stfld Flags CitizenInstance::m_flags IL_0111: ldarg.2 IL_0112: dup IL_0113: ldfld Flags CitizenInstance::m_flags IL_0118: ldc.i4 -536952897 IL_011D: and IL_011E: stfld Flags CitizenInstance::m_flags IL_0123: ldarg.0 IL_0124: ldarg.1 IL_0125: ldarg.2 IL_0126: callvirt virtual System.Void HumanAI::PathfindSuccess(System.UInt16 instanceID, CitizenInstance& data) IL_012B: br => Label9 IL_0130: Label6 IL_0130: ldloc.3 IL_0131: ldc.i4.8 IL_0132: and IL_0133: brfalse => Label10 IL_0138: ldarg.2 IL_0139: dup IL_013A: ldfld Flags CitizenInstance::m_flags IL_013F: ldc.i4 -257 IL_0144: and IL_0145: stfld Flags CitizenInstance::m_flags IL_014A: ldarg.2 IL_014B: dup IL_014C: ldfld Flags CitizenInstance::m_flags IL_0151: ldc.i4 -536952897 IL_0156: and IL_0157: stfld Flags CitizenInstance::m_flags IL_015C: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_0161: ldarg.2 IL_0162: ldfld System.UInt32 CitizenInstance::m_path IL_0167: callvirt System.Void PathManager::ReleasePath(System.UInt32 unit) IL_016C: ldarg.2 IL_016D: ldc.i4.0 IL_016E: stfld System.UInt32 CitizenInstance::m_path IL_0173: ldarg.0 IL_0174: ldarg.1 IL_0175: ldarg.2 IL_0176: callvirt virtual System.Void HumanAI::PathfindFailure(System.UInt16 instanceID, CitizenInstance& data) IL_017B: br => Label17 IL_0180: Label5 IL_0180: Label9 IL_0180: Label10 IL_0180: ldarg.0 IL_0181: ldarg.1 IL_0182: ldarg.2 IL_0183: ldarg.3 IL_0184: call virtual System.Void CitizenAI::SimulationStep(System.UInt16 instanceID, CitizenInstance& data, UnityEngine.Vector3 physicsLodRefPos) IL_0189: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_018E: stloc.s 4 (VehicleManager) IL_0190: ldc.i4.0 IL_0191: stloc.s 5 (System.UInt16) IL_0193: ldarg.2 IL_0194: ldfld System.UInt32 CitizenInstance::m_citizen IL_0199: brfalse => Label11 IL_019E: ldloc.1 IL_019F: ldfld Array32`1 CitizenManager::m_citizens IL_01A4: ldfld Citizen[] Array32`1::m_buffer IL_01A9: ldarg.2 IL_01AA: ldfld System.UInt32 CitizenInstance::m_citizen IL_01AF: conv.u IL_01B0: ldelema Citizen IL_01B5: ldfld System.UInt16 Citizen::m_vehicle IL_01BA: stloc.s 5 (System.UInt16) IL_01BC: Label11 IL_01BC: ldloc.s 5 (System.UInt16) IL_01BE: brfalse => Label12 IL_01C3: ldloc.s 4 (VehicleManager) IL_01C5: ldfld Array16`1 VehicleManager::m_vehicles IL_01CA: ldfld Vehicle[] Array16`1::m_buffer IL_01CF: ldloc.s 5 (System.UInt16) IL_01D1: ldelema Vehicle IL_01D6: call VehicleInfo Vehicle::get_Info() IL_01DB: stloc.s 6 (VehicleInfo) IL_01DD: ldloc.s 6 (VehicleInfo) IL_01DF: ldfld VehicleType VehicleInfo::m_vehicleType IL_01E4: ldc.i4.s 32 IL_01E6: bne.un => Label13 IL_01EB: ldloc.s 6 (VehicleInfo) IL_01ED: ldfld VehicleAI VehicleInfo::m_vehicleAI IL_01F2: ldloc.s 5 (System.UInt16) IL_01F4: ldloc.s 4 (VehicleManager) IL_01F6: ldfld Array16`1 VehicleManager::m_vehicles IL_01FB: ldfld Vehicle[] Array16`1::m_buffer IL_0200: ldloc.s 5 (System.UInt16) IL_0202: ldelema Vehicle IL_0207: ldloc.s 5 (System.UInt16) IL_0209: ldloc.s 4 (VehicleManager) IL_020B: ldfld Array16`1 VehicleManager::m_vehicles IL_0210: ldfld Vehicle[] Array16`1::m_buffer IL_0215: ldloc.s 5 (System.UInt16) IL_0217: ldelema Vehicle IL_021C: ldc.i4.0 IL_021D: callvirt virtual System.Void VehicleAI::SimulationStep(System.UInt16 vehicleID, Vehicle& vehicleData, System.UInt16 leaderID, Vehicle& leaderData, System.Int32 lodPhysics) IL_0222: ldc.i4.0 IL_0223: stloc.s 5 (System.UInt16) IL_0225: Label12 IL_0225: Label13 IL_0225: ldloc.s 5 (System.UInt16) IL_0227: brtrue => Label14 IL_022C: ldarg.2 IL_022D: ldfld Flags CitizenInstance::m_flags IL_0232: ldc.i4 100663568 IL_0237: and IL_0238: brtrue => Label15 IL_023D: ldarg.2 IL_023E: dup IL_023F: ldfld Flags CitizenInstance::m_flags IL_0244: ldc.i4 -536952897 IL_0249: and IL_024A: stfld Flags CitizenInstance::m_flags IL_024F: ldarg.0 IL_0250: ldarg.1 IL_0251: ldarg.2 IL_0252: ldc.i4.0 IL_0253: callvirt virtual System.Void HumanAI::ArriveAtDestination(System.UInt16 instanceID, CitizenInstance& citizenData, System.Boolean success) IL_0258: ldloc.1 IL_0259: ldarg.1 IL_025A: callvirt System.Void CitizenManager::ReleaseCitizenInstance(System.UInt16 instance) IL_025F: // end original IL_025F: Label14 IL_025F: Label15 IL_025F: Label16 IL_025F: Label17 IL_025F: Label0 IL_025F: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: virtual System.Int32 PrivateBuildingAI::GetConstructionTime() ### Replacement: static System.Int32 PrivateBuildingAI::PrivateBuildingAI.GetConstructionTime_Patch0(PrivateBuildingAI this) IL_0000: // start original IL_0000: call static ToolManager ColossalFramework.Singleton`1::get_instance() IL_0005: ldfld ToolController SimulationManagerBase`2::m_properties IL_000A: ldfld Availability ToolController::m_mode IL_000F: ldc.i4.4 IL_0010: and IL_0011: brfalse => Label0 IL_0016: ldc.i4.0 IL_0017: br => Label1 IL_001C: Label0 IL_001C: ldarg.0 IL_001D: ldfld System.Int32 PrivateBuildingAI::m_constructionTime IL_0022: // end original IL_0022: Label1 IL_0022: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: System.Int32 PrivateBuildingAI::HandleWorkers(System.UInt16 buildingID, Building& buildingData, BehaviourData& behaviour, System.Int32& aliveWorkerCount, System.Int32& totalWorkerCount, System.Int32& workPlaceCount) ### Replacement: static System.Int32 PrivateBuildingAI::PrivateBuildingAI.HandleWorkers_Patch0(PrivateBuildingAI this, System.UInt16 buildingID, Building& buildingData, BehaviourData& behaviour, System.Int32& aliveWorkerCount, System.Int32& totalWorkerCount, System.Int32& workPlaceCount) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: System.Int32 IL_0000: Local var 2: System.Int32 IL_0000: Local var 3: System.Int32 IL_0000: Local var 4: System.Int32 IL_0000: Local var 5: System.Int32 IL_0000: Local var 6: Notification/ProblemStruct IL_0000: Local var 7: System.Int32 IL_0000: Local var 8: System.Int32 IL_0000: // start original IL_0000: ldc.i4.0 IL_0001: stloc.0 IL_0002: ldarg.0 IL_0003: ldarg.1 IL_0004: ldarg.2 IL_0005: ldarg.3 IL_0006: ldarg.s 4 IL_0008: ldarg.s 5 IL_000A: call System.Void CommonBuildingAI::GetWorkBehaviour(System.UInt16 buildingID, Building& buildingData, BehaviourData& behaviour, System.Int32& aliveCount, System.Int32& totalCount) IL_000F: ldarg.0 IL_0010: ldarg.2 IL_0011: ldfld System.Byte Building::m_level IL_0016: ldarg.1 IL_0017: newobj System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_001C: ldarg.2 IL_001D: call System.Int32 Building::get_Width() IL_0022: ldarg.2 IL_0023: call System.Int32 Building::get_Length() IL_0028: ldloca.s 1 (System.Int32) IL_002A: ldloca.s 2 (System.Int32) IL_002C: ldloca.s 3 (System.Int32) IL_002E: ldloca.s 4 (System.Int32) IL_0030: callvirt virtual System.Void PrivateBuildingAI::CalculateWorkplaceCount(Level level, ColossalFramework.Math.Randomizer r, System.Int32 width, System.Int32 length, System.Int32& level0, System.Int32& level1, System.Int32& level2, System.Int32& level3) IL_0035: ldarg.0 IL_0036: ldarg.1 IL_0037: ldarg.2 IL_0038: ldloca.s 1 (System.Int32) IL_003A: ldloca.s 2 (System.Int32) IL_003C: ldloca.s 3 (System.Int32) IL_003E: ldloca.s 4 (System.Int32) IL_0040: call System.Void PrivateBuildingAI::AdjustWorkplaceCount(System.UInt16 buildingID, Building& data, System.Int32& workPlaceCount0, System.Int32& workPlaceCount1, System.Int32& workPlaceCount2, System.Int32& workPlaceCount3) IL_0045: ldarg.s 6 IL_0047: ldloc.1 IL_0048: ldloc.2 IL_0049: add IL_004A: ldloc.3 IL_004B: add IL_004C: ldloc.s 4 (System.Int32) IL_004E: add IL_004F: stind.i4 IL_0050: ldarg.2 IL_0051: ldfld System.Byte Building::m_fireIntensity IL_0056: brtrue => Label0 IL_005B: ldarg.0 IL_005C: ldarg.1 IL_005D: ldarg.2 IL_005E: ldloc.1 IL_005F: ldloc.2 IL_0060: ldloc.3 IL_0061: ldloc.s 4 (System.Int32) IL_0063: ldarg.3 IL_0064: ldarg.s 4 IL_0066: ldind.i4 IL_0067: ldarg.s 5 IL_0069: ldind.i4 IL_006A: call System.Void CommonBuildingAI::HandleWorkPlaces(System.UInt16 buildingID, Building& data, System.Int32 workPlaces0, System.Int32 workPlaces1, System.Int32 workPlaces2, System.Int32 workPlaces3, BehaviourData& behaviour, System.Int32 aliveWorkerCount, System.Int32 totalWorkerCount) IL_006F: ldarg.s 4 IL_0071: ldind.i4 IL_0072: brfalse => Label1 IL_0077: ldarg.s 6 IL_0079: ldind.i4 IL_007A: brfalse => Label2 IL_007F: ldarg.3 IL_0080: ldfld System.Int32 BehaviourData::m_efficiencyAccumulation IL_0085: ldarg.s 4 IL_0087: ldind.i4 IL_0088: add IL_0089: ldc.i4.1 IL_008A: sub IL_008B: ldarg.s 4 IL_008D: ldind.i4 IL_008E: div IL_008F: stloc.s 5 (System.Int32) IL_0091: ldc.i4.2 IL_0092: ldloc.s 5 (System.Int32) IL_0094: mul IL_0095: ldc.i4 200 IL_009A: ldloc.s 5 (System.Int32) IL_009C: mul IL_009D: ldc.i4.s 100 IL_009F: ldarg.s 4 IL_00A1: ldind.i4 IL_00A2: mul IL_00A3: ldarg.s 6 IL_00A5: ldind.i4 IL_00A6: add IL_00A7: ldc.i4.1 IL_00A8: sub IL_00A9: ldarg.s 6 IL_00AB: ldind.i4 IL_00AC: div IL_00AD: ldc.i4.s 100 IL_00AF: add IL_00B0: div IL_00B1: sub IL_00B2: stloc.0 IL_00B3: ldarg.0 IL_00B4: ldarg.1 IL_00B5: ldloca.s 0 (System.Int32) IL_00B7: call System.Void PrivateBuildingAI::AdjustProductionRate(System.UInt16 buildingID, System.Int32& productionRate) IL_00BC: Label0 IL_00BC: Label1 IL_00BC: Label2 IL_00BC: ldarg.2 IL_00BD: ldfld ProblemStruct Building::m_problems IL_00C2: ldc.i4 12582912 IL_00C7: conv.i8 IL_00C8: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_00CD: call static ProblemStruct Notification::RemoveProblems(ProblemStruct problems1, ProblemStruct problems2) IL_00D2: stloc.s 6 (Notification+ProblemStruct) IL_00D4: ldloc.s 4 (System.Int32) IL_00D6: ldc.i4 300 IL_00DB: mul IL_00DC: ldloc.3 IL_00DD: ldc.i4 200 IL_00E2: mul IL_00E3: add IL_00E4: ldloc.2 IL_00E5: ldc.i4.s 100 IL_00E7: mul IL_00E8: add IL_00E9: ldarg.s 6 IL_00EB: ldind.i4 IL_00EC: ldc.i4.1 IL_00ED: add IL_00EE: div IL_00EF: stloc.s 7 (System.Int32) IL_00F1: ldarg.3 IL_00F2: ldfld System.Int32 BehaviourData::m_educated3Count IL_00F7: ldc.i4 300 IL_00FC: mul IL_00FD: ldarg.3 IL_00FE: ldfld System.Int32 BehaviourData::m_educated2Count IL_0103: ldc.i4 200 IL_0108: mul IL_0109: add IL_010A: ldarg.3 IL_010B: ldfld System.Int32 BehaviourData::m_educated1Count IL_0110: ldc.i4.s 100 IL_0112: mul IL_0113: add IL_0114: ldarg.s 4 IL_0116: ldind.i4 IL_0117: ldc.i4.1 IL_0118: add IL_0119: div IL_011A: stloc.s 8 (System.Int32) IL_011C: ldarg.s 4 IL_011E: ldind.i4 IL_011F: ldarg.s 6 IL_0121: ldind.i4 IL_0122: ldc.i4.1 IL_0123: shr IL_0124: bge => Label3 IL_0129: ldarg.2 IL_012A: ldc.i4 255 IL_012F: ldarg.2 IL_0130: ldfld System.Byte Building::m_workerProblemTimer IL_0135: ldc.i4.1 IL_0136: add IL_0137: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_013C: conv.u1 IL_013D: stfld System.Byte Building::m_workerProblemTimer IL_0142: ldarg.2 IL_0143: ldfld System.Byte Building::m_workerProblemTimer IL_0148: ldc.i4 128 IL_014D: blt => Label4 IL_0152: ldloc.s 6 (Notification+ProblemStruct) IL_0154: ldc.i8 4611686018431582208 IL_015D: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0162: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0167: stloc.s 6 (Notification+ProblemStruct) IL_0169: br => Label5 IL_016E: Label4 IL_016E: ldarg.2 IL_016F: ldfld System.Byte Building::m_workerProblemTimer IL_0174: ldc.i4.s 64 IL_0176: blt => Label6 IL_017B: ldloc.s 6 (Notification+ProblemStruct) IL_017D: ldc.i4 4194304 IL_0182: conv.i8 IL_0183: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0188: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_018D: stloc.s 6 (Notification+ProblemStruct) IL_018F: Label5 IL_018F: Label6 IL_018F: br => Label7 IL_0194: Label3 IL_0194: ldloc.s 8 (System.Int32) IL_0196: ldloc.s 7 (System.Int32) IL_0198: ldc.i4.s 50 IL_019A: sub IL_019B: bge => Label8 IL_01A0: ldarg.2 IL_01A1: ldc.i4 255 IL_01A6: ldarg.2 IL_01A7: ldfld System.Byte Building::m_workerProblemTimer IL_01AC: ldc.i4.1 IL_01AD: add IL_01AE: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_01B3: conv.u1 IL_01B4: stfld System.Byte Building::m_workerProblemTimer IL_01B9: ldarg.2 IL_01BA: ldfld System.Byte Building::m_workerProblemTimer IL_01BF: ldc.i4 128 IL_01C4: blt => Label9 IL_01C9: ldloc.s 6 (Notification+ProblemStruct) IL_01CB: ldc.i8 4611686018435776512 IL_01D4: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_01D9: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_01DE: stloc.s 6 (Notification+ProblemStruct) IL_01E0: br => Label10 IL_01E5: Label9 IL_01E5: ldarg.2 IL_01E6: ldfld System.Byte Building::m_workerProblemTimer IL_01EB: ldc.i4.s 64 IL_01ED: blt => Label11 IL_01F2: ldloc.s 6 (Notification+ProblemStruct) IL_01F4: ldc.i4 8388608 IL_01F9: conv.i8 IL_01FA: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_01FF: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0204: stloc.s 6 (Notification+ProblemStruct) IL_0206: Label10 IL_0206: Label11 IL_0206: br => Label12 IL_020B: Label8 IL_020B: ldarg.2 IL_020C: ldc.i4.0 IL_020D: stfld System.Byte Building::m_workerProblemTimer IL_0212: Label7 IL_0212: Label12 IL_0212: ldarg.2 IL_0213: ldloc.s 6 (Notification+ProblemStruct) IL_0215: stfld ProblemStruct Building::m_problems IL_021A: ldc.i4.1 IL_021B: ldloc.0 IL_021C: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0221: // end original IL_0221: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: virtual System.Void CommercialBuildingAI::SimulationStepActive(System.UInt16 buildingID, Building& buildingData, Frame& frameData) ### Replacement: static System.Void CommercialBuildingAI::CommercialBuildingAI.SimulationStepActive_Patch0(CommercialBuildingAI this, System.UInt16 buildingID, Building& buildingData, Frame& frameData) IL_0000: Local var 0: DistrictManager IL_0000: Local var 1: System.Byte IL_0000: Local var 2: System.Byte IL_0000: Local var 3: DistrictPolicies/Services IL_0000: Local var 4: DistrictPolicies/Taxation IL_0000: Local var 5: DistrictPolicies/CityPlanning IL_0000: Local var 6: Citizen/BehaviourData IL_0000: Local var 7: System.Int32 IL_0000: Local var 8: System.Int32 IL_0000: Local var 9: System.Int32 IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Int32 IL_0000: Local var 12: System.Int32 IL_0000: Local var 13: System.Int32 IL_0000: Local var 14: System.Int32 IL_0000: Local var 15: System.Int32 IL_0000: Local var 16: System.Int32 IL_0000: Local var 17: System.Int32 IL_0000: Local var 18: System.Int32 IL_0000: Local var 19: System.Int32 IL_0000: Local var 20: System.Int32 IL_0000: Local var 21: TransferManager/TransferReason IL_0000: Local var 22: TransferManager/TransferReason IL_0000: Local var 23: System.Int32 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Int32 IL_0000: Local var 26: System.Int32 IL_0000: Local var 27: System.Int32 IL_0000: Local var 28: System.Int32 IL_0000: Local var 29: System.Int32 IL_0000: Local var 30: System.Int32 IL_0000: Local var 31: System.Int32 IL_0000: Local var 32: System.Int32 IL_0000: Local var 33: System.Int32 IL_0000: Local var 34: System.Int32 IL_0000: Local var 35: System.Int32 IL_0000: Local var 36: System.Int32 IL_0000: Local var 37: System.Int32 IL_0000: Local var 38: System.Int32 IL_0000: Local var 39: System.Int32 IL_0000: Local var 40: UnityEngine.Vector3 IL_0000: Local var 41: System.Int32 IL_0000: Local var 42: System.Int32 IL_0000: Local var 43: System.Int32 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Int32 IL_0000: Local var 46: System.Int32 IL_0000: Local var 47: System.Single IL_0000: Local var 48: System.Int32 IL_0000: Local var 49: System.Int32 IL_0000: Local var 50: Notification/ProblemStruct IL_0000: Local var 51: System.Int32 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Int32 IL_0000: Local var 56: System.Int32 IL_0000: Local var 57: System.Int32 IL_0000: Local var 58: System.Int32 IL_0000: Local var 59: System.Int32 IL_0000: Local var 60: System.Int32 IL_0000: Local var 61: System.Int32 IL_0000: Local var 62: System.Int32 IL_0000: Local var 63: SimulationManager IL_0000: Local var 64: System.UInt32 IL_0000: Local var 65: Notification/ProblemStruct IL_0000: Local var 66: System.Int32 IL_0000: Local var 67: TransferManager/TransferOffer IL_0000: Local var 68: System.Int32 IL_0000: Local var 69: TransferManager/TransferOffer IL_0000: // start original IL_0000: call static DistrictManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloc.0 IL_0007: ldarg.2 IL_0008: ldfld UnityEngine.Vector3 Building::m_position IL_000D: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3 worldPos) IL_0012: stloc.1 IL_0013: ldloc.0 IL_0014: ldarg.2 IL_0015: ldfld UnityEngine.Vector3 Building::m_position IL_001A: callvirt System.Byte DistrictManager::GetPark(UnityEngine.Vector3 worldPos) IL_001F: stloc.2 IL_0020: ldloc.0 IL_0021: ldfld Array8`1 DistrictManager::m_districts IL_0026: ldfld District[] Array8`1::m_buffer IL_002B: ldloc.1 IL_002C: ldelema District IL_0031: ldfld Services District::m_servicePolicies IL_0036: stloc.3 IL_0037: ldloc.0 IL_0038: ldfld Array8`1 DistrictManager::m_districts IL_003D: ldfld District[] Array8`1::m_buffer IL_0042: ldloc.1 IL_0043: ldelema District IL_0048: ldfld Taxation District::m_taxationPolicies IL_004D: stloc.s 4 (DistrictPolicies+Taxation) IL_004F: ldloc.0 IL_0050: ldfld Array8`1 DistrictManager::m_districts IL_0055: ldfld District[] Array8`1::m_buffer IL_005A: ldloc.1 IL_005B: ldelema District IL_0060: ldfld CityPlanning District::m_cityPlanningPolicies IL_0065: stloc.s 5 (DistrictPolicies+CityPlanning) IL_0067: ldloc.0 IL_0068: ldfld Array8`1 DistrictManager::m_districts IL_006D: ldfld District[] Array8`1::m_buffer IL_0072: ldloc.1 IL_0073: ldelema District IL_0078: dup IL_0079: ldfld Services District::m_servicePoliciesEffect IL_007E: ldloc.3 IL_007F: ldc.i4 8417575 IL_0084: and IL_0085: or IL_0086: stfld Services District::m_servicePoliciesEffect IL_008B: ldarg.0 IL_008C: ldfld BuildingInfo BuildingAI::m_info IL_0091: ldfld ItemClass BuildingInfo::m_class IL_0096: callvirt System.Boolean ItemClass::get_isCommercialLowGeneric() IL_009B: brfalse => Label0 IL_00A0: ldloc.s 4 (DistrictPolicies+Taxation) IL_00A2: ldc.i4 132 IL_00A7: and IL_00A8: ldc.i4 132 IL_00AD: beq => Label1 IL_00B2: ldloc.0 IL_00B3: ldfld Array8`1 DistrictManager::m_districts IL_00B8: ldfld District[] Array8`1::m_buffer IL_00BD: ldloc.1 IL_00BE: ldelema District IL_00C3: dup IL_00C4: ldfld Taxation District::m_taxationPoliciesEffect IL_00C9: ldloc.s 4 (DistrictPolicies+Taxation) IL_00CB: ldc.i4 132 IL_00D0: and IL_00D1: or IL_00D2: stfld Taxation District::m_taxationPoliciesEffect IL_00D7: Label1 IL_00D7: ldloc.0 IL_00D8: ldfld Array8`1 DistrictManager::m_districts IL_00DD: ldfld District[] Array8`1::m_buffer IL_00E2: ldloc.1 IL_00E3: ldelema District IL_00E8: dup IL_00E9: ldfld CityPlanning District::m_cityPlanningPoliciesEffect IL_00EE: ldloc.s 5 (DistrictPolicies+CityPlanning) IL_00F0: ldc.i4 4097 IL_00F5: and IL_00F6: or IL_00F7: stfld CityPlanning District::m_cityPlanningPoliciesEffect IL_00FC: br => Label2 IL_0101: Label0 IL_0101: ldarg.0 IL_0102: ldfld BuildingInfo BuildingAI::m_info IL_0107: ldfld ItemClass BuildingInfo::m_class IL_010C: callvirt System.Boolean ItemClass::get_isCommercialHighGenegic() IL_0111: brtrue => Label3 IL_0116: ldarg.0 IL_0117: ldfld BuildingInfo BuildingAI::m_info IL_011C: ldfld ItemClass BuildingInfo::m_class IL_0121: callvirt System.Boolean ItemClass::get_isCommercialWallToWall() IL_0126: brfalse => Label4 IL_012B: Label3 IL_012B: ldloc.s 4 (DistrictPolicies+Taxation) IL_012D: ldc.i4 264 IL_0132: and IL_0133: ldc.i4 264 IL_0138: beq => Label5 IL_013D: ldloc.0 IL_013E: ldfld Array8`1 DistrictManager::m_districts IL_0143: ldfld District[] Array8`1::m_buffer IL_0148: ldloc.1 IL_0149: ldelema District IL_014E: dup IL_014F: ldfld Taxation District::m_taxationPoliciesEffect IL_0154: ldloc.s 4 (DistrictPolicies+Taxation) IL_0156: ldc.i4 264 IL_015B: and IL_015C: or IL_015D: stfld Taxation District::m_taxationPoliciesEffect IL_0162: Label5 IL_0162: ldloc.0 IL_0163: ldfld Array8`1 DistrictManager::m_districts IL_0168: ldfld District[] Array8`1::m_buffer IL_016D: ldloc.1 IL_016E: ldelema District IL_0173: dup IL_0174: ldfld CityPlanning District::m_cityPlanningPoliciesEffect IL_0179: ldloc.s 5 (DistrictPolicies+CityPlanning) IL_017B: ldc.i4 4098 IL_0180: and IL_0181: or IL_0182: stfld CityPlanning District::m_cityPlanningPoliciesEffect IL_0187: br => Label6 IL_018C: Label4 IL_018C: ldarg.0 IL_018D: ldfld BuildingInfo BuildingAI::m_info IL_0192: ldfld ItemClass BuildingInfo::m_class IL_0197: callvirt System.Boolean ItemClass::get_isCommercialLeisure() IL_019C: brfalse => Label7 IL_01A1: ldloc.0 IL_01A2: ldfld Array8`1 DistrictManager::m_districts IL_01A7: ldfld District[] Array8`1::m_buffer IL_01AC: ldloc.1 IL_01AD: ldelema District IL_01B2: dup IL_01B3: ldfld Taxation District::m_taxationPoliciesEffect IL_01B8: ldloc.s 4 (DistrictPolicies+Taxation) IL_01BA: ldc.i4 1024 IL_01BF: and IL_01C0: or IL_01C1: stfld Taxation District::m_taxationPoliciesEffect IL_01C6: ldloc.0 IL_01C7: ldfld Array8`1 DistrictManager::m_districts IL_01CC: ldfld District[] Array8`1::m_buffer IL_01D1: ldloc.1 IL_01D2: ldelema District IL_01D7: dup IL_01D8: ldfld CityPlanning District::m_cityPlanningPoliciesEffect IL_01DD: ldloc.s 5 (DistrictPolicies+CityPlanning) IL_01DF: ldc.i4 4352 IL_01E4: and IL_01E5: or IL_01E6: stfld CityPlanning District::m_cityPlanningPoliciesEffect IL_01EB: br => Label8 IL_01F0: Label7 IL_01F0: ldarg.0 IL_01F1: ldfld BuildingInfo BuildingAI::m_info IL_01F6: ldfld ItemClass BuildingInfo::m_class IL_01FB: callvirt System.Boolean ItemClass::get_isCommercialTourist() IL_0200: brfalse => Label9 IL_0205: ldloc.0 IL_0206: ldfld Array8`1 DistrictManager::m_districts IL_020B: ldfld District[] Array8`1::m_buffer IL_0210: ldloc.1 IL_0211: ldelema District IL_0216: dup IL_0217: ldfld CityPlanning District::m_cityPlanningPoliciesEffect IL_021C: ldloc.s 5 (DistrictPolicies+CityPlanning) IL_021E: ldc.i4 4096 IL_0223: and IL_0224: or IL_0225: stfld CityPlanning District::m_cityPlanningPoliciesEffect IL_022A: br => Label10 IL_022F: Label9 IL_022F: ldarg.0 IL_0230: ldfld BuildingInfo BuildingAI::m_info IL_0235: ldfld ItemClass BuildingInfo::m_class IL_023A: callvirt System.Boolean ItemClass::get_isCommercialEco() IL_023F: brfalse => Label11 IL_0244: ldloc.0 IL_0245: ldfld Array8`1 DistrictManager::m_districts IL_024A: ldfld District[] Array8`1::m_buffer IL_024F: ldloc.1 IL_0250: ldelema District IL_0255: dup IL_0256: ldfld CityPlanning District::m_cityPlanningPoliciesEffect IL_025B: ldloc.s 5 (DistrictPolicies+CityPlanning) IL_025D: ldc.i4 4096 IL_0262: and IL_0263: or IL_0264: stfld CityPlanning District::m_cityPlanningPoliciesEffect IL_0269: Label2 IL_0269: Label6 IL_0269: Label8 IL_0269: Label10 IL_0269: Label11 IL_0269: ldloca.s 6 (Citizen+BehaviourData) IL_026B: initobj Citizen+BehaviourData IL_0271: ldc.i4.0 IL_0272: stloc.s 7 (System.Int32) IL_0274: ldc.i4.0 IL_0275: stloc.s 8 (System.Int32) IL_0277: ldc.i4.0 IL_0278: stloc.s 9 (System.Int32) IL_027A: ldarg.0 IL_027B: ldarg.1 IL_027C: ldarg.2 IL_027D: ldloca.s 6 (Citizen+BehaviourData) IL_027F: ldloca.s 7 (System.Int32) IL_0281: ldloca.s 8 (System.Int32) IL_0283: ldloca.s 9 (System.Int32) IL_0285: call System.Int32 PrivateBuildingAI::HandleWorkers(System.UInt16 buildingID, Building& buildingData, BehaviourData& behaviour, System.Int32& aliveWorkerCount, System.Int32& totalWorkerCount, System.Int32& workPlaceCount) IL_028A: stloc.s 10 (System.Int32) IL_028C: ldarg.2 IL_028D: ldfld Flags Building::m_flags IL_0292: ldc.i4 32768 IL_0297: and IL_0298: brfalse => Label12 IL_029D: ldc.i4.0 IL_029E: stloc.s 10 (System.Int32) IL_02A0: Label12 IL_02A0: ldarg.2 IL_02A1: call System.Int32 Building::get_Width() IL_02A6: stloc.s 11 (System.Int32) IL_02A8: ldarg.2 IL_02A9: call System.Int32 Building::get_Length() IL_02AE: stloc.s 12 (System.Int32) IL_02B0: ldarg.0 IL_02B1: call System.Int32 CommercialBuildingAI::MaxIncomingLoadSize() IL_02B6: stloc.s 13 (System.Int32) IL_02B8: ldc.i4.0 IL_02B9: stloc.s 14 (System.Int32) IL_02BB: ldc.i4.0 IL_02BC: stloc.s 15 (System.Int32) IL_02BE: ldarg.0 IL_02BF: ldarg.1 IL_02C0: ldarg.2 IL_02C1: ldloca.s 6 (Citizen+BehaviourData) IL_02C3: ldloca.s 14 (System.Int32) IL_02C5: ldloca.s 15 (System.Int32) IL_02C7: call System.Void CommonBuildingAI::GetVisitBehaviour(System.UInt16 buildingID, Building& buildingData, BehaviourData& behaviour, System.Int32& aliveCount, System.Int32& totalCount) IL_02CC: ldarg.0 IL_02CD: ldarg.2 IL_02CE: ldfld System.Byte Building::m_level IL_02D3: ldarg.1 IL_02D4: newobj System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_02D9: ldloc.s 11 (System.Int32) IL_02DB: ldloc.s 12 (System.Int32) IL_02DD: callvirt virtual System.Int32 PrivateBuildingAI::CalculateVisitplaceCount(Level level, ColossalFramework.Math.Randomizer r, System.Int32 width, System.Int32 length) IL_02E2: stloc.s 16 (System.Int32) IL_02E4: ldc.i4.0 IL_02E5: ldloc.s 16 (System.Int32) IL_02E7: ldloc.s 15 (System.Int32) IL_02E9: sub IL_02EA: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_02EF: stloc.s 17 (System.Int32) IL_02F1: ldloc.s 16 (System.Int32) IL_02F3: ldc.i4 500 IL_02F8: mul IL_02F9: stloc.s 18 (System.Int32) IL_02FB: ldloc.s 18 (System.Int32) IL_02FD: ldloc.s 13 (System.Int32) IL_02FF: ldc.i4.4 IL_0300: mul IL_0301: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0306: ldarg.0 IL_0307: call static System.Int32 RealPop2.GoodsUtils::GetInventoryCap(CommercialBuildingAI ai) IL_030C: call static System.Int32 System.Math::Min(System.Int32 val1, System.Int32 val2) IL_0311: stloc.s 19 (System.Int32) IL_0313: ldarg.0 IL_0314: ldarg.2 IL_0315: ldfld System.Byte Building::m_level IL_031A: ldarg.1 IL_031B: newobj System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0320: ldloc.s 11 (System.Int32) IL_0322: ldloc.s 12 (System.Int32) IL_0324: callvirt virtual System.Int32 PrivateBuildingAI::CalculateProductionCapacity(Level level, ColossalFramework.Math.Randomizer r, System.Int32 width, System.Int32 length) IL_0329: stloc.s 20 (System.Int32) IL_032B: ldarg.0 IL_032C: call TransferReason CommercialBuildingAI::GetIncomingTransferReason() IL_0331: stloc.s 21 (TransferManager+TransferReason) IL_0333: ldarg.0 IL_0334: ldarg.1 IL_0335: call TransferReason CommercialBuildingAI::GetOutgoingTransferReason(System.UInt16 buildingID) IL_033A: stloc.s 22 (TransferManager+TransferReason) IL_033C: ldloc.s 21 (TransferManager+TransferReason) IL_033E: ldc.i4 255 IL_0343: beq => Label13 IL_0348: ldloc.s 10 (System.Int32) IL_034A: brfalse => Label14 IL_034F: ldloc.s 20 (System.Int32) IL_0351: brfalse => Label15 IL_0356: ldloc.s 19 (System.Int32) IL_0358: ldarg.2 IL_0359: ldfld System.UInt16 Building::m_customBuffer1 IL_035E: sub IL_035F: stloc.s 23 (System.Int32) IL_0361: ldc.i4.0 IL_0362: ldloc.s 10 (System.Int32) IL_0364: ldloc.s 23 (System.Int32) IL_0366: ldc.i4 200 IL_036B: mul IL_036C: ldloc.s 19 (System.Int32) IL_036E: add IL_036F: ldc.i4.1 IL_0370: sub IL_0371: ldloc.s 19 (System.Int32) IL_0373: div IL_0374: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0379: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_037E: stloc.s 24 (System.Int32) IL_0380: ldloc.s 20 (System.Int32) IL_0382: ldloc.s 24 (System.Int32) IL_0384: mul IL_0385: ldc.i4.s 9 IL_0387: add IL_0388: ldc.i4.s 10 IL_038A: div IL_038B: stloc.s 25 (System.Int32) IL_038D: ldc.i4.0 IL_038E: ldloc.s 25 (System.Int32) IL_0390: ldloc.s 23 (System.Int32) IL_0392: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0397: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_039C: stloc.s 25 (System.Int32) IL_039E: ldarg.2 IL_039F: dup IL_03A0: ldfld System.UInt16 Building::m_customBuffer1 IL_03A5: ldloc.s 25 (System.Int32) IL_03A7: conv.u2 IL_03A8: add IL_03A9: conv.u2 IL_03AA: stfld System.UInt16 Building::m_customBuffer1 IL_03AF: Label13 IL_03AF: Label14 IL_03AF: Label15 IL_03AF: ldloc.s 10 (System.Int32) IL_03B1: brfalse => Label16 IL_03B6: ldloc.s 19 (System.Int32) IL_03B8: stloc.s 26 (System.Int32) IL_03BA: ldloc.s 21 (TransferManager+TransferReason) IL_03BC: ldc.i4 255 IL_03C1: beq => Label17 IL_03C6: ldloc.s 26 (System.Int32) IL_03C8: ldarg.2 IL_03C9: ldfld System.UInt16 Building::m_customBuffer1 IL_03CE: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_03D3: stloc.s 26 (System.Int32) IL_03D5: Label17 IL_03D5: ldloc.s 22 (TransferManager+TransferReason) IL_03D7: ldc.i4 255 IL_03DC: beq => Label18 IL_03E1: ldloc.s 26 (System.Int32) IL_03E3: ldloc.s 19 (System.Int32) IL_03E5: ldarg.2 IL_03E6: ldfld System.UInt16 Building::m_customBuffer2 IL_03EB: sub IL_03EC: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_03F1: stloc.s 26 (System.Int32) IL_03F3: Label18 IL_03F3: ldc.i4.0 IL_03F4: ldloc.s 10 (System.Int32) IL_03F6: ldloc.s 26 (System.Int32) IL_03F8: ldc.i4 200 IL_03FD: mul IL_03FE: ldloc.s 19 (System.Int32) IL_0400: add IL_0401: ldc.i4.1 IL_0402: sub IL_0403: ldloc.s 19 (System.Int32) IL_0405: div IL_0406: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_040B: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0410: stloc.s 10 (System.Int32) IL_0412: ldloc.s 16 (System.Int32) IL_0414: ldloc.s 10 (System.Int32) IL_0416: mul IL_0417: ldc.i4.s 9 IL_0419: add IL_041A: ldc.i4.s 10 IL_041C: div IL_041D: stloc.s 27 (System.Int32) IL_041F: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0424: ldfld System.Boolean SimulationManager::m_isNightTime IL_0429: brfalse => Label19 IL_042E: ldloc.s 27 (System.Int32) IL_0430: ldc.i4.1 IL_0431: add IL_0432: ldc.i4.1 IL_0433: shr IL_0434: stloc.s 27 (System.Int32) IL_0436: Label19 IL_0436: ldc.i4.0 IL_0437: ldloc.s 27 (System.Int32) IL_0439: ldloc.s 26 (System.Int32) IL_043B: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0440: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0445: stloc.s 27 (System.Int32) IL_0447: ldloc.s 21 (TransferManager+TransferReason) IL_0449: ldc.i4 255 IL_044E: beq => Label20 IL_0453: ldarg.2 IL_0454: dup IL_0455: ldfld System.UInt16 Building::m_customBuffer1 IL_045A: ldloc.s 27 (System.Int32) IL_045C: conv.u2 IL_045D: sub IL_045E: conv.u2 IL_045F: stfld System.UInt16 Building::m_customBuffer1 IL_0464: Label20 IL_0464: ldloc.s 22 (TransferManager+TransferReason) IL_0466: ldc.i4 255 IL_046B: beq => Label21 IL_0470: ldarg.2 IL_0471: dup IL_0472: ldfld System.UInt16 Building::m_customBuffer2 IL_0477: ldloc.s 27 (System.Int32) IL_0479: conv.u2 IL_047A: add IL_047B: conv.u2 IL_047C: stfld System.UInt16 Building::m_customBuffer2 IL_0481: Label21 IL_0481: ldloc.s 27 (System.Int32) IL_0483: ldc.i4.s 9 IL_0485: add IL_0486: ldc.i4.s 10 IL_0488: div IL_0489: stloc.s 10 (System.Int32) IL_048B: Label16 IL_048B: ldarg.0 IL_048C: ldarg.2 IL_048D: ldfld System.Byte Building::m_level IL_0492: ldarg.1 IL_0493: newobj System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0498: ldloc.s 10 (System.Int32) IL_049A: ldloca.s 28 (System.Int32) IL_049C: ldloca.s 29 (System.Int32) IL_049E: ldloca.s 30 (System.Int32) IL_04A0: ldloca.s 31 (System.Int32) IL_04A2: ldloca.s 32 (System.Int32) IL_04A4: ldloca.s 33 (System.Int32) IL_04A6: callvirt virtual System.Void PrivateBuildingAI::GetConsumptionRates(Level level, ColossalFramework.Math.Randomizer r, System.Int32 productionRate, System.Int32& electricityConsumption, System.Int32& waterConsumption, System.Int32& sewageAccumulation, System.Int32& garbageAccumulation, System.Int32& incomeAccumulation, System.Int32& mailAccumulation) IL_04AB: ldc.i4.0 IL_04AC: stloc.s 34 (System.Int32) IL_04AE: ldloc.s 28 (System.Int32) IL_04B0: brfalse => Label22 IL_04B5: ldloc.0 IL_04B6: ldc.i4.s 44 IL_04B8: callvirt System.Boolean DistrictManager::IsPolicyLoaded(Policies policy) IL_04BD: brfalse => Label23 IL_04C2: ldloc.3 IL_04C3: ldc.i4 4096 IL_04C8: and IL_04C9: brfalse => Label24 IL_04CE: ldc.i4.1 IL_04CF: ldloc.s 28 (System.Int32) IL_04D1: ldc.i4.3 IL_04D2: mul IL_04D3: ldc.i4.8 IL_04D4: add IL_04D5: ldc.i4.4 IL_04D6: shr IL_04D7: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_04DC: stloc.s 34 (System.Int32) IL_04DE: ldloc.s 32 (System.Int32) IL_04E0: ldc.i4.s 95 IL_04E2: mul IL_04E3: ldc.i4.s 100 IL_04E5: div IL_04E6: stloc.s 32 (System.Int32) IL_04E8: br => Label25 IL_04ED: Label24 IL_04ED: ldc.i4.1 IL_04EE: ldloc.s 28 (System.Int32) IL_04F0: ldc.i4.2 IL_04F1: add IL_04F2: ldc.i4.2 IL_04F3: shr IL_04F4: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_04F9: stloc.s 34 (System.Int32) IL_04FB: Label22 IL_04FB: Label23 IL_04FB: Label25 IL_04FB: ldloc.s 31 (System.Int32) IL_04FD: brfalse => Label26 IL_0502: ldloc.3 IL_0503: ldc.i4.s 32 IL_0505: and IL_0506: brfalse => Label27 IL_050B: ldc.i4.1 IL_050C: ldloc.s 31 (System.Int32) IL_050E: ldc.i4.s 85 IL_0510: mul IL_0511: ldc.i4.s 100 IL_0513: div IL_0514: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0519: stloc.s 31 (System.Int32) IL_051B: ldloc.s 32 (System.Int32) IL_051D: ldc.i4.s 95 IL_051F: mul IL_0520: ldc.i4.s 100 IL_0522: div IL_0523: stloc.s 32 (System.Int32) IL_0525: Label26 IL_0525: Label27 IL_0525: ldarg.0 IL_0526: ldarg.1 IL_0527: ldarg.2 IL_0528: ldloc.s 4 (DistrictPolicies+Taxation) IL_052A: call System.Int32 CommercialBuildingAI::GetTaxRate(System.UInt16 buildingID, Building& buildingData, Taxation taxationPolicies) IL_052F: stloc.s 35 (System.Int32) IL_0531: ldarg.0 IL_0532: ldfld BuildingInfo BuildingAI::m_info IL_0537: ldfld ItemClass BuildingInfo::m_class IL_053C: callvirt System.Boolean ItemClass::get_isCommercialLeisure() IL_0541: brfalse => Label28 IL_0546: ldloc.s 5 (DistrictPolicies+CityPlanning) IL_0548: ldc.i4 256 IL_054D: and IL_054E: brfalse => Label29 IL_0553: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0558: ldfld System.Boolean SimulationManager::m_isNightTime IL_055D: brfalse => Label30 IL_0562: ldloc.s 28 (System.Int32) IL_0564: ldc.i4.1 IL_0565: add IL_0566: ldc.i4.1 IL_0567: shr IL_0568: stloc.s 28 (System.Int32) IL_056A: ldloc.s 29 (System.Int32) IL_056C: ldc.i4.1 IL_056D: add IL_056E: ldc.i4.1 IL_056F: shr IL_0570: stloc.s 29 (System.Int32) IL_0572: ldloc.s 30 (System.Int32) IL_0574: ldc.i4.1 IL_0575: add IL_0576: ldc.i4.1 IL_0577: shr IL_0578: stloc.s 30 (System.Int32) IL_057A: ldloc.s 31 (System.Int32) IL_057C: ldc.i4.1 IL_057D: add IL_057E: ldc.i4.1 IL_057F: shr IL_0580: stloc.s 31 (System.Int32) IL_0582: ldloc.s 33 (System.Int32) IL_0584: ldc.i4.1 IL_0585: add IL_0586: ldc.i4.1 IL_0587: shr IL_0588: stloc.s 33 (System.Int32) IL_058A: ldc.i4.0 IL_058B: stloc.s 32 (System.Int32) IL_058D: Label28 IL_058D: Label29 IL_058D: Label30 IL_058D: ldloc.s 10 (System.Int32) IL_058F: brfalse => Label31 IL_0594: ldloc.s 9 (System.Int32) IL_0596: ldc.i4.s 50 IL_0598: mul IL_0599: stloc.s 36 (System.Int32) IL_059B: ldarg.0 IL_059C: ldarg.1 IL_059D: ldarg.2 IL_059E: ldarg.3 IL_059F: ldloca.s 28 (System.Int32) IL_05A1: ldloca.s 34 (System.Int32) IL_05A3: ldloca.s 29 (System.Int32) IL_05A5: ldloca.s 30 (System.Int32) IL_05A7: ldloca.s 31 (System.Int32) IL_05A9: ldloca.s 33 (System.Int32) IL_05AB: ldloc.s 36 (System.Int32) IL_05AD: ldloc.3 IL_05AE: callvirt virtual System.Int32 CommonBuildingAI::HandleCommonConsumption(System.UInt16 buildingID, Building& data, Frame& frameData, System.Int32& electricityConsumption, System.Int32& heatingConsumption, System.Int32& waterConsumption, System.Int32& sewageAccumulation, System.Int32& garbageAccumulation, System.Int32& mailAccumulation, System.Int32 maxMail, Services policies) IL_05B3: stloc.s 37 (System.Int32) IL_05B5: ldloc.s 10 (System.Int32) IL_05B7: ldloc.s 37 (System.Int32) IL_05B9: mul IL_05BA: ldc.i4.s 99 IL_05BC: add IL_05BD: ldc.i4.s 100 IL_05BF: div IL_05C0: stloc.s 10 (System.Int32) IL_05C2: ldloc.s 10 (System.Int32) IL_05C4: brfalse => Label32 IL_05C9: ldloc.s 32 (System.Int32) IL_05CB: stloc.s 38 (System.Int32) IL_05CD: ldloc.s 38 (System.Int32) IL_05CF: brfalse => Label33 IL_05D4: ldarg.0 IL_05D5: ldfld BuildingInfo BuildingAI::m_info IL_05DA: ldfld ItemClass BuildingInfo::m_class IL_05DF: callvirt System.Boolean ItemClass::get_isCommercialLowGeneric() IL_05E4: brfalse => Label34 IL_05E9: ldloc.s 5 (DistrictPolicies+CityPlanning) IL_05EB: ldc.i4.1 IL_05EC: and IL_05ED: brfalse => Label35 IL_05F2: call static EconomyManager ColossalFramework.Singleton`1::get_instance() IL_05F7: ldc.i4.s 9 IL_05F9: ldc.i4.s 12 IL_05FB: ldarg.0 IL_05FC: ldfld BuildingInfo BuildingAI::m_info IL_0601: ldfld ItemClass BuildingInfo::m_class IL_0606: callvirt System.Int32 EconomyManager::FetchResource(Resource resource, System.Int32 amount, ItemClass itemClass) IL_060B: pop IL_060C: ldloc.s 38 (System.Int32) IL_060E: ldc.i4.2 IL_060F: mul IL_0610: stloc.s 38 (System.Int32) IL_0612: Label35 IL_0612: br => Label36 IL_0617: Label34 IL_0617: ldarg.0 IL_0618: ldfld BuildingInfo BuildingAI::m_info IL_061D: ldfld ItemClass BuildingInfo::m_class IL_0622: callvirt System.Boolean ItemClass::get_isCommercialHighGenegic() IL_0627: brtrue => Label37 IL_062C: ldarg.0 IL_062D: ldfld BuildingInfo BuildingAI::m_info IL_0632: ldfld ItemClass BuildingInfo::m_class IL_0637: callvirt System.Boolean ItemClass::get_isCommercialWallToWall() IL_063C: brfalse => Label38 IL_0641: Label37 IL_0641: ldloc.s 5 (DistrictPolicies+CityPlanning) IL_0643: ldc.i4.2 IL_0644: and IL_0645: brfalse => Label39 IL_064A: call static EconomyManager ColossalFramework.Singleton`1::get_instance() IL_064F: ldc.i4.s 9 IL_0651: ldc.i4.s 25 IL_0653: ldarg.0 IL_0654: ldfld BuildingInfo BuildingAI::m_info IL_0659: ldfld ItemClass BuildingInfo::m_class IL_065E: callvirt System.Int32 EconomyManager::FetchResource(Resource resource, System.Int32 amount, ItemClass itemClass) IL_0663: pop IL_0664: ldloc.s 38 (System.Int32) IL_0666: ldc.i4.3 IL_0667: mul IL_0668: stloc.s 38 (System.Int32) IL_066A: Label36 IL_066A: Label38 IL_066A: Label39 IL_066A: ldloc.3 IL_066B: ldc.i4 256 IL_0670: and IL_0671: brfalse => Label40 IL_0676: ldloc.s 38 (System.Int32) IL_0678: ldc.i4.s 105 IL_067A: mul IL_067B: ldc.i4.s 99 IL_067D: add IL_067E: ldc.i4.s 100 IL_0680: div IL_0681: stloc.s 38 (System.Int32) IL_0683: Label40 IL_0683: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0688: ldfld EffectData[] BuildingManager::m_finalMonumentEffect IL_068D: ldc.i4.7 IL_068E: ldelema MonumentAI+EffectData IL_0693: ldfld System.Int32 EffectData::m_factor IL_0698: stloc.s 39 (System.Int32) IL_069A: ldloc.s 39 (System.Int32) IL_069C: brfalse => Label41 IL_06A1: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_06A6: ldfld EffectData[] BuildingManager::m_finalMonumentEffect IL_06AB: ldc.i4.7 IL_06AC: ldelema MonumentAI+EffectData IL_06B1: ldfld UnityEngine.Vector3 EffectData::m_position IL_06B6: stloc.s 40 (UnityEngine.Vector3) IL_06B8: ldloc.s 40 (UnityEngine.Vector3) IL_06BA: ldarg.2 IL_06BB: ldfld UnityEngine.Vector3 Building::m_position IL_06C0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_06C5: call static System.Single ColossalFramework.Math.VectorUtils::LengthSqrXZ(UnityEngine.Vector3 v) IL_06CA: ldc.r4 250000 IL_06CF: bge.un => Label42 IL_06D4: ldloc.s 38 (System.Int32) IL_06D6: ldloc.s 38 (System.Int32) IL_06D8: ldloc.s 39 (System.Int32) IL_06DA: mul IL_06DB: ldc.i4.s 50 IL_06DD: add IL_06DE: ldc.i4.s 100 IL_06E0: div IL_06E1: add IL_06E2: stloc.s 38 (System.Int32) IL_06E4: Label41 IL_06E4: Label42 IL_06E4: call static EconomyManager ColossalFramework.Singleton`1::get_instance() IL_06E9: ldloc.s 38 (System.Int32) IL_06EB: ldc.i4.2 IL_06EC: ldarg.0 IL_06ED: ldfld BuildingInfo BuildingAI::m_info IL_06F2: ldfld ItemClass BuildingInfo::m_class IL_06F7: ldfld SubService ItemClass::m_subService IL_06FC: ldarg.2 IL_06FD: ldfld System.Byte Building::m_level IL_0702: ldloc.s 35 (System.Int32) IL_0704: callvirt System.Int32 EconomyManager::AddPrivateIncome(System.Int32 amount, Service service, SubService subService, Level level, System.Int32 taxRate) IL_0709: stloc.s 38 (System.Int32) IL_070B: ldloca.s 6 (Citizen+BehaviourData) IL_070D: ldfld System.Int32 BehaviourData::m_touristCount IL_0712: ldloc.s 38 (System.Int32) IL_0714: mul IL_0715: ldloc.s 14 (System.Int32) IL_0717: ldc.i4.1 IL_0718: shr IL_0719: add IL_071A: ldc.i4.1 IL_071B: ldloc.s 14 (System.Int32) IL_071D: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0722: div IL_0723: stloc.s 41 (System.Int32) IL_0725: ldc.i4.0 IL_0726: ldloc.s 38 (System.Int32) IL_0728: ldloc.s 41 (System.Int32) IL_072A: sub IL_072B: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0730: stloc.s 42 (System.Int32) IL_0732: ldloc.s 42 (System.Int32) IL_0734: brfalse => Label43 IL_0739: call static EconomyManager ColossalFramework.Singleton`1::get_instance() IL_073E: ldc.i4.5 IL_073F: ldloc.s 42 (System.Int32) IL_0741: ldarg.0 IL_0742: ldfld BuildingInfo BuildingAI::m_info IL_0747: ldfld ItemClass BuildingInfo::m_class IL_074C: callvirt System.Int32 EconomyManager::AddResource(Resource resource, System.Int32 amount, ItemClass itemClass) IL_0751: pop IL_0752: Label43 IL_0752: ldloc.s 41 (System.Int32) IL_0754: brfalse => Label44 IL_0759: call static EconomyManager ColossalFramework.Singleton`1::get_instance() IL_075E: ldc.i4.6 IL_075F: ldloc.s 41 (System.Int32) IL_0761: ldarg.0 IL_0762: ldfld BuildingInfo BuildingAI::m_info IL_0767: ldfld ItemClass BuildingInfo::m_class IL_076C: callvirt System.Int32 EconomyManager::AddResource(Resource resource, System.Int32 amount, ItemClass itemClass) IL_0771: pop IL_0772: Label33 IL_0772: Label44 IL_0772: ldarg.0 IL_0773: ldarg.2 IL_0774: ldfld System.Byte Building::m_level IL_0779: ldloc.s 10 (System.Int32) IL_077B: ldloc.s 5 (DistrictPolicies+CityPlanning) IL_077D: ldloca.s 43 (System.Int32) IL_077F: ldloca.s 44 (System.Int32) IL_0781: callvirt virtual System.Void PrivateBuildingAI::GetPollutionRates(Level level, System.Int32 productionRate, CityPlanning cityPlanningPolicies, System.Int32& groundPollution, System.Int32& noisePollution) IL_0786: ldloc.s 43 (System.Int32) IL_0788: brfalse => Label45 IL_078D: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0792: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0797: ldc.i4.3 IL_0798: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_079D: brtrue => Label46 IL_07A2: call static NaturalResourceManager ColossalFramework.Singleton`1::get_instance() IL_07A7: ldc.i4.s 10 IL_07A9: ldloc.s 43 (System.Int32) IL_07AB: ldloc.s 43 (System.Int32) IL_07AD: ldarg.2 IL_07AE: ldfld UnityEngine.Vector3 Building::m_position IL_07B3: ldc.r4 60 IL_07B8: callvirt System.Int32 NaturalResourceManager::TryDumpResource(Resource resource, System.Int32 rate, System.Int32 max, UnityEngine.Vector3 position, System.Single radius) IL_07BD: pop IL_07BE: Label45 IL_07BE: Label46 IL_07BE: ldloc.s 44 (System.Int32) IL_07C0: brfalse => Label47 IL_07C5: ldloc.2 IL_07C6: brfalse => Label48 IL_07CB: ldloc.0 IL_07CC: ldfld Array8`1 DistrictManager::m_parks IL_07D1: ldfld DistrictPark[] Array8`1::m_buffer IL_07D6: ldloc.2 IL_07D7: ldelema DistrictPark IL_07DC: ldfld Park DistrictPark::m_parkPolicies IL_07E1: ldc.i4 8388608 IL_07E6: and IL_07E7: brfalse => Label49 IL_07EC: ldloc.s 44 (System.Int32) IL_07EE: conv.r4 IL_07EF: ldc.r4 1.1 IL_07F4: mul IL_07F5: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_07FA: stloc.s 44 (System.Int32) IL_07FC: Label48 IL_07FC: Label49 IL_07FC: call static ImmaterialResourceManager ColossalFramework.Singleton`1::get_instance() IL_0801: ldc.i4.8 IL_0802: ldloc.s 44 (System.Int32) IL_0804: ldarg.2 IL_0805: ldfld UnityEngine.Vector3 Building::m_position IL_080A: ldc.r4 60 IL_080F: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource resource, System.Int32 rate, UnityEngine.Vector3 position, System.Single radius) IL_0814: pop IL_0815: Label47 IL_0815: ldloc.s 37 (System.Int32) IL_0817: ldc.i4.s 100 IL_0819: bge => Label50 IL_081E: ldarg.2 IL_081F: dup IL_0820: ldfld Flags Building::m_flags IL_0825: ldc.i4 1024 IL_082A: or IL_082B: stfld Flags Building::m_flags IL_0830: br => Label51 IL_0835: Label50 IL_0835: ldarg.2 IL_0836: dup IL_0837: ldfld Flags Building::m_flags IL_083C: ldc.i4 -1025 IL_0841: and IL_0842: stfld Flags Building::m_flags IL_0847: Label51 IL_0847: ldarg.2 IL_0848: dup IL_0849: ldfld Flags Building::m_flags IL_084E: ldc.i4 131072 IL_0853: or IL_0854: stfld Flags Building::m_flags IL_0859: br => Label52 IL_085E: Label32 IL_085E: ldarg.2 IL_085F: dup IL_0860: ldfld Flags Building::m_flags IL_0865: ldc.i4 -132097 IL_086A: and IL_086B: stfld Flags Building::m_flags IL_0870: Label52 IL_0870: br => Label53 IL_0875: Label31 IL_0875: ldc.i4.0 IL_0876: stloc.s 28 (System.Int32) IL_0878: ldc.i4.0 IL_0879: stloc.s 34 (System.Int32) IL_087B: ldc.i4.0 IL_087C: stloc.s 29 (System.Int32) IL_087E: ldc.i4.0 IL_087F: stloc.s 30 (System.Int32) IL_0881: ldc.i4.0 IL_0882: stloc.s 31 (System.Int32) IL_0884: ldc.i4.0 IL_0885: stloc.s 33 (System.Int32) IL_0887: ldarg.2 IL_0888: ldarg.2 IL_0889: ldfld ProblemStruct Building::m_problems IL_088E: ldc.i8 4563419142 IL_0897: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_089C: call static ProblemStruct Notification::RemoveProblems(ProblemStruct problems1, ProblemStruct problems2) IL_08A1: stfld ProblemStruct Building::m_problems IL_08A6: ldarg.2 IL_08A7: dup IL_08A8: ldfld Flags Building::m_flags IL_08AD: ldc.i4 -132097 IL_08B2: and IL_08B3: stfld Flags Building::m_flags IL_08B8: Label53 IL_08B8: ldc.i4.0 IL_08B9: stloc.s 45 (System.Int32) IL_08BB: ldc.i4.0 IL_08BC: stloc.s 46 (System.Int32) IL_08BE: ldarg.2 IL_08BF: call System.Int32 Building::get_Width() IL_08C4: ldarg.2 IL_08C5: call System.Int32 Building::get_Length() IL_08CA: add IL_08CB: conv.r4 IL_08CC: ldc.r4 2.5 IL_08D1: mul IL_08D2: stloc.s 47 (System.Single) IL_08D4: ldloca.s 6 (Citizen+BehaviourData) IL_08D6: ldfld System.Int32 BehaviourData::m_healthAccumulation IL_08DB: brfalse => Label54 IL_08E0: ldloc.s 7 (System.Int32) IL_08E2: ldloc.s 14 (System.Int32) IL_08E4: add IL_08E5: brfalse => Label55 IL_08EA: ldloca.s 6 (Citizen+BehaviourData) IL_08EC: ldfld System.Int32 BehaviourData::m_healthAccumulation IL_08F1: ldloc.s 7 (System.Int32) IL_08F3: ldloc.s 14 (System.Int32) IL_08F5: add IL_08F6: ldc.i4.1 IL_08F7: shr IL_08F8: add IL_08F9: ldloc.s 7 (System.Int32) IL_08FB: ldloc.s 14 (System.Int32) IL_08FD: add IL_08FE: div IL_08FF: stloc.s 45 (System.Int32) IL_0901: Label55 IL_0901: call static ImmaterialResourceManager ColossalFramework.Singleton`1::get_instance() IL_0906: ldc.i4.s 10 IL_0908: ldloca.s 6 (Citizen+BehaviourData) IL_090A: ldfld System.Int32 BehaviourData::m_healthAccumulation IL_090F: ldarg.2 IL_0910: ldfld UnityEngine.Vector3 Building::m_position IL_0915: ldloc.s 47 (System.Single) IL_0917: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource resource, System.Int32 rate, UnityEngine.Vector3 position, System.Single radius) IL_091C: pop IL_091D: Label54 IL_091D: ldloca.s 6 (Citizen+BehaviourData) IL_091F: ldfld System.Int32 BehaviourData::m_wellbeingAccumulation IL_0924: brfalse => Label56 IL_0929: ldloc.s 7 (System.Int32) IL_092B: ldloc.s 14 (System.Int32) IL_092D: add IL_092E: brfalse => Label57 IL_0933: ldloca.s 6 (Citizen+BehaviourData) IL_0935: ldfld System.Int32 BehaviourData::m_wellbeingAccumulation IL_093A: ldloc.s 7 (System.Int32) IL_093C: ldloc.s 14 (System.Int32) IL_093E: add IL_093F: ldc.i4.1 IL_0940: shr IL_0941: add IL_0942: ldloc.s 7 (System.Int32) IL_0944: ldloc.s 14 (System.Int32) IL_0946: add IL_0947: div IL_0948: stloc.s 46 (System.Int32) IL_094A: Label57 IL_094A: call static ImmaterialResourceManager ColossalFramework.Singleton`1::get_instance() IL_094F: ldc.i4.s 11 IL_0951: ldloca.s 6 (Citizen+BehaviourData) IL_0953: ldfld System.Int32 BehaviourData::m_wellbeingAccumulation IL_0958: ldarg.2 IL_0959: ldfld UnityEngine.Vector3 Building::m_position IL_095E: ldloc.s 47 (System.Single) IL_0960: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource resource, System.Int32 rate, UnityEngine.Vector3 position, System.Single radius) IL_0965: pop IL_0966: Label56 IL_0966: ldloc.s 45 (System.Int32) IL_0968: ldloc.s 46 (System.Int32) IL_096A: call static System.Int32 Citizen::GetHappiness(System.Int32 health, System.Int32 wellbeing) IL_096F: ldc.i4.s 15 IL_0971: mul IL_0972: ldc.i4.s 100 IL_0974: div IL_0975: stloc.s 48 (System.Int32) IL_0977: ldloc.s 7 (System.Int32) IL_0979: ldc.i4.s 20 IL_097B: mul IL_097C: ldloc.s 9 (System.Int32) IL_097E: div IL_097F: stloc.s 49 (System.Int32) IL_0981: ldarg.2 IL_0982: ldfld ProblemStruct Building::m_problems IL_0987: ldc.i8 4611686018427387904 IL_0990: call static ProblemStruct ProblemStruct::op_BitwiseAnd(ProblemStruct a, Problem1 b) IL_0995: stloc.s 50 (Notification+ProblemStruct) IL_0997: ldloca.s 50 (Notification+ProblemStruct) IL_0999: call System.Boolean ProblemStruct::get_IsNone() IL_099E: brfalse => Label58 IL_09A3: ldloc.s 48 (System.Int32) IL_09A5: ldc.i4.s 20 IL_09A7: add IL_09A8: stloc.s 48 (System.Int32) IL_09AA: Label58 IL_09AA: ldarg.2 IL_09AB: ldflda ProblemStruct Building::m_problems IL_09B0: call System.Boolean ProblemStruct::get_IsNone() IL_09B5: brfalse => Label59 IL_09BA: ldloc.s 48 (System.Int32) IL_09BC: ldc.i4.s 25 IL_09BE: add IL_09BF: stloc.s 48 (System.Int32) IL_09C1: Label59 IL_09C1: ldloc.s 48 (System.Int32) IL_09C3: ldloc.s 49 (System.Int32) IL_09C5: ldarg.2 IL_09C6: ldfld System.UInt16 Building::m_customBuffer1 IL_09CB: ldloc.s 49 (System.Int32) IL_09CD: mul IL_09CE: ldloc.s 19 (System.Int32) IL_09D0: div IL_09D1: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_09D6: add IL_09D7: stloc.s 48 (System.Int32) IL_09D9: ldloc.s 48 (System.Int32) IL_09DB: ldloc.s 49 (System.Int32) IL_09DD: ldloc.s 49 (System.Int32) IL_09DF: ldarg.2 IL_09E0: ldfld System.UInt16 Building::m_customBuffer2 IL_09E5: ldloc.s 49 (System.Int32) IL_09E7: mul IL_09E8: ldloc.s 19 (System.Int32) IL_09EA: div IL_09EB: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_09F0: sub IL_09F1: add IL_09F2: stloc.s 48 (System.Int32) IL_09F4: ldloc.2 IL_09F5: brfalse => Label60 IL_09FA: ldloc.0 IL_09FB: ldfld Array8`1 DistrictManager::m_parks IL_0A00: ldfld DistrictPark[] Array8`1::m_buffer IL_0A05: ldloc.2 IL_0A06: ldelema DistrictPark IL_0A0B: ldfld Park DistrictPark::m_parkPolicies IL_0A10: ldc.i4 8388608 IL_0A15: and IL_0A16: brfalse => Label61 IL_0A1B: ldloc.s 48 (System.Int32) IL_0A1D: ldc.i4.s 20 IL_0A1F: add IL_0A20: stloc.s 48 (System.Int32) IL_0A22: Label60 IL_0A22: Label61 IL_0A22: ldc.i4.8 IL_0A23: ldarg.2 IL_0A24: ldfld System.Byte Building::m_level IL_0A29: sub IL_0A2A: stloc.s 51 (System.Int32) IL_0A2C: ldc.i4.s 11 IL_0A2E: ldarg.2 IL_0A2F: ldfld System.Byte Building::m_level IL_0A34: sub IL_0A35: stloc.s 52 (System.Int32) IL_0A37: ldarg.0 IL_0A38: ldfld BuildingInfo BuildingAI::m_info IL_0A3D: ldfld ItemClass BuildingInfo::m_class IL_0A42: callvirt System.Boolean ItemClass::get_isCommercialHighGenegic() IL_0A47: brtrue => Label62 IL_0A4C: ldarg.0 IL_0A4D: ldfld BuildingInfo BuildingAI::m_info IL_0A52: ldfld ItemClass BuildingInfo::m_class IL_0A57: callvirt System.Boolean ItemClass::get_isCommercialWallToWall() IL_0A5C: brfalse => Label63 IL_0A61: Label62 IL_0A61: ldloc.s 51 (System.Int32) IL_0A63: ldc.i4.1 IL_0A64: add IL_0A65: stloc.s 51 (System.Int32) IL_0A67: ldloc.s 52 (System.Int32) IL_0A69: ldc.i4.1 IL_0A6A: add IL_0A6B: stloc.s 52 (System.Int32) IL_0A6D: Label63 IL_0A6D: ldloc.s 35 (System.Int32) IL_0A6F: ldloc.s 51 (System.Int32) IL_0A71: bge => Label64 IL_0A76: ldloc.s 48 (System.Int32) IL_0A78: ldloc.s 51 (System.Int32) IL_0A7A: ldloc.s 35 (System.Int32) IL_0A7C: sub IL_0A7D: add IL_0A7E: stloc.s 48 (System.Int32) IL_0A80: Label64 IL_0A80: ldloc.s 35 (System.Int32) IL_0A82: ldloc.s 52 (System.Int32) IL_0A84: ble => Label65 IL_0A89: ldloc.s 48 (System.Int32) IL_0A8B: ldloc.s 35 (System.Int32) IL_0A8D: ldloc.s 52 (System.Int32) IL_0A8F: sub IL_0A90: sub IL_0A91: stloc.s 48 (System.Int32) IL_0A93: Label65 IL_0A93: ldloc.s 35 (System.Int32) IL_0A95: ldloc.s 52 (System.Int32) IL_0A97: ldc.i4.4 IL_0A98: add IL_0A99: blt => Label66 IL_0A9E: ldarg.2 IL_0A9F: ldfld System.Byte Building::m_taxProblemTimer IL_0AA4: brtrue => Label67 IL_0AA9: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0AAE: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0AB3: ldc.i4.s 32 IL_0AB5: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0ABA: brtrue => Label68 IL_0ABF: Label67 IL_0ABF: ldloc.s 35 (System.Int32) IL_0AC1: ldloc.s 52 (System.Int32) IL_0AC3: sub IL_0AC4: ldc.i4.2 IL_0AC5: shr IL_0AC6: stloc.s 53 (System.Int32) IL_0AC8: ldarg.2 IL_0AC9: ldc.i4 255 IL_0ACE: ldarg.2 IL_0ACF: ldfld System.Byte Building::m_taxProblemTimer IL_0AD4: ldloc.s 53 (System.Int32) IL_0AD6: add IL_0AD7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0ADC: conv.u1 IL_0ADD: stfld System.Byte Building::m_taxProblemTimer IL_0AE2: ldarg.2 IL_0AE3: ldfld System.Byte Building::m_taxProblemTimer IL_0AE8: ldc.i4.s 96 IL_0AEA: blt => Label69 IL_0AEF: ldarg.2 IL_0AF0: ldarg.2 IL_0AF1: ldfld ProblemStruct Building::m_problems IL_0AF6: ldc.i8 4611686018494496768 IL_0AFF: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0B04: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0B09: stfld ProblemStruct Building::m_problems IL_0B0E: br => Label70 IL_0B13: Label69 IL_0B13: ldarg.2 IL_0B14: ldfld System.Byte Building::m_taxProblemTimer IL_0B19: ldc.i4.s 32 IL_0B1B: blt => Label71 IL_0B20: ldarg.2 IL_0B21: ldarg.2 IL_0B22: ldfld ProblemStruct Building::m_problems IL_0B27: ldc.i4 67108864 IL_0B2C: conv.i8 IL_0B2D: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0B32: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0B37: stfld ProblemStruct Building::m_problems IL_0B3C: Label68 IL_0B3C: Label70 IL_0B3C: Label71 IL_0B3C: br => Label72 IL_0B41: Label66 IL_0B41: ldarg.2 IL_0B42: ldc.i4.0 IL_0B43: ldarg.2 IL_0B44: ldfld System.Byte Building::m_taxProblemTimer IL_0B49: ldc.i4.1 IL_0B4A: sub IL_0B4B: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0B50: conv.u1 IL_0B51: stfld System.Byte Building::m_taxProblemTimer IL_0B56: ldarg.2 IL_0B57: ldarg.2 IL_0B58: ldfld ProblemStruct Building::m_problems IL_0B5D: ldc.i4 67108864 IL_0B62: conv.i8 IL_0B63: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0B68: call static ProblemStruct Notification::RemoveProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0B6D: stfld ProblemStruct Building::m_problems IL_0B72: Label72 IL_0B72: ldarg.0 IL_0B73: ldarg.1 IL_0B74: newobj System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0B79: ldloc.s 10 (System.Int32) IL_0B7B: ldloc.s 35 (System.Int32) IL_0B7D: ldloc.s 5 (DistrictPolicies+CityPlanning) IL_0B7F: ldloc.s 4 (DistrictPolicies+Taxation) IL_0B81: ldloca.s 54 (System.Int32) IL_0B83: ldloca.s 55 (System.Int32) IL_0B85: call System.Void CommercialBuildingAI::GetAccumulation(ColossalFramework.Math.Randomizer r, System.Int32 productionRate, System.Int32 taxRate, CityPlanning cityPlanningPolicies, Taxation taxationPolicies, System.Int32& entertainment, System.Int32& attractiveness) IL_0B8A: ldloc.s 54 (System.Int32) IL_0B8C: brfalse => Label73 IL_0B91: ldloc.2 IL_0B92: brfalse => Label74 IL_0B97: ldloc.0 IL_0B98: ldfld Array8`1 DistrictManager::m_parks IL_0B9D: ldfld DistrictPark[] Array8`1::m_buffer IL_0BA2: ldloc.2 IL_0BA3: ldelema DistrictPark IL_0BA8: call System.Boolean DistrictPark::get_IsPedestrianZone() IL_0BAD: brfalse => Label75 IL_0BB2: ldloc.0 IL_0BB3: ldfld Array8`1 DistrictManager::m_parks IL_0BB8: ldfld DistrictPark[] Array8`1::m_buffer IL_0BBD: ldloc.2 IL_0BBE: ldelema DistrictPark IL_0BC3: ldloc.s 54 (System.Int32) IL_0BC5: call System.Void DistrictPark::AddEntertainment(System.Int32 amount) IL_0BCA: br => Label76 IL_0BCF: Label74 IL_0BCF: Label75 IL_0BCF: call static ImmaterialResourceManager ColossalFramework.Singleton`1::get_instance() IL_0BD4: ldc.i4.s 13 IL_0BD6: ldloc.s 54 (System.Int32) IL_0BD8: ldarg.2 IL_0BD9: ldfld UnityEngine.Vector3 Building::m_position IL_0BDE: ldloc.s 47 (System.Single) IL_0BE0: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource resource, System.Int32 rate, UnityEngine.Vector3 position, System.Single radius) IL_0BE5: pop IL_0BE6: Label73 IL_0BE6: Label76 IL_0BE6: ldloc.s 55 (System.Int32) IL_0BE8: brfalse => Label77 IL_0BED: ldloc.2 IL_0BEE: brfalse => Label78 IL_0BF3: ldloc.0 IL_0BF4: ldfld Array8`1 DistrictManager::m_parks IL_0BF9: ldfld DistrictPark[] Array8`1::m_buffer IL_0BFE: ldloc.2 IL_0BFF: ldelema DistrictPark IL_0C04: call System.Boolean DistrictPark::get_IsPedestrianZone() IL_0C09: brfalse => Label79 IL_0C0E: ldloc.0 IL_0C0F: ldfld Array8`1 DistrictManager::m_parks IL_0C14: ldfld DistrictPark[] Array8`1::m_buffer IL_0C19: ldloc.2 IL_0C1A: ldelema DistrictPark IL_0C1F: ldloc.s 55 (System.Int32) IL_0C21: call System.Void DistrictPark::AddAttractiveness(System.Int32 amount) IL_0C26: br => Label80 IL_0C2B: Label78 IL_0C2B: Label79 IL_0C2B: call static ImmaterialResourceManager ColossalFramework.Singleton`1::get_instance() IL_0C30: ldc.i4.s 15 IL_0C32: ldloc.s 55 (System.Int32) IL_0C34: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource resource, System.Int32 rate) IL_0C39: pop IL_0C3A: Label77 IL_0C3A: Label80 IL_0C3A: ldloc.s 48 (System.Int32) IL_0C3C: ldc.i4.0 IL_0C3D: ldc.i4.s 100 IL_0C3F: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_0C44: stloc.s 48 (System.Int32) IL_0C46: ldarg.2 IL_0C47: ldloc.s 45 (System.Int32) IL_0C49: conv.u1 IL_0C4A: stfld System.Byte Building::m_health IL_0C4F: ldarg.2 IL_0C50: ldloc.s 48 (System.Int32) IL_0C52: conv.u1 IL_0C53: stfld System.Byte Building::m_happiness IL_0C58: ldarg.2 IL_0C59: ldloc.s 7 (System.Int32) IL_0C5B: ldloc.s 14 (System.Int32) IL_0C5D: add IL_0C5E: conv.u1 IL_0C5F: stfld System.Byte Building::m_citizenCount IL_0C64: ldarg.0 IL_0C65: ldarg.1 IL_0C66: ldarg.2 IL_0C67: ldloca.s 6 (Citizen+BehaviourData) IL_0C69: ldloc.s 8 (System.Int32) IL_0C6B: ldloc.s 15 (System.Int32) IL_0C6D: add IL_0C6E: callvirt virtual System.Void CommonBuildingAI::HandleDead(System.UInt16 buildingID, Building& buildingData, BehaviourData& behaviour, System.Int32 citizenCount) IL_0C73: ldloca.s 6 (Citizen+BehaviourData) IL_0C75: ldfld System.Int32 BehaviourData::m_crimeAccumulation IL_0C7A: ldc.i4.s 10 IL_0C7C: div IL_0C7D: stloc.s 56 (System.Int32) IL_0C7F: ldarg.0 IL_0C80: ldfld BuildingInfo BuildingAI::m_info IL_0C85: ldfld ItemClass BuildingInfo::m_class IL_0C8A: callvirt System.Boolean ItemClass::get_isCommercialLeisure() IL_0C8F: brfalse => Label81 IL_0C94: ldloc.s 56 (System.Int32) IL_0C96: ldc.i4.5 IL_0C97: mul IL_0C98: ldc.i4.3 IL_0C99: add IL_0C9A: ldc.i4.2 IL_0C9B: shr IL_0C9C: stloc.s 56 (System.Int32) IL_0C9E: Label81 IL_0C9E: ldloc.3 IL_0C9F: ldc.i4 256 IL_0CA4: and IL_0CA5: brfalse => Label82 IL_0CAA: ldloc.s 56 (System.Int32) IL_0CAC: ldc.i4.3 IL_0CAD: mul IL_0CAE: ldc.i4.3 IL_0CAF: add IL_0CB0: ldc.i4.2 IL_0CB1: shr IL_0CB2: stloc.s 56 (System.Int32) IL_0CB4: Label82 IL_0CB4: ldarg.0 IL_0CB5: ldarg.1 IL_0CB6: ldarg.2 IL_0CB7: ldloc.s 56 (System.Int32) IL_0CB9: ldarg.2 IL_0CBA: ldfld System.Byte Building::m_citizenCount IL_0CBF: callvirt virtual System.Void CommonBuildingAI::HandleCrime(System.UInt16 buildingID, Building& data, System.Int32 crimeAccumulation, System.Int32 citizenCount) IL_0CC4: ldarg.2 IL_0CC5: ldfld System.UInt16 Building::m_crimeBuffer IL_0CCA: stloc.s 57 (System.Int32) IL_0CCC: ldloc.s 7 (System.Int32) IL_0CCE: brfalse => Label83 IL_0CD3: call static ImmaterialResourceManager ColossalFramework.Singleton`1::get_instance() IL_0CD8: ldc.i4.s 12 IL_0CDA: ldloc.s 7 (System.Int32) IL_0CDC: ldarg.2 IL_0CDD: ldfld UnityEngine.Vector3 Building::m_position IL_0CE2: ldloc.s 47 (System.Single) IL_0CE4: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource resource, System.Int32 rate, UnityEngine.Vector3 position, System.Single radius) IL_0CE9: pop IL_0CEA: ldloca.s 6 (Citizen+BehaviourData) IL_0CEC: ldfld System.Int32 BehaviourData::m_educated0Count IL_0CF1: ldc.i4.s 100 IL_0CF3: mul IL_0CF4: ldloca.s 6 (Citizen+BehaviourData) IL_0CF6: ldfld System.Int32 BehaviourData::m_educated1Count IL_0CFB: ldc.i4.s 50 IL_0CFD: mul IL_0CFE: add IL_0CFF: ldloca.s 6 (Citizen+BehaviourData) IL_0D01: ldfld System.Int32 BehaviourData::m_educated2Count IL_0D06: ldc.i4.s 30 IL_0D08: mul IL_0D09: add IL_0D0A: stloc.s 58 (System.Int32) IL_0D0C: ldloc.s 58 (System.Int32) IL_0D0E: ldloc.s 7 (System.Int32) IL_0D10: div IL_0D11: ldc.i4.s 50 IL_0D13: add IL_0D14: stloc.s 58 (System.Int32) IL_0D16: ldarg.2 IL_0D17: ldloc.s 58 (System.Int32) IL_0D19: conv.u1 IL_0D1A: stfld System.Byte Building::m_fireHazard IL_0D1F: br => Label84 IL_0D24: Label83 IL_0D24: ldarg.2 IL_0D25: ldc.i4.0 IL_0D26: stfld System.Byte Building::m_fireHazard IL_0D2B: Label84 IL_0D2B: ldarg.2 IL_0D2C: ldfld System.Byte Building::m_citizenCount IL_0D31: brfalse => Label85 IL_0D36: ldloc.s 57 (System.Int32) IL_0D38: ldarg.2 IL_0D39: ldfld System.Byte Building::m_citizenCount IL_0D3E: ldc.i4.1 IL_0D3F: shr IL_0D40: add IL_0D41: ldarg.2 IL_0D42: ldfld System.Byte Building::m_citizenCount IL_0D47: div IL_0D48: stloc.s 57 (System.Int32) IL_0D4A: br => Label86 IL_0D4F: Label85 IL_0D4F: ldc.i4.0 IL_0D50: stloc.s 57 (System.Int32) IL_0D52: Label86 IL_0D52: ldc.i4.0 IL_0D53: stloc.s 59 (System.Int32) IL_0D55: ldc.i4.0 IL_0D56: stloc.s 60 (System.Int32) IL_0D58: ldc.i4.0 IL_0D59: stloc.s 61 (System.Int32) IL_0D5B: ldc.i4.0 IL_0D5C: stloc.s 62 (System.Int32) IL_0D5E: ldloc.s 21 (TransferManager+TransferReason) IL_0D60: ldc.i4 255 IL_0D65: beq => Label87 IL_0D6A: ldloc.s 21 (TransferManager+TransferReason) IL_0D6C: ldc.i4.s 17 IL_0D6E: beq => Label88 IL_0D73: ldloc.s 21 (TransferManager+TransferReason) IL_0D75: ldc.i4.s 32 IL_0D77: bne.un => Label89 IL_0D7C: Label88 IL_0D7C: ldarg.0 IL_0D7D: ldarg.1 IL_0D7E: ldarg.2 IL_0D7F: ldloc.s 21 (TransferManager+TransferReason) IL_0D81: ldc.i4.s 105 IL_0D83: ldloca.s 59 (System.Int32) IL_0D85: ldloca.s 60 (System.Int32) IL_0D87: ldloca.s 61 (System.Int32) IL_0D89: ldloca.s 62 (System.Int32) IL_0D8B: call System.Void CommonBuildingAI::CalculateGuestVehicles(System.UInt16 buildingID, Building& data, TransferReason material1, TransferReason material2, System.Int32& count, System.Int32& cargo, System.Int32& capacity, System.Int32& outside) IL_0D90: br => Label90 IL_0D95: Label89 IL_0D95: ldarg.0 IL_0D96: ldarg.1 IL_0D97: ldarg.2 IL_0D98: ldloc.s 21 (TransferManager+TransferReason) IL_0D9A: ldloca.s 59 (System.Int32) IL_0D9C: ldloca.s 60 (System.Int32) IL_0D9E: ldloca.s 61 (System.Int32) IL_0DA0: ldloca.s 62 (System.Int32) IL_0DA2: call System.Void CommonBuildingAI::CalculateGuestVehicles(System.UInt16 buildingID, Building& data, TransferReason material, System.Int32& count, System.Int32& cargo, System.Int32& capacity, System.Int32& outside) IL_0DA7: Label90 IL_0DA7: ldarg.2 IL_0DA8: ldloc.s 62 (System.Int32) IL_0DAA: ldarg.2 IL_0DAB: ldfld System.Byte Building::m_tempImport IL_0DB0: ldc.i4 255 IL_0DB5: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_0DBA: conv.u1 IL_0DBB: stfld System.Byte Building::m_tempImport IL_0DC0: Label87 IL_0DC0: ldarg.2 IL_0DC1: ldloca.s 6 (Citizen+BehaviourData) IL_0DC3: ldfld System.Int32 BehaviourData::m_touristCount IL_0DC8: ldarg.2 IL_0DC9: ldfld System.Byte Building::m_tempExport IL_0DCE: ldc.i4 255 IL_0DD3: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_0DD8: conv.u1 IL_0DD9: stfld System.Byte Building::m_tempExport IL_0DDE: ldarg.2 IL_0DDF: ldloc.s 10 (System.Int32) IL_0DE1: conv.u1 IL_0DE2: stfld System.Byte Building::m_adults IL_0DE7: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0DEC: stloc.s 63 (SimulationManager) IL_0DEE: ldloc.s 63 (SimulationManager) IL_0DF0: ldfld System.UInt32 SimulationManager::m_currentFrameIndex IL_0DF5: ldc.i4 3840 IL_0DFA: and IL_0DFB: ldc.i4.8 IL_0DFC: shr.un IL_0DFD: stloc.s 64 (System.UInt32) IL_0DFF: ldloc.s 64 (System.UInt32) IL_0E01: conv.u8 IL_0E02: ldarg.1 IL_0E03: ldc.i4.s 15 IL_0E05: and IL_0E06: conv.i8 IL_0E07: bne.un => Label91 IL_0E0C: ldarg.0 IL_0E0D: ldfld BuildingInfo BuildingAI::m_info IL_0E12: ldfld ItemClass BuildingInfo::m_class IL_0E17: callvirt System.Boolean ItemClass::get_isCommercialLowGeneric() IL_0E1C: brtrue => Label92 IL_0E21: ldarg.0 IL_0E22: ldfld BuildingInfo BuildingAI::m_info IL_0E27: ldfld ItemClass BuildingInfo::m_class IL_0E2C: callvirt System.Boolean ItemClass::get_isCommercialHighGenegic() IL_0E31: brtrue => Label93 IL_0E36: ldarg.0 IL_0E37: ldfld BuildingInfo BuildingAI::m_info IL_0E3C: ldfld ItemClass BuildingInfo::m_class IL_0E41: callvirt System.Boolean ItemClass::get_isCommercialWallToWall() IL_0E46: brfalse => Label94 IL_0E4B: Label92 IL_0E4B: Label93 IL_0E4B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0E50: ldfld System.UInt32 ZoneManager::m_lastBuildIndex IL_0E55: ldloc.s 63 (SimulationManager) IL_0E57: ldfld System.UInt32 SimulationManager::m_currentBuildIndex IL_0E5C: bne.un => Label95 IL_0E61: ldarg.2 IL_0E62: ldfld Flags Building::m_flags IL_0E67: ldc.i4 8388608 IL_0E6C: and IL_0E6D: brtrue => Label96 IL_0E72: ldarg.0 IL_0E73: ldarg.1 IL_0E74: ldarg.2 IL_0E75: ldarg.3 IL_0E76: ldloca.s 6 (Citizen+BehaviourData) IL_0E78: ldloc.s 14 (System.Int32) IL_0E7A: call System.Void CommercialBuildingAI::CheckBuildingLevel(System.UInt16 buildingID, Building& buildingData, Frame& frameData, BehaviourData& behaviour, System.Int32 visitorCount) IL_0E7F: Label91 IL_0E7F: Label94 IL_0E7F: Label95 IL_0E7F: Label96 IL_0E7F: ldarg.2 IL_0E80: ldfld Flags Building::m_flags IL_0E85: ldc.i4 8454144 IL_0E8A: and IL_0E8B: brfalse => Label97 IL_0E90: ldarg.2 IL_0E91: ldfld ProblemStruct Building::m_problems IL_0E96: ldc.i4 1310720 IL_0E9B: conv.i8 IL_0E9C: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0EA1: call static ProblemStruct Notification::RemoveProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0EA6: stloc.s 65 (Notification+ProblemStruct) IL_0EA8: ldarg.2 IL_0EA9: ldfld System.UInt16 Building::m_customBuffer2 IL_0EAE: ldloc.s 19 (System.Int32) IL_0EB0: ldloc.s 18 (System.Int32) IL_0EB2: ldc.i4.1 IL_0EB3: shr IL_0EB4: sub IL_0EB5: ble => Label98 IL_0EBA: ldloc.s 14 (System.Int32) IL_0EBC: ldloc.s 16 (System.Int32) IL_0EBE: ldc.i4.1 IL_0EBF: shr IL_0EC0: bgt => Label99 IL_0EC5: ldarg.2 IL_0EC6: ldc.i4 255 IL_0ECB: ldarg.2 IL_0ECC: ldfld System.Byte Building::m_outgoingProblemTimer IL_0ED1: ldc.i4.1 IL_0ED2: add IL_0ED3: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0ED8: conv.u1 IL_0ED9: stfld System.Byte Building::m_outgoingProblemTimer IL_0EDE: ldarg.2 IL_0EDF: ldfld System.Byte Building::m_outgoingProblemTimer IL_0EE4: ldc.i4 192 IL_0EE9: blt => Label100 IL_0EEE: ldloc.s 65 (Notification+ProblemStruct) IL_0EF0: ldc.i8 4611686018427650048 IL_0EF9: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0EFE: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0F03: stloc.s 65 (Notification+ProblemStruct) IL_0F05: br => Label101 IL_0F0A: Label100 IL_0F0A: ldarg.2 IL_0F0B: ldfld System.Byte Building::m_outgoingProblemTimer IL_0F10: ldc.i4 128 IL_0F15: blt => Label102 IL_0F1A: ldloc.s 65 (Notification+ProblemStruct) IL_0F1C: ldc.i4 262144 IL_0F21: conv.i8 IL_0F22: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0F27: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0F2C: stloc.s 65 (Notification+ProblemStruct) IL_0F2E: Label101 IL_0F2E: Label102 IL_0F2E: br => Label103 IL_0F33: Label98 IL_0F33: Label99 IL_0F33: ldarg.2 IL_0F34: ldc.i4.0 IL_0F35: stfld System.Byte Building::m_outgoingProblemTimer IL_0F3A: Label103 IL_0F3A: ldarg.2 IL_0F3B: ldfld System.UInt16 Building::m_customBuffer1 IL_0F40: brtrue => Label104 IL_0F45: ldloc.s 21 (TransferManager+TransferReason) IL_0F47: ldc.i4 255 IL_0F4C: beq => Label105 IL_0F51: ldarg.2 IL_0F52: ldc.i4 255 IL_0F57: ldarg.2 IL_0F58: ldfld System.Byte Building::m_incomingProblemTimer IL_0F5D: ldc.i4.1 IL_0F5E: add IL_0F5F: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0F64: conv.u1 IL_0F65: stfld System.Byte Building::m_incomingProblemTimer IL_0F6A: ldarg.2 IL_0F6B: ldfld System.Byte Building::m_incomingProblemTimer IL_0F70: ldc.i4.s 64 IL_0F72: bge => Label106 IL_0F77: ldloc.s 65 (Notification+ProblemStruct) IL_0F79: ldc.i4 1048576 IL_0F7E: conv.i8 IL_0F7F: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0F84: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0F89: stloc.s 65 (Notification+ProblemStruct) IL_0F8B: br => Label107 IL_0F90: Label106 IL_0F90: ldloc.s 65 (Notification+ProblemStruct) IL_0F92: ldc.i8 4611686018428436480 IL_0F9B: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0FA0: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0FA5: stloc.s 65 (Notification+ProblemStruct) IL_0FA7: Label107 IL_0FA7: br => Label108 IL_0FAC: Label104 IL_0FAC: Label105 IL_0FAC: ldarg.2 IL_0FAD: ldc.i4.0 IL_0FAE: stfld System.Byte Building::m_incomingProblemTimer IL_0FB3: Label108 IL_0FB3: ldarg.2 IL_0FB4: ldloc.s 65 (Notification+ProblemStruct) IL_0FB6: stfld ProblemStruct Building::m_problems IL_0FBB: ldloc.0 IL_0FBC: ldfld Array8`1 DistrictManager::m_districts IL_0FC1: ldfld District[] Array8`1::m_buffer IL_0FC6: ldloc.1 IL_0FC7: ldelema District IL_0FCC: ldloca.s 6 (Citizen+BehaviourData) IL_0FCE: ldloc.s 45 (System.Int32) IL_0FD0: ldloc.s 48 (System.Int32) IL_0FD2: ldloc.s 57 (System.Int32) IL_0FD4: ldloc.s 9 (System.Int32) IL_0FD6: ldloc.s 7 (System.Int32) IL_0FD8: ldc.i4.0 IL_0FD9: ldloc.s 9 (System.Int32) IL_0FDB: ldloc.s 8 (System.Int32) IL_0FDD: sub IL_0FDE: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0FE3: ldloc.s 16 (System.Int32) IL_0FE5: ldloc.s 14 (System.Int32) IL_0FE7: ldloc.s 17 (System.Int32) IL_0FE9: ldarg.2 IL_0FEA: ldfld System.Byte Building::m_level IL_0FEF: ldloc.s 28 (System.Int32) IL_0FF1: ldloc.s 34 (System.Int32) IL_0FF3: ldloc.s 29 (System.Int32) IL_0FF5: ldloc.s 30 (System.Int32) IL_0FF7: ldloc.s 31 (System.Int32) IL_0FF9: ldloc.s 32 (System.Int32) IL_0FFB: ldc.i4.s 100 IL_0FFD: ldarg.2 IL_0FFE: ldfld System.UInt16 Building::m_garbageBuffer IL_1003: ldc.i4.s 50 IL_1005: div IL_1006: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_100B: ldarg.2 IL_100C: ldfld System.Byte Building::m_waterPollution IL_1011: ldc.i4.s 100 IL_1013: mul IL_1014: ldc.i4 255 IL_1019: div IL_101A: ldarg.2 IL_101B: ldfld System.Byte Building::m_finalImport IL_1020: ldarg.2 IL_1021: ldfld System.Byte Building::m_finalExport IL_1026: ldarg.0 IL_1027: ldfld BuildingInfo BuildingAI::m_info IL_102C: ldfld ItemClass BuildingInfo::m_class IL_1031: ldfld SubService ItemClass::m_subService IL_1036: call System.Void District::AddCommercialData(BehaviourData& behaviour, System.Int32 health, System.Int32 happiness, System.Int32 crimeRate, System.Int32 workCount, System.Int32 aliveWorkCount, System.Int32 emptyWorkCount, System.Int32 visitCount, System.Int32 aliveVisitCount, System.Int32 emptyVisitCount, System.Int32 level, System.Int32 electricityConsumption, System.Int32 heatingConsumption, System.Int32 waterConsumption, System.Int32 sewageAccumulation, System.Int32 garbageAccumulation, System.Int32 incomeAccumulation, System.Int32 garbagePiles, System.Int32 waterPollution, System.Int32 import, System.Int32 export, SubService subService) IL_103B: ldloc.2 IL_103C: brfalse => Label109 IL_1041: ldloc.0 IL_1042: ldfld Array8`1 DistrictManager::m_parks IL_1047: ldfld DistrictPark[] Array8`1::m_buffer IL_104C: ldloc.2 IL_104D: ldelema DistrictPark IL_1052: call System.Boolean DistrictPark::get_IsPedestrianZone() IL_1057: brfalse => Label110 IL_105C: ldloc.0 IL_105D: ldfld Array8`1 DistrictManager::m_parks IL_1062: ldfld DistrictPark[] Array8`1::m_buffer IL_1067: ldloc.2 IL_1068: ldelema DistrictPark IL_106D: ldloca.s 6 (Citizen+BehaviourData) IL_106F: ldloc.s 48 (System.Int32) IL_1071: ldloc.s 9 (System.Int32) IL_1073: ldloc.s 7 (System.Int32) IL_1075: ldarg.0 IL_1076: ldfld BuildingInfo BuildingAI::m_info IL_107B: ldfld ItemClass BuildingInfo::m_class IL_1080: ldfld SubService ItemClass::m_subService IL_1085: call System.Void DistrictPark::AddCommercialData(BehaviourData& behaviour, System.Int32 happiness, System.Int32 workCount, System.Int32 aliveWorkCount, SubService subService) IL_108A: Label109 IL_108A: Label110 IL_108A: ldarg.2 IL_108B: ldfld System.Byte Building::m_fireIntensity IL_1090: brtrue => Label111 IL_1095: ldloc.s 21 (TransferManager+TransferReason) IL_1097: ldc.i4 255 IL_109C: beq => Label112 IL_10A1: ldloc.s 19 (System.Int32) IL_10A3: ldarg.2 IL_10A4: ldfld System.UInt16 Building::m_customBuffer1 IL_10A9: sub IL_10AA: ldloc.s 61 (System.Int32) IL_10AC: sub IL_10AD: stloc.s 66 (System.Int32) IL_10AF: ldloc.s 66 (System.Int32) IL_10B1: ldloc.s 13 (System.Int32) IL_10B3: ldc.i4.1 IL_10B4: shr IL_10B5: sub IL_10B6: stloc.s 66 (System.Int32) IL_10B8: ldloc.s 66 (System.Int32) IL_10BA: ldc.i4.0 IL_10BB: blt => Label113 IL_10C0: ldloca.s 67 (TransferManager+TransferOffer) IL_10C2: initobj TransferManager+TransferOffer IL_10C8: ldloca.s 67 (TransferManager+TransferOffer) IL_10CA: ldloc.s 66 (System.Int32) IL_10CC: ldc.i4.8 IL_10CD: mul IL_10CE: ldloc.s 13 (System.Int32) IL_10D0: div IL_10D1: call System.Void TransferOffer::set_Priority(System.Int32 value) IL_10D6: ldloca.s 67 (TransferManager+TransferOffer) IL_10D8: ldarg.1 IL_10D9: call System.Void TransferOffer::set_Building(System.UInt16 value) IL_10DE: ldloca.s 67 (TransferManager+TransferOffer) IL_10E0: ldarg.2 IL_10E1: ldfld UnityEngine.Vector3 Building::m_position IL_10E6: call System.Void TransferOffer::set_Position(UnityEngine.Vector3 value) IL_10EB: ldloca.s 67 (TransferManager+TransferOffer) IL_10ED: ldc.i4.1 IL_10EE: call System.Void TransferOffer::set_Amount(System.Int32 value) IL_10F3: ldloca.s 67 (TransferManager+TransferOffer) IL_10F5: ldc.i4.0 IL_10F6: call System.Void TransferOffer::set_Active(System.Boolean value) IL_10FB: ldloc.s 21 (TransferManager+TransferReason) IL_10FD: ldc.i4.s 17 IL_10FF: beq => Label114 IL_1104: ldloc.s 21 (TransferManager+TransferReason) IL_1106: ldc.i4.s 32 IL_1108: bne.un => Label115 IL_110D: Label114 IL_110D: ldloc.s 63 (SimulationManager) IL_110F: ldfld System.UInt32 SimulationManager::m_currentFrameIndex IL_1114: ldc.i4 768 IL_1119: and IL_111A: ldc.i4.8 IL_111B: shr.un IL_111C: conv.u8 IL_111D: ldarg.1 IL_111E: ldc.i4.3 IL_111F: and IL_1120: conv.i8 IL_1121: bne.un => Label116 IL_1126: call static TransferManager ColossalFramework.Singleton`1::get_instance() IL_112B: ldc.i4.s 105 IL_112D: ldloc.s 67 (TransferManager+TransferOffer) IL_112F: callvirt System.Void TransferManager::AddIncomingOffer(TransferReason material, TransferOffer offer) IL_1134: br => Label117 IL_1139: Label115 IL_1139: Label116 IL_1139: call static TransferManager ColossalFramework.Singleton`1::get_instance() IL_113E: ldloc.s 21 (TransferManager+TransferReason) IL_1140: ldloc.s 67 (TransferManager+TransferOffer) IL_1142: callvirt System.Void TransferManager::AddIncomingOffer(TransferReason material, TransferOffer offer) IL_1147: Label111 IL_1147: Label112 IL_1147: Label113 IL_1147: Label117 IL_1147: ldarg.2 IL_1148: ldfld System.Byte Building::m_fireIntensity IL_114D: brtrue => Label118 IL_1152: ldloc.s 22 (TransferManager+TransferReason) IL_1154: ldc.i4 255 IL_1159: beq => Label119 IL_115E: ldarg.2 IL_115F: ldfld System.UInt16 Building::m_customBuffer2 IL_1164: ldloc.s 14 (System.Int32) IL_1166: ldc.i4.s 100 IL_1168: mul IL_1169: sub IL_116A: stloc.s 68 (System.Int32) IL_116C: ldloc.s 68 (System.Int32) IL_116E: ldc.i4.s 100 IL_1170: blt => Label120 IL_1175: ldloc.s 17 (System.Int32) IL_1177: ldc.i4.0 IL_1178: ble => Label121 IL_117D: ldloca.s 69 (TransferManager+TransferOffer) IL_117F: initobj TransferManager+TransferOffer IL_1185: ldloca.s 69 (TransferManager+TransferOffer) IL_1187: ldc.i4.1 IL_1188: ldloc.s 68 (System.Int32) IL_118A: ldc.i4.8 IL_118B: mul IL_118C: ldloc.s 19 (System.Int32) IL_118E: div IL_118F: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_1194: call System.Void TransferOffer::set_Priority(System.Int32 value) IL_1199: ldloca.s 69 (TransferManager+TransferOffer) IL_119B: ldarg.1 IL_119C: call System.Void TransferOffer::set_Building(System.UInt16 value) IL_11A1: ldloca.s 69 (TransferManager+TransferOffer) IL_11A3: ldarg.2 IL_11A4: ldfld UnityEngine.Vector3 Building::m_position IL_11A9: call System.Void TransferOffer::set_Position(UnityEngine.Vector3 value) IL_11AE: ldloca.s 69 (TransferManager+TransferOffer) IL_11B0: ldloc.s 68 (System.Int32) IL_11B2: ldc.i4.s 100 IL_11B4: div IL_11B5: ldloc.s 17 (System.Int32) IL_11B7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_11BC: call System.Void TransferOffer::set_Amount(System.Int32 value) IL_11C1: ldloca.s 69 (TransferManager+TransferOffer) IL_11C3: ldc.i4.0 IL_11C4: call System.Void TransferOffer::set_Active(System.Boolean value) IL_11C9: call static TransferManager ColossalFramework.Singleton`1::get_instance() IL_11CE: ldloc.s 22 (TransferManager+TransferReason) IL_11D0: ldloc.s 69 (TransferManager+TransferOffer) IL_11D2: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason material, TransferOffer offer) IL_11D7: Label118 IL_11D7: Label119 IL_11D7: Label120 IL_11D7: Label121 IL_11D7: ldarg.0 IL_11D8: ldarg.1 IL_11D9: ldarg.2 IL_11DA: ldarg.3 IL_11DB: call virtual System.Void PrivateBuildingAI::SimulationStepActive(System.UInt16 buildingID, Building& buildingData, Frame& frameData) IL_11E0: ldarg.0 IL_11E1: ldarg.1 IL_11E2: ldarg.2 IL_11E3: ldarg.3 IL_11E4: ldloc.3 IL_11E5: call System.Void CommonBuildingAI::HandleFire(System.UInt16 buildingID, Building& data, Frame& frameData, Services policies) IL_11EA: // end original IL_11EA: Label97 IL_11EA: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: virtual System.Void MarketAI::SimulationStep(System.UInt16 buildingID, Building& buildingData, Frame& frameData) ### Replacement: static System.Void MarketAI::MarketAI.SimulationStep_Patch0(MarketAI this, System.UInt16 buildingID, Building& buildingData, Frame& frameData) IL_0000: Local var 0: SimulationManager IL_0000: Local var 1: System.UInt32 IL_0000: Local var 2: GuideController IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: ldarg.2 IL_0003: ldarg.3 IL_0004: call virtual System.Void PlayerBuildingAI::SimulationStep(System.UInt16 buildingID, Building& buildingData, Frame& frameData) IL_0009: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_000E: stloc.0 IL_000F: ldloc.0 IL_0010: ldfld System.UInt32 SimulationManager::m_currentFrameIndex IL_0015: ldc.i4 3840 IL_001A: and IL_001B: ldc.i4.8 IL_001C: shr.un IL_001D: stloc.1 IL_001E: ldloc.1 IL_001F: ldc.i4.s 15 IL_0021: bne.un => Label0 IL_0026: ldarg.2 IL_0027: ldarg.2 IL_0028: ldfld System.Byte Building::m_tempImport IL_002D: stfld System.Byte Building::m_finalImport IL_0032: ldarg.2 IL_0033: ldarg.2 IL_0034: ldfld System.Byte Building::m_tempExport IL_0039: stfld System.Byte Building::m_finalExport IL_003E: ldarg.2 IL_003F: ldarg.2 IL_0040: ldfld System.Byte Building::m_education1 IL_0045: stfld System.Byte Building::m_education2 IL_004A: ldarg.2 IL_004B: ldc.i4.0 IL_004C: stfld System.Byte Building::m_tempImport IL_0051: ldarg.2 IL_0052: ldc.i4.0 IL_0053: stfld System.Byte Building::m_tempExport IL_0058: ldarg.2 IL_0059: ldc.i4.0 IL_005A: stfld System.Byte Building::m_education1 IL_005F: Label0 IL_005F: ldarg.0 IL_0060: ldfld BuildingInfo BuildingAI::m_info IL_0065: brfalse => Label1 IL_006A: ldarg.0 IL_006B: ldfld BuildingInfo BuildingAI::m_info IL_0070: ldfld ItemClass BuildingInfo::m_class IL_0075: brfalse => Label2 IL_007A: ldarg.0 IL_007B: ldfld BuildingInfo BuildingAI::m_info IL_0080: ldfld ItemClass BuildingInfo::m_class IL_0085: ldfld Service ItemClass::m_service IL_008A: ldc.i4.s 25 IL_008C: bne.un => Label3 IL_0091: call static GuideManager ColossalFramework.Singleton`1::get_instance() IL_0096: ldfld GuideController SimulationManagerBase`2::m_properties IL_009B: stloc.2 IL_009C: ldloc.2 IL_009D: brfalse => Label4 IL_00A2: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_00A7: ldfld BuildingInstanceGuide BuildingManager::m_fishFactoryMarketBuilt IL_00AC: brfalse => Label5 IL_00B1: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_00B6: ldfld BuildingInstanceGuide BuildingManager::m_fishFactoryMarketBuilt IL_00BB: ldloc.2 IL_00BC: ldfld GuideInfo GuideController::m_fishFactoryMarketBuilt IL_00C1: ldarg.1 IL_00C2: callvirt System.Void BuildingInstanceGuide::Activate(GuideInfo guideInfo, System.UInt16 buildingID) IL_00C7: // end original IL_00C7: Label1 IL_00C7: Label2 IL_00C7: Label3 IL_00C7: Label4 IL_00C7: Label5 IL_00C7: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: virtual UnityEngine.Color CommonBuildingAI::GetColor(System.UInt16 buildingID, Building& data, InfoMode infoMode) ### Replacement: static UnityEngine.Color CommonBuildingAI::CommonBuildingAI.GetColor_Patch0(CommonBuildingAI this, System.UInt16 buildingID, Building& data, InfoMode infoMode) IL_0000: Local var 0: System.Boolean IL_0000: Local var 1: UnityEngine.Color IL_0000: Local var 2: UnityEngine.Color IL_0000: Local var 3: System.Boolean IL_0000: Local var 4: UnityEngine.Color IL_0000: Local var 5: UnityEngine.Color IL_0000: Local var 6: System.Boolean IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Byte IL_0000: Local var 9: System.Int32 IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Int32 IL_0000: Local var 12: System.Int32 IL_0000: Local var 13: System.Int32 IL_0000: Local var 14: DistrictManager IL_0000: Local var 15: System.Byte IL_0000: Local var 16: DistrictPolicies/Services IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.UInt16 IL_0000: Local var 19: UnityEngine.Color IL_0000: Local var 20: System.Boolean IL_0000: Local var 21: EventManager IL_0000: Local var 22: EventInfo IL_0000: Local var 23: UnityEngine.Color32 IL_0000: Local var 24: System.Boolean IL_0000: // start original IL_0000: ldarg.3 IL_0001: ldc.i4.s 16 IL_0003: sub IL_0004: switch => Labels0,1,2,3,4,5,6,7,8,9,10,11,12,13 IL_0041: Label1 IL_0041: Label3 IL_0041: Label5 IL_0041: Label7 IL_0041: Label8 IL_0041: Label10 IL_0041: Label12 IL_0041: ldarg.3 IL_0042: switch => Labels14,15,16,17,18,19 IL_005F: br => Label20 IL_0064: Label15 IL_0064: ldarg.0 IL_0065: ldarg.1 IL_0066: ldarg.2 IL_0067: callvirt virtual System.Boolean CommonBuildingAI::ShowConsumption(System.UInt16 buildingID, Building& data) IL_006C: brfalse => Label21 IL_0071: call static ElectricityManager ColossalFramework.Singleton`1::get_instance() IL_0076: ldarg.2 IL_0077: ldfld UnityEngine.Vector3 Building::m_position IL_007C: ldloca.s 0 (System.Boolean) IL_007E: callvirt System.Void ElectricityManager::CheckElectricity(UnityEngine.Vector3 pos, System.Boolean& electricity) IL_0083: ldloc.0 IL_0084: brfalse => Label22 IL_0089: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_008E: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_0093: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_0098: ldarg.3 IL_0099: ldelem.ref IL_009A: ldfld UnityEngine.Color ModeProperties::m_targetColor IL_009F: stloc.1 IL_00A0: ldloca.s 1 (UnityEngine.Color) IL_00A2: ldc.r4 0 IL_00A7: stfld System.Single UnityEngine.Color::a IL_00AC: ldloc.1 IL_00AD: br => Label52 IL_00B2: Label22 IL_00B2: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_00B7: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_00BC: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_00C1: ldarg.3 IL_00C2: ldelem.ref IL_00C3: ldfld UnityEngine.Color ModeProperties::m_negativeColor IL_00C8: stloc.2 IL_00C9: ldloca.s 2 (UnityEngine.Color) IL_00CB: ldc.r4 0 IL_00D0: stfld System.Single UnityEngine.Color::a IL_00D5: ldloc.2 IL_00D6: br => Label53 IL_00DB: Label21 IL_00DB: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_00E0: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_00E5: ldfld UnityEngine.Color InfoProperties::m_neutralColor IL_00EA: br => Label54 IL_00EF: Label6 IL_00EF: ldarg.0 IL_00F0: ldarg.1 IL_00F1: ldarg.2 IL_00F2: callvirt virtual System.Boolean CommonBuildingAI::ShowConsumption(System.UInt16 buildingID, Building& data) IL_00F7: brfalse => Label23 IL_00FC: call static WaterManager ColossalFramework.Singleton`1::get_instance() IL_0101: ldarg.2 IL_0102: ldfld UnityEngine.Vector3 Building::m_position IL_0107: ldloca.s 3 (System.Boolean) IL_0109: callvirt System.Void WaterManager::CheckHeating(UnityEngine.Vector3 pos, System.Boolean& heating) IL_010E: ldloc.3 IL_010F: brfalse => Label24 IL_0114: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0119: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_011E: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_0123: ldarg.3 IL_0124: ldelem.ref IL_0125: ldfld UnityEngine.Color ModeProperties::m_targetColor IL_012A: stloc.s 4 (UnityEngine.Color) IL_012C: ldloca.s 4 (UnityEngine.Color) IL_012E: ldc.r4 0 IL_0133: stfld System.Single UnityEngine.Color::a IL_0138: ldloc.s 4 (UnityEngine.Color) IL_013A: br => Label55 IL_013F: Label24 IL_013F: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0144: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_0149: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_014E: ldarg.3 IL_014F: ldelem.ref IL_0150: ldfld UnityEngine.Color ModeProperties::m_negativeColor IL_0155: stloc.s 5 (UnityEngine.Color) IL_0157: ldloca.s 5 (UnityEngine.Color) IL_0159: ldc.r4 0 IL_015E: stfld System.Single UnityEngine.Color::a IL_0163: ldloc.s 5 (UnityEngine.Color) IL_0165: br => Label56 IL_016A: Label23 IL_016A: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_016F: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_0174: ldfld UnityEngine.Color InfoProperties::m_neutralColor IL_0179: br => Label57 IL_017E: Label16 IL_017E: ldarg.0 IL_017F: ldarg.1 IL_0180: ldarg.2 IL_0181: callvirt virtual System.Boolean CommonBuildingAI::ShowConsumption(System.UInt16 buildingID, Building& data) IL_0186: brfalse => Label25 IL_018B: call static WaterManager ColossalFramework.Singleton`1::get_instance() IL_0190: ldarg.2 IL_0191: ldfld UnityEngine.Vector3 Building::m_position IL_0196: ldloca.s 6 (System.Boolean) IL_0198: ldloca.s 7 (System.Boolean) IL_019A: ldloca.s 8 (System.Byte) IL_019C: callvirt System.Void WaterManager::CheckWater(UnityEngine.Vector3 pos, System.Boolean& water, System.Boolean& sewage, System.Byte& waterPollution) IL_01A1: ldloc.s 6 (System.Boolean) IL_01A3: brfalse => Label26 IL_01A8: ldloc.s 7 (System.Boolean) IL_01AA: brfalse => Label27 IL_01AF: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_01B4: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_01B9: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_01BE: ldarg.3 IL_01BF: ldelem.ref IL_01C0: ldfld UnityEngine.Color ModeProperties::m_targetColor IL_01C5: br => Label58 IL_01CA: Label26 IL_01CA: Label27 IL_01CA: ldloc.s 6 (System.Boolean) IL_01CC: brfalse => Label28 IL_01D1: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_01D6: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_01DB: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_01E0: ldarg.3 IL_01E1: ldelem.ref IL_01E2: ldfld UnityEngine.Color ModeProperties::m_negativeColor IL_01E7: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_01EC: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_01F1: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_01F6: ldarg.3 IL_01F7: ldelem.ref IL_01F8: ldfld UnityEngine.Color ModeProperties::m_targetColor IL_01FD: ldc.r4 0.5 IL_0202: call static UnityEngine.Color UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t) IL_0207: br => Label59 IL_020C: Label28 IL_020C: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0211: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_0216: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_021B: ldarg.3 IL_021C: ldelem.ref IL_021D: ldfld UnityEngine.Color ModeProperties::m_negativeColor IL_0222: br => Label60 IL_0227: Label25 IL_0227: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_022C: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_0231: ldfld UnityEngine.Color InfoProperties::m_neutralColor IL_0236: br => Label61 IL_023B: Label19 IL_023B: ldarg.0 IL_023C: ldarg.1 IL_023D: ldarg.2 IL_023E: callvirt virtual System.Boolean CommonBuildingAI::ShowConsumption(System.UInt16 buildingID, Building& data) IL_0243: brfalse => Label29 IL_0248: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_024D: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_0252: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_0257: ldarg.3 IL_0258: ldelem.ref IL_0259: ldfld UnityEngine.Color ModeProperties::m_negativeColor IL_025E: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0263: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_0268: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_026D: ldarg.3 IL_026E: ldelem.ref IL_026F: ldfld UnityEngine.Color ModeProperties::m_targetColor IL_0274: ldarg.2 IL_0275: ldfld System.Byte Building::m_happiness IL_027A: call static Happiness Citizen::GetHappinessLevel(System.Int32 happiness) IL_027F: conv.r4 IL_0280: ldc.r4 0.25 IL_0285: mul IL_0286: call static UnityEngine.Color UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t) IL_028B: br => Label62 IL_0290: Label29 IL_0290: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0295: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_029A: ldfld UnityEngine.Color InfoProperties::m_neutralColor IL_029F: br => Label63 IL_02A4: Label17 IL_02A4: ldarg.0 IL_02A5: ldarg.1 IL_02A6: ldarg.2 IL_02A7: callvirt virtual System.Boolean CommonBuildingAI::ShowConsumption(System.UInt16 buildingID, Building& data) IL_02AC: brfalse => Label30 IL_02B1: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_02B6: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_02BB: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_02C0: ldarg.3 IL_02C1: ldelem.ref IL_02C2: ldfld UnityEngine.Color ModeProperties::m_targetColor IL_02C7: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_02CC: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_02D1: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_02D6: ldarg.3 IL_02D7: ldelem.ref IL_02D8: ldfld UnityEngine.Color ModeProperties::m_negativeColor IL_02DD: ldarg.2 IL_02DE: ldfld System.UInt16 Building::m_crimeBuffer IL_02E3: conv.r4 IL_02E4: ldc.r4 1 IL_02E9: ldarg.2 IL_02EA: ldfld System.Byte Building::m_citizenCount IL_02EF: conv.r4 IL_02F0: ldc.r4 100 IL_02F5: mul IL_02F6: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_02FB: div IL_02FC: call static UnityEngine.Color UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t) IL_0301: br => Label64 IL_0306: Label30 IL_0306: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_030B: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_0310: ldfld UnityEngine.Color InfoProperties::m_neutralColor IL_0315: br => Label65 IL_031A: Label4 IL_031A: ldarg.0 IL_031B: ldarg.1 IL_031C: ldarg.2 IL_031D: callvirt virtual System.Boolean CommonBuildingAI::ShowConsumption(System.UInt16 buildingID, Building& data) IL_0322: brfalse => Label31 IL_0327: call static ImmaterialResourceManager ColossalFramework.Singleton`1::get_instance() IL_032C: ldc.i4.s 13 IL_032E: ldarg.2 IL_032F: ldfld UnityEngine.Vector3 Building::m_position IL_0334: ldloca.s 9 (System.Int32) IL_0336: callvirt System.Void ImmaterialResourceManager::CheckLocalResource(Resource resource, UnityEngine.Vector3 position, System.Int32& local) IL_033B: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0340: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_0345: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_034A: ldarg.3 IL_034B: ldelem.ref IL_034C: ldfld UnityEngine.Color ModeProperties::m_negativeColor IL_0351: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0356: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_035B: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_0360: ldarg.3 IL_0361: ldelem.ref IL_0362: ldfld UnityEngine.Color ModeProperties::m_targetColor IL_0367: ldloc.s 9 (System.Int32) IL_0369: conv.r4 IL_036A: ldc.r4 0.005 IL_036F: mul IL_0370: call static System.Single UnityEngine.Mathf::Clamp01(System.Single value) IL_0375: call static UnityEngine.Color UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t) IL_037A: br => Label66 IL_037F: Label31 IL_037F: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0384: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_0389: ldfld UnityEngine.Color InfoProperties::m_neutralColor IL_038E: br => Label67 IL_0393: Label0 IL_0393: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0398: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_039D: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_03A2: ldarg.3 IL_03A3: ldelem.ref IL_03A4: ldfld UnityEngine.Color ModeProperties::m_targetColor IL_03A9: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_03AE: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_03B3: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_03B8: ldarg.3 IL_03B9: ldelem.ref IL_03BA: ldfld UnityEngine.Color ModeProperties::m_negativeColor IL_03BF: ldc.i4.s 100 IL_03C1: ldarg.2 IL_03C2: ldfld System.UInt16 Building::m_garbageBuffer IL_03C7: ldc.i4.s 50 IL_03C9: div IL_03CA: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_03CF: conv.r4 IL_03D0: ldc.r4 0.01 IL_03D5: mul IL_03D6: call static UnityEngine.Color UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t) IL_03DB: br => Label68 IL_03E0: Label2 IL_03E0: ldarg.0 IL_03E1: ldarg.1 IL_03E2: ldarg.2 IL_03E3: callvirt virtual System.Boolean CommonBuildingAI::ShowConsumption(System.UInt16 buildingID, Building& data) IL_03E8: brfalse => Label32 IL_03ED: ldarg.0 IL_03EE: ldarg.1 IL_03EF: ldarg.2 IL_03F0: ldloca.s 10 (System.Int32) IL_03F2: ldloca.s 11 (System.Int32) IL_03F4: ldloca.s 12 (System.Int32) IL_03F6: callvirt virtual System.Boolean BuildingAI::GetFireParameters(System.UInt16 buildingID, Building& buildingData, System.Int32& fireHazard, System.Int32& fireSize, System.Int32& fireTolerance) IL_03FB: brfalse => Label33 IL_0400: ldloc.s 10 (System.Int32) IL_0402: brfalse => Label34 IL_0407: call static DistrictManager ColossalFramework.Singleton`1::get_instance() IL_040C: stloc.s 14 (DistrictManager) IL_040E: ldloc.s 14 (DistrictManager) IL_0410: ldarg.2 IL_0411: ldfld UnityEngine.Vector3 Building::m_position IL_0416: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3 worldPos) IL_041B: stloc.s 15 (System.Byte) IL_041D: ldloc.s 14 (DistrictManager) IL_041F: ldfld Array8`1 DistrictManager::m_districts IL_0424: ldfld District[] Array8`1::m_buffer IL_0429: ldloc.s 15 (System.Byte) IL_042B: ldelema District IL_0430: ldfld Services District::m_servicePolicies IL_0435: stloc.s 16 (DistrictPolicies+Services) IL_0437: ldloc.s 16 (DistrictPolicies+Services) IL_0439: ldc.i4.4 IL_043A: and IL_043B: brfalse => Label35 IL_0440: ldloc.s 10 (System.Int32) IL_0442: ldc.i4.s 75 IL_0444: mul IL_0445: ldc.i4.s 100 IL_0447: div IL_0448: stloc.s 10 (System.Int32) IL_044A: Label34 IL_044A: Label35 IL_044A: ldarg.2 IL_044B: call UnityEngine.Vector3 Building::CalculateSidewalkPosition() IL_0450: stloc.s 17 (UnityEngine.Vector3) IL_0452: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_0457: ldloc.s 17 (UnityEngine.Vector3) IL_0459: callvirt System.Byte CoverageManager::FindFireCoverage(UnityEngine.Vector3 position) IL_045E: ldc.i4.s 100 IL_0460: mul IL_0461: ldc.i4 255 IL_0466: div IL_0467: stloc.s 13 (System.Int32) IL_0469: ldc.i4.s 100 IL_046B: ldc.i4.s 10 IL_046D: ldloc.s 12 (System.Int32) IL_046F: add IL_0470: ldc.i4.s 25 IL_0472: ldloc.s 13 (System.Int32) IL_0474: add IL_0475: mul IL_0476: ldc.i4 2000 IL_047B: mul IL_047C: ldc.i4.s 100 IL_047E: ldloc.s 10 (System.Int32) IL_0480: add IL_0481: ldc.i4.s 100 IL_0483: ldloc.s 11 (System.Int32) IL_0485: add IL_0486: mul IL_0487: div IL_0488: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_048D: stloc.s 13 (System.Int32) IL_048F: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0494: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_0499: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_049E: ldarg.3 IL_049F: ldelem.ref IL_04A0: ldfld UnityEngine.Color ModeProperties::m_negativeColor IL_04A5: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_04AA: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_04AF: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_04B4: ldarg.3 IL_04B5: ldelem.ref IL_04B6: ldfld UnityEngine.Color ModeProperties::m_targetColor IL_04BB: ldloc.s 13 (System.Int32) IL_04BD: conv.r4 IL_04BE: ldc.r4 0.01 IL_04C3: mul IL_04C4: call static UnityEngine.Color UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t) IL_04C9: br => Label69 IL_04CE: Label32 IL_04CE: Label33 IL_04CE: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_04D3: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_04D8: ldfld UnityEngine.Color InfoProperties::m_neutralColor IL_04DD: br => Label70 IL_04E2: Label11 IL_04E2: ldarg.2 IL_04E3: ldfld Flags Building::m_flags IL_04E8: ldc.i4 4194304 IL_04ED: and IL_04EE: brfalse => Label36 IL_04F3: ldarg.2 IL_04F4: ldfld System.Byte Building::m_levelUpProgress IL_04F9: ldc.i4 255 IL_04FE: bne.un => Label37 IL_0503: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0508: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_050D: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_0512: ldarg.3 IL_0513: ldelem.ref IL_0514: ldfld UnityEngine.Color ModeProperties::m_targetColor IL_0519: br => Label71 IL_051E: Label37 IL_051E: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0523: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_0528: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_052D: ldarg.3 IL_052E: ldelem.ref IL_052F: ldfld UnityEngine.Color ModeProperties::m_negativeColor IL_0534: br => Label72 IL_0539: Label36 IL_0539: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_053E: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_0543: ldfld UnityEngine.Color InfoProperties::m_neutralColor IL_0548: br => Label73 IL_054D: Label9 IL_054D: ldarg.2 IL_054E: ldfld Flags Building::m_flags IL_0553: ldc.i4 4227072 IL_0558: and IL_0559: ldc.i4 32768 IL_055E: bne.un => Label38 IL_0563: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0568: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_056D: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_0572: ldarg.3 IL_0573: ldelem.ref IL_0574: ldfld UnityEngine.Color ModeProperties::m_negativeColor IL_0579: br => Label74 IL_057E: Label38 IL_057E: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0583: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_0588: ldfld UnityEngine.Color InfoProperties::m_neutralColor IL_058D: br => Label75 IL_0592: Label13 IL_0592: ldarg.2 IL_0593: ldfld Flags Building::m_flags IL_0598: ldc.i4 4194304 IL_059D: and IL_059E: brfalse => Label39 IL_05A3: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_05A8: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_05AD: ldfld UnityEngine.Color InfoProperties::m_neutralColor IL_05B2: br => Label76 IL_05B7: Label39 IL_05B7: ldarg.2 IL_05B8: ldfld Flags Building::m_flags IL_05BD: ldc.i4 32768 IL_05C2: and IL_05C3: brfalse => Label40 IL_05C8: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_05CD: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_05D2: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_05D7: ldarg.3 IL_05D8: ldelem.ref IL_05D9: ldfld UnityEngine.Color ModeProperties::m_negativeColor IL_05DE: br => Label77 IL_05E3: Label40 IL_05E3: call static DisasterManager ColossalFramework.Singleton`1::get_instance() IL_05E8: ldarg.2 IL_05E9: ldfld UnityEngine.Vector3 Building::m_position IL_05EE: callvirt UnityEngine.Color DisasterManager::SampleDisasterHazardMap(UnityEngine.Vector3 pos) IL_05F3: br => Label78 IL_05F8: Label14 IL_05F8: ldarg.2 IL_05F9: ldfld System.UInt16 Building::m_eventIndex IL_05FE: stloc.s 18 (System.UInt16) IL_0600: ldc.i4.1 IL_0601: stloc.s 20 (System.Boolean) IL_0603: ldloc.s 18 (System.UInt16) IL_0605: brfalse => Label41 IL_060A: call static EventManager ColossalFramework.Singleton`1::get_instance() IL_060F: stloc.s 21 (EventManager) IL_0611: ldloc.s 21 (EventManager) IL_0613: ldfld FastList`1 EventManager::m_events IL_0618: ldfld EventData[] FastList`1::m_buffer IL_061D: ldloc.s 18 (System.UInt16) IL_061F: ldelema EventData IL_0624: call EventInfo EventData::get_Info() IL_0629: stloc.s 22 (EventInfo) IL_062B: ldloc.s 22 (EventInfo) IL_062D: ldfld EventAI EventInfo::m_eventAI IL_0632: ldloc.s 18 (System.UInt16) IL_0634: ldloc.s 21 (EventManager) IL_0636: ldfld FastList`1 EventManager::m_events IL_063B: ldfld EventData[] FastList`1::m_buffer IL_0640: ldloc.s 18 (System.UInt16) IL_0642: ldelema EventData IL_0647: callvirt virtual UnityEngine.Color32 EventAI::GetBuildingColor(System.UInt16 eventID, EventData& data) IL_064C: stloc.s 23 (UnityEngine.Color32) IL_064E: ldloca.s 23 (UnityEngine.Color32) IL_0650: ldfld System.Byte UnityEngine.Color32::a IL_0655: ldc.i4 255 IL_065A: bne.un => Label42 IL_065F: ldloc.s 23 (UnityEngine.Color32) IL_0661: call static UnityEngine.Color UnityEngine.Color32::op_Implicit(UnityEngine.Color32 c) IL_0666: stloc.s 19 (UnityEngine.Color) IL_0668: br => Label43 IL_066D: Label42 IL_066D: ldarg.0 IL_066E: ldarg.1 IL_066F: ldarg.2 IL_0670: ldarg.3 IL_0671: call virtual UnityEngine.Color BuildingAI::GetColor(System.UInt16 buildingID, Building& data, InfoMode infoMode) IL_0676: stloc.s 19 (UnityEngine.Color) IL_0678: Label43 IL_0678: ldloc.s 22 (EventInfo) IL_067A: ldfld EventAI EventInfo::m_eventAI IL_067F: ldloc.s 18 (System.UInt16) IL_0681: ldloc.s 21 (EventManager) IL_0683: ldfld FastList`1 EventManager::m_events IL_0688: ldfld EventData[] FastList`1::m_buffer IL_068D: ldloc.s 18 (System.UInt16) IL_068F: ldelema EventData IL_0694: callvirt virtual System.Boolean EventAI::IsBuildingActive(System.UInt16 eventID, EventData& data) IL_0699: stloc.s 20 (System.Boolean) IL_069B: br => Label44 IL_06A0: Label41 IL_06A0: ldarg.0 IL_06A1: ldarg.1 IL_06A2: ldarg.2 IL_06A3: ldarg.3 IL_06A4: call virtual UnityEngine.Color BuildingAI::GetColor(System.UInt16 buildingID, Building& data, InfoMode infoMode) IL_06A9: stloc.s 19 (UnityEngine.Color) IL_06AB: Label44 IL_06AB: ldarg.0 IL_06AC: ldarg.1 IL_06AD: ldarg.2 IL_06AE: callvirt virtual System.Boolean CommonBuildingAI::ShowConsumption(System.UInt16 buildingID, Building& data) IL_06B3: brfalse => Label45 IL_06B8: ldarg.2 IL_06B9: ldfld System.Byte Building::m_fireIntensity IL_06BE: brtrue => Label46 IL_06C3: ldloc.s 20 (System.Boolean) IL_06C5: brfalse => Label47 IL_06CA: call static ElectricityManager ColossalFramework.Singleton`1::get_instance() IL_06CF: ldarg.2 IL_06D0: ldfld UnityEngine.Vector3 Building::m_position IL_06D5: ldloca.s 24 (System.Boolean) IL_06D7: callvirt System.Void ElectricityManager::CheckElectricity(UnityEngine.Vector3 pos, System.Boolean& electricity) IL_06DC: ldloca.s 19 (UnityEngine.Color) IL_06DE: ldloc.s 24 (System.Boolean) IL_06E0: brtrue => Label48 IL_06E5: ldarg.0 IL_06E6: callvirt virtual System.Single BuildingAI::ElectricityGridRadius() IL_06EB: ldc.r4 0 IL_06F0: bne.un => Label49 IL_06F5: Label48 IL_06F5: ldc.r4 1 IL_06FA: br => Label50 IL_06FF: Label49 IL_06FF: ldc.r4 0 IL_0704: Label50 IL_0704: stfld System.Single UnityEngine.Color::a IL_0709: br => Label51 IL_070E: Label45 IL_070E: Label46 IL_070E: Label47 IL_070E: ldloca.s 19 (UnityEngine.Color) IL_0710: ldc.r4 0 IL_0715: stfld System.Single UnityEngine.Color::a IL_071A: Label51 IL_071A: ldloc.s 19 (UnityEngine.Color) IL_071C: br => Label79 IL_0721: Label18 IL_0721: Label20 IL_0721: ldarg.0 IL_0722: ldarg.1 IL_0723: ldarg.2 IL_0724: ldarg.3 IL_0725: call virtual UnityEngine.Color BuildingAI::GetColor(System.UInt16 buildingID, Building& data, InfoMode infoMode) IL_072A: // end original IL_072A: Label52 IL_072A: Label53 IL_072A: Label54 IL_072A: Label55 IL_072A: Label56 IL_072A: Label57 IL_072A: Label58 IL_072A: Label59 IL_072A: Label60 IL_072A: Label61 IL_072A: Label62 IL_072A: Label63 IL_072A: Label64 IL_072A: Label65 IL_072A: Label66 IL_072A: Label67 IL_072A: Label68 IL_072A: Label69 IL_072A: Label70 IL_072A: Label71 IL_072A: Label72 IL_072A: Label73 IL_072A: Label74 IL_072A: Label75 IL_072A: Label76 IL_072A: Label77 IL_072A: Label78 IL_072A: Label79 IL_072A: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: virtual System.Void BuildingAI::CalculateUnspawnPosition(System.UInt16 buildingID, Building& data, ColossalFramework.Math.Randomizer& randomizer, CitizenInfo info, System.UInt16 ignoreInstance, UnityEngine.Vector3& position, UnityEngine.Vector3& target, UnityEngine.Vector2& direction, Flags& specialFlags) ### Replacement: static System.Void BuildingAI::BuildingAI.CalculateUnspawnPosition_Patch0(BuildingAI this, System.UInt16 buildingID, Building& data, ColossalFramework.Math.Randomizer& randomizer, CitizenInfo info, System.UInt16 ignoreInstance, UnityEngine.Vector3& position, UnityEngine.Vector3& target, UnityEngine.Vector2& direction, Flags& specialFlags) IL_0000: Local var 0: System.Single IL_0000: Local var 1: System.Boolean IL_0000: Local var 2: System.Boolean IL_0000: Local var 3: System.Int32 IL_0000: Local var 4: BuildingInfo/Prop IL_0000: Local var 5: System.Boolean IL_0000: Local var 6: ColossalFramework.Math.Randomizer IL_0000: Local var 7: UnityEngine.Vector3 IL_0000: Local var 8: System.Int32 IL_0000: Local var 9: PropInfo/SpecialPlace IL_0000: Local var 10: System.Single IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Single IL_0000: Local var 13: System.Int32 IL_0000: Local var 14: BuildingInfo/Prop IL_0000: Local var 15: ColossalFramework.Math.Randomizer IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: System.Single IL_0000: Local var 18: System.Single IL_0000: Local var 19: EventManager IL_0000: Local var 20: EventInfo IL_0000: Local var 21: UnityEngine.Vector3 IL_0000: // start original IL_0000: ldarg.s 4 IL_0002: ldfld CitizenAI CitizenInfo::m_citizenAI IL_0007: callvirt virtual System.Boolean CitizenAI::IsAnimal() IL_000C: brfalse => Label0 IL_0011: ldarg.0 IL_0012: ldarg.1 IL_0013: ldarg.2 IL_0014: ldarg.3 IL_0015: ldarg.s 4 IL_0017: ldarg.s 6 IL_0019: ldarg.s 7 IL_001B: ldarg.s 8 IL_001D: ldarg.s 9 IL_001F: call System.Boolean BuildingAI::CalculateAnimalPosition(System.UInt16 buildingID, Building& data, ColossalFramework.Math.Randomizer& randomizer, CitizenInfo info, UnityEngine.Vector3& position, UnityEngine.Vector3& target, UnityEngine.Vector2& direction, Flags& specialFlags) IL_0024: brfalse => Label1 IL_0029: br => Label35 IL_002E: Label0 IL_002E: Label1 IL_002E: ldarg.0 IL_002F: ldfld BuildingInfo BuildingAI::m_info IL_0034: ldarg.2 IL_0035: call System.Int32 Building::get_Length() IL_003A: call static System.Single Building::CalculateLocalMeshOffset(BuildingInfo info, System.Int32 length) IL_003F: stloc.0 IL_0040: ldarg.0 IL_0041: ldfld BuildingInfo BuildingAI::m_info IL_0046: ldfld Prop[] BuildingInfo::m_specialPlaces IL_004B: brfalse => Label2 IL_0050: ldarg.0 IL_0051: ldfld BuildingInfo BuildingAI::m_info IL_0056: ldfld Prop[] BuildingInfo::m_specialPlaces IL_005B: ldlen IL_005C: conv.i4 IL_005D: ldc.i4.0 IL_005E: ceq IL_0060: ldc.i4.0 IL_0061: ceq IL_0063: br => Label3 IL_0068: Label2 IL_0068: ldc.i4.0 IL_0069: Label3 IL_0069: stloc.1 IL_006A: ldarg.0 IL_006B: ldfld BuildingInfo BuildingAI::m_info IL_0070: ldfld Prop[] BuildingInfo::m_enterDoors IL_0075: brfalse => Label4 IL_007A: ldarg.0 IL_007B: ldfld BuildingInfo BuildingAI::m_info IL_0080: ldfld Prop[] BuildingInfo::m_enterDoors IL_0085: ldlen IL_0086: conv.i4 IL_0087: ldc.i4.0 IL_0088: ceq IL_008A: ldc.i4.0 IL_008B: ceq IL_008D: br => Label5 IL_0092: Label4 IL_0092: ldc.i4.0 IL_0093: Label5 IL_0093: stloc.2 IL_0094: ldloc.1 IL_0095: brfalse => Label6 IL_009A: ldloc.2 IL_009B: brfalse => Label7 IL_00A0: ldarg.3 IL_00A1: ldc.i4.4 IL_00A2: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_00A7: brtrue => Label8 IL_00AC: Label7 IL_00AC: ldarg.3 IL_00AD: ldarg.0 IL_00AE: ldfld BuildingInfo BuildingAI::m_info IL_00B3: ldfld Prop[] BuildingInfo::m_specialPlaces IL_00B8: ldlen IL_00B9: conv.i4 IL_00BA: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_00BF: stloc.3 IL_00C0: ldarg.0 IL_00C1: ldfld BuildingInfo BuildingAI::m_info IL_00C6: ldfld Prop[] BuildingInfo::m_specialPlaces IL_00CB: ldloc.3 IL_00CC: ldelem.ref IL_00CD: stloc.s 4 (BuildingInfo+Prop) IL_00CF: ldloc.s 4 (BuildingInfo+Prop) IL_00D1: ldfld PropInfo Prop::m_finalProp IL_00D6: ldfld SpecialPlace[] PropInfo::m_specialPlaces IL_00DB: brfalse => Label9 IL_00E0: ldloc.s 4 (BuildingInfo+Prop) IL_00E2: ldfld PropInfo Prop::m_finalProp IL_00E7: ldfld SpecialPlace[] PropInfo::m_specialPlaces IL_00EC: ldlen IL_00ED: conv.i4 IL_00EE: ldc.i4.0 IL_00EF: ceq IL_00F1: ldc.i4.0 IL_00F2: ceq IL_00F4: br => Label10 IL_00F9: Label9 IL_00F9: ldc.i4.0 IL_00FA: Label10 IL_00FA: stloc.s 5 (System.Boolean) IL_00FC: ldloc.s 5 (System.Boolean) IL_00FE: brfalse => Label11 IL_0103: ldloca.s 6 (ColossalFramework.Math.Randomizer) IL_0105: ldarg.1 IL_0106: ldc.i4.6 IL_0107: shl IL_0108: ldloc.s 4 (BuildingInfo+Prop) IL_010A: ldfld System.Int32 Prop::m_index IL_010F: or IL_0110: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0115: ldloca.s 6 (ColossalFramework.Math.Randomizer) IL_0117: ldc.i4.s 100 IL_0119: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_011E: ldloc.s 4 (BuildingInfo+Prop) IL_0120: ldfld System.Int32 Prop::m_probability IL_0125: bge => Label12 IL_012A: ldarg.2 IL_012B: call System.Int32 Building::get_Length() IL_0130: ldloc.s 4 (BuildingInfo+Prop) IL_0132: ldfld System.Int32 Prop::m_requiredLength IL_0137: blt => Label13 IL_013C: ldloc.s 4 (BuildingInfo+Prop) IL_013E: ldfld UnityEngine.Vector3 Prop::m_position IL_0143: stloc.s 7 (UnityEngine.Vector3) IL_0145: ldloca.s 7 (UnityEngine.Vector3) IL_0147: ldloc.0 IL_0148: ldloca.s 7 (UnityEngine.Vector3) IL_014A: ldfld System.Single UnityEngine.Vector3::z IL_014F: sub IL_0150: stfld System.Single UnityEngine.Vector3::z IL_0155: ldarg.s 6 IL_0157: ldarg.2 IL_0158: ldloc.s 7 (UnityEngine.Vector3) IL_015A: call UnityEngine.Vector3 Building::CalculatePosition(UnityEngine.Vector3 offset) IL_015F: stobj UnityEngine.Vector3 IL_0164: ldarg.3 IL_0165: ldloc.s 4 (BuildingInfo+Prop) IL_0167: ldfld PropInfo Prop::m_finalProp IL_016C: ldfld SpecialPlace[] PropInfo::m_specialPlaces IL_0171: ldlen IL_0172: conv.i4 IL_0173: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0178: stloc.s 8 (System.Int32) IL_017A: ldloc.s 4 (BuildingInfo+Prop) IL_017C: ldfld PropInfo Prop::m_finalProp IL_0181: ldfld SpecialPlace[] PropInfo::m_specialPlaces IL_0186: ldloc.s 8 (System.Int32) IL_0188: ldelema PropInfo+SpecialPlace IL_018D: ldobj PropInfo+SpecialPlace IL_0192: stloc.s 9 (PropInfo+SpecialPlace) IL_0194: ldarg.2 IL_0195: ldfld System.Single Building::m_angle IL_019A: ldloc.s 4 (BuildingInfo+Prop) IL_019C: ldfld System.Single Prop::m_radAngle IL_01A1: add IL_01A2: stloc.s 10 (System.Single) IL_01A4: ldloc.s 10 (System.Single) IL_01A6: call static System.Single UnityEngine.Mathf::Cos(System.Single f) IL_01AB: stloc.s 11 (System.Single) IL_01AD: ldloc.s 10 (System.Single) IL_01AF: call static System.Single UnityEngine.Mathf::Sin(System.Single f) IL_01B4: stloc.s 12 (System.Single) IL_01B6: ldloc.s 4 (BuildingInfo+Prop) IL_01B8: ldfld System.Boolean Prop::m_fixedHeight IL_01BD: brtrue => Label14 IL_01C2: ldarg.s 6 IL_01C4: call static TerrainManager ColossalFramework.Singleton`1::get_instance() IL_01C9: ldarg.s 6 IL_01CB: ldobj UnityEngine.Vector3 IL_01D0: callvirt System.Single TerrainManager::SampleDetailHeight(UnityEngine.Vector3 worldPos) IL_01D5: stfld System.Single UnityEngine.Vector3::y IL_01DA: br => Label15 IL_01DF: Label14 IL_01DF: ldarg.0 IL_01E0: ldfld BuildingInfo BuildingAI::m_info IL_01E5: ldfld System.Boolean BuildingInfoBase::m_requireHeightMap IL_01EA: brfalse => Label16 IL_01EF: ldarg.s 6 IL_01F1: call static TerrainManager ColossalFramework.Singleton`1::get_instance() IL_01F6: ldarg.s 6 IL_01F8: ldobj UnityEngine.Vector3 IL_01FD: callvirt System.Single TerrainManager::SampleDetailHeight(UnityEngine.Vector3 worldPos) IL_0202: ldloca.s 7 (UnityEngine.Vector3) IL_0204: ldfld System.Single UnityEngine.Vector3::y IL_0209: add IL_020A: stfld System.Single UnityEngine.Vector3::y IL_020F: Label15 IL_020F: Label16 IL_020F: ldarg.s 6 IL_0211: dup IL_0212: ldfld System.Single UnityEngine.Vector3::x IL_0217: ldloca.s 9 (PropInfo+SpecialPlace) IL_0219: ldflda UnityEngine.Vector3 SpecialPlace::m_position IL_021E: ldfld System.Single UnityEngine.Vector3::x IL_0223: ldloc.s 11 (System.Single) IL_0225: mul IL_0226: ldloca.s 9 (PropInfo+SpecialPlace) IL_0228: ldflda UnityEngine.Vector3 SpecialPlace::m_position IL_022D: ldfld System.Single UnityEngine.Vector3::z IL_0232: ldloc.s 12 (System.Single) IL_0234: mul IL_0235: add IL_0236: add IL_0237: stfld System.Single UnityEngine.Vector3::x IL_023C: ldarg.s 6 IL_023E: dup IL_023F: ldfld System.Single UnityEngine.Vector3::y IL_0244: ldloca.s 9 (PropInfo+SpecialPlace) IL_0246: ldflda UnityEngine.Vector3 SpecialPlace::m_position IL_024B: ldfld System.Single UnityEngine.Vector3::y IL_0250: add IL_0251: stfld System.Single UnityEngine.Vector3::y IL_0256: ldarg.s 6 IL_0258: dup IL_0259: ldfld System.Single UnityEngine.Vector3::z IL_025E: ldloca.s 9 (PropInfo+SpecialPlace) IL_0260: ldflda UnityEngine.Vector3 SpecialPlace::m_position IL_0265: ldfld System.Single UnityEngine.Vector3::x IL_026A: ldloc.s 12 (System.Single) IL_026C: mul IL_026D: ldloca.s 9 (PropInfo+SpecialPlace) IL_026F: ldflda UnityEngine.Vector3 SpecialPlace::m_position IL_0274: ldfld System.Single UnityEngine.Vector3::z IL_0279: ldloc.s 11 (System.Single) IL_027B: mul IL_027C: sub IL_027D: add IL_027E: stfld System.Single UnityEngine.Vector3::z IL_0283: ldarg.0 IL_0284: ldarg.s 6 IL_0286: ldobj UnityEngine.Vector3 IL_028B: ldarg.s 5 IL_028D: call System.Boolean BuildingAI::IsSomeBodyThere(UnityEngine.Vector3 position, System.UInt16 ignoreInstance) IL_0292: brtrue => Label17 IL_0297: ldarg.s 8 IL_0299: ldloca.s 9 (PropInfo+SpecialPlace) IL_029B: ldflda UnityEngine.Vector3 SpecialPlace::m_direction IL_02A0: ldfld System.Single UnityEngine.Vector3::x IL_02A5: ldloc.s 11 (System.Single) IL_02A7: mul IL_02A8: ldloca.s 9 (PropInfo+SpecialPlace) IL_02AA: ldflda UnityEngine.Vector3 SpecialPlace::m_direction IL_02AF: ldfld System.Single UnityEngine.Vector3::z IL_02B4: ldloc.s 12 (System.Single) IL_02B6: mul IL_02B7: add IL_02B8: stfld System.Single UnityEngine.Vector2::x IL_02BD: ldarg.s 8 IL_02BF: ldloca.s 9 (PropInfo+SpecialPlace) IL_02C1: ldflda UnityEngine.Vector3 SpecialPlace::m_direction IL_02C6: ldfld System.Single UnityEngine.Vector3::x IL_02CB: ldloc.s 12 (System.Single) IL_02CD: mul IL_02CE: ldloca.s 9 (PropInfo+SpecialPlace) IL_02D0: ldflda UnityEngine.Vector3 SpecialPlace::m_direction IL_02D5: ldfld System.Single UnityEngine.Vector3::z IL_02DA: ldloc.s 11 (System.Single) IL_02DC: mul IL_02DD: sub IL_02DE: stfld System.Single UnityEngine.Vector2::y IL_02E3: ldarg.s 9 IL_02E5: ldc.i4.s 64 IL_02E7: ldloca.s 9 (PropInfo+SpecialPlace) IL_02E9: ldfld Flags SpecialPlace::m_specialFlags IL_02EE: or IL_02EF: stind.i4 IL_02F0: ldarg.0 IL_02F1: ldfld BuildingInfo BuildingAI::m_info IL_02F6: ldfld System.Boolean BuildingInfo::m_hasPedestrianPaths IL_02FB: brfalse => Label18 IL_0300: ldarg.s 7 IL_0302: ldarg.s 6 IL_0304: ldobj UnityEngine.Vector3 IL_0309: stobj UnityEngine.Vector3 IL_030E: br => Label19 IL_0313: Label18 IL_0313: ldarg.s 7 IL_0315: ldarg.2 IL_0316: ldloca.s 7 (UnityEngine.Vector3) IL_0318: ldfld System.Single UnityEngine.Vector3::x IL_031D: ldc.r4 0 IL_0322: call UnityEngine.Vector3 Building::CalculateSidewalkPosition(System.Single xOffset, System.Single zOffset) IL_0327: stobj UnityEngine.Vector3 IL_032C: Label19 IL_032C: br => Label36 IL_0331: Label6 IL_0331: Label8 IL_0331: Label11 IL_0331: Label12 IL_0331: Label13 IL_0331: Label17 IL_0331: ldloc.2 IL_0332: brfalse => Label20 IL_0337: ldarg.3 IL_0338: ldarg.0 IL_0339: ldfld BuildingInfo BuildingAI::m_info IL_033E: ldfld Prop[] BuildingInfo::m_enterDoors IL_0343: ldlen IL_0344: conv.i4 IL_0345: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_034A: stloc.s 13 (System.Int32) IL_034C: ldarg.0 IL_034D: ldfld BuildingInfo BuildingAI::m_info IL_0352: ldfld Prop[] BuildingInfo::m_enterDoors IL_0357: ldloc.s 13 (System.Int32) IL_0359: ldelem.ref IL_035A: stloc.s 14 (BuildingInfo+Prop) IL_035C: ldloca.s 15 (ColossalFramework.Math.Randomizer) IL_035E: ldarg.1 IL_035F: ldc.i4.6 IL_0360: shl IL_0361: ldloc.s 14 (BuildingInfo+Prop) IL_0363: ldfld System.Int32 Prop::m_index IL_0368: or IL_0369: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_036E: ldloca.s 15 (ColossalFramework.Math.Randomizer) IL_0370: ldc.i4.s 100 IL_0372: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0377: ldloc.s 14 (BuildingInfo+Prop) IL_0379: ldfld System.Int32 Prop::m_probability IL_037E: bge => Label21 IL_0383: ldarg.2 IL_0384: call System.Int32 Building::get_Length() IL_0389: ldloc.s 14 (BuildingInfo+Prop) IL_038B: ldfld System.Int32 Prop::m_requiredLength IL_0390: blt => Label22 IL_0395: ldloc.s 14 (BuildingInfo+Prop) IL_0397: ldfld UnityEngine.Vector3 Prop::m_position IL_039C: stloc.s 16 (UnityEngine.Vector3) IL_039E: ldloca.s 16 (UnityEngine.Vector3) IL_03A0: ldloc.0 IL_03A1: ldloca.s 16 (UnityEngine.Vector3) IL_03A3: ldfld System.Single UnityEngine.Vector3::z IL_03A8: sub IL_03A9: stfld System.Single UnityEngine.Vector3::z IL_03AE: ldloc.s 14 (BuildingInfo+Prop) IL_03B0: ldfld PropInfo Prop::m_finalProp IL_03B5: ldfld PropInfoGen PropInfo::m_generatedInfo IL_03BA: ldflda UnityEngine.Vector3 PropInfoGen::m_size IL_03BF: ldfld System.Single UnityEngine.Vector3::x IL_03C4: ldc.r4 0.5 IL_03C9: mul IL_03CA: ldarg.s 4 IL_03CC: ldfld System.Single CitizenInfo::m_radius IL_03D1: sub IL_03D2: stloc.s 17 (System.Single) IL_03D4: ldloc.s 17 (System.Single) IL_03D6: ldc.r4 0.1 IL_03DB: blt.un => Label23 IL_03E0: ldloc.s 17 (System.Single) IL_03E2: ldarg.3 IL_03E3: ldc.i4 1000 IL_03E8: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_03ED: conv.r4 IL_03EE: ldc.r4 0.001 IL_03F3: mul IL_03F4: call static System.Single UnityEngine.Mathf::Sqrt(System.Single f) IL_03F9: mul IL_03FA: stloc.s 17 (System.Single) IL_03FC: ldarg.3 IL_03FD: ldc.i4 1000 IL_0402: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0407: conv.r4 IL_0408: ldc.r4 0.006283185 IL_040D: mul IL_040E: stloc.s 18 (System.Single) IL_0410: ldloca.s 16 (UnityEngine.Vector3) IL_0412: dup IL_0413: ldfld System.Single UnityEngine.Vector3::x IL_0418: ldloc.s 18 (System.Single) IL_041A: call static System.Single UnityEngine.Mathf::Cos(System.Single f) IL_041F: ldloc.s 17 (System.Single) IL_0421: mul IL_0422: add IL_0423: stfld System.Single UnityEngine.Vector3::x IL_0428: ldloca.s 16 (UnityEngine.Vector3) IL_042A: dup IL_042B: ldfld System.Single UnityEngine.Vector3::z IL_0430: ldloc.s 18 (System.Single) IL_0432: call static System.Single UnityEngine.Mathf::Sin(System.Single f) IL_0437: ldloc.s 17 (System.Single) IL_0439: mul IL_043A: add IL_043B: stfld System.Single UnityEngine.Vector3::z IL_0440: Label23 IL_0440: ldarg.s 6 IL_0442: ldarg.2 IL_0443: ldloc.s 16 (UnityEngine.Vector3) IL_0445: call UnityEngine.Vector3 Building::CalculatePosition(UnityEngine.Vector3 offset) IL_044A: stobj UnityEngine.Vector3 IL_044F: ldarg.s 8 IL_0451: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero() IL_0456: stobj UnityEngine.Vector2 IL_045B: ldloc.s 14 (BuildingInfo+Prop) IL_045D: ldfld PropInfo Prop::m_finalProp IL_0462: ldfld DoorType PropInfo::m_doorType IL_0467: ldc.i4.s 17 IL_0469: and IL_046A: ldc.i4.s 17 IL_046C: bne.un => Label24 IL_0471: ldarg.2 IL_0472: ldfld System.UInt16 Building::m_eventIndex IL_0477: brfalse => Label25 IL_047C: call static EventManager ColossalFramework.Singleton`1::get_instance() IL_0481: stloc.s 19 (EventManager) IL_0483: ldloc.s 19 (EventManager) IL_0485: ldfld FastList`1 EventManager::m_events IL_048A: ldfld EventData[] FastList`1::m_buffer IL_048F: ldarg.2 IL_0490: ldfld System.UInt16 Building::m_eventIndex IL_0495: ldelema EventData IL_049A: call EventInfo EventData::get_Info() IL_049F: stloc.s 20 (EventInfo) IL_04A1: ldarg.s 9 IL_04A3: ldloc.s 20 (EventInfo) IL_04A5: ldfld EventAI EventInfo::m_eventAI IL_04AA: ldarg.2 IL_04AB: ldfld System.UInt16 Building::m_eventIndex IL_04B0: ldloc.s 19 (EventManager) IL_04B2: ldfld FastList`1 EventManager::m_events IL_04B7: ldfld EventData[] FastList`1::m_buffer IL_04BC: ldarg.2 IL_04BD: ldfld System.UInt16 Building::m_eventIndex IL_04C2: ldelema EventData IL_04C7: ldarg.1 IL_04C8: ldarg.s 6 IL_04CA: ldarg.s 8 IL_04CC: callvirt virtual Flags EventAI::GetHangAroundFlags(System.UInt16 eventID, EventData& data, System.UInt16 buildingID, UnityEngine.Vector3& position, UnityEngine.Vector2& direction) IL_04D1: stind.i4 IL_04D2: br => Label26 IL_04D7: Label25 IL_04D7: ldarg.s 9 IL_04D9: ldc.i4.s 64 IL_04DB: stind.i4 IL_04DC: Label26 IL_04DC: br => Label27 IL_04E1: Label24 IL_04E1: ldarg.s 9 IL_04E3: ldc.i4.0 IL_04E4: stind.i4 IL_04E5: Label27 IL_04E5: ldloc.s 14 (BuildingInfo+Prop) IL_04E7: ldfld System.Boolean Prop::m_fixedHeight IL_04EC: brtrue => Label28 IL_04F1: ldarg.s 6 IL_04F3: call static TerrainManager ColossalFramework.Singleton`1::get_instance() IL_04F8: ldarg.s 6 IL_04FA: ldobj UnityEngine.Vector3 IL_04FF: callvirt System.Single TerrainManager::SampleDetailHeight(UnityEngine.Vector3 worldPos) IL_0504: stfld System.Single UnityEngine.Vector3::y IL_0509: br => Label29 IL_050E: Label28 IL_050E: ldarg.0 IL_050F: ldfld BuildingInfo BuildingAI::m_info IL_0514: ldfld System.Boolean BuildingInfoBase::m_requireHeightMap IL_0519: brfalse => Label30 IL_051E: ldarg.s 6 IL_0520: call static TerrainManager ColossalFramework.Singleton`1::get_instance() IL_0525: ldarg.s 6 IL_0527: ldobj UnityEngine.Vector3 IL_052C: callvirt System.Single TerrainManager::SampleDetailHeight(UnityEngine.Vector3 worldPos) IL_0531: ldloca.s 16 (UnityEngine.Vector3) IL_0533: ldfld System.Single UnityEngine.Vector3::y IL_0538: add IL_0539: stfld System.Single UnityEngine.Vector3::y IL_053E: Label29 IL_053E: Label30 IL_053E: ldarg.0 IL_053F: ldfld BuildingInfo BuildingAI::m_info IL_0544: ldfld System.Boolean BuildingInfo::m_hasPedestrianPaths IL_0549: brfalse => Label31 IL_054E: ldarg.s 7 IL_0550: ldarg.s 6 IL_0552: ldobj UnityEngine.Vector3 IL_0557: stobj UnityEngine.Vector3 IL_055C: br => Label32 IL_0561: Label31 IL_0561: ldarg.s 7 IL_0563: ldarg.2 IL_0564: ldloca.s 16 (UnityEngine.Vector3) IL_0566: ldfld System.Single UnityEngine.Vector3::x IL_056B: ldc.r4 0 IL_0570: call UnityEngine.Vector3 Building::CalculateSidewalkPosition(System.Single xOffset, System.Single zOffset) IL_0575: stobj UnityEngine.Vector3 IL_057A: Label32 IL_057A: br => Label37 IL_057F: Label20 IL_057F: Label21 IL_057F: Label22 IL_057F: ldloca.s 21 (UnityEngine.Vector3) IL_0581: ldc.r4 0 IL_0586: ldc.r4 0 IL_058B: ldloc.0 IL_058C: call System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0591: ldarg.s 6 IL_0593: ldarg.2 IL_0594: ldloc.s 21 (UnityEngine.Vector3) IL_0596: call UnityEngine.Vector3 Building::CalculatePosition(UnityEngine.Vector3 offset) IL_059B: stobj UnityEngine.Vector3 IL_05A0: ldarg.s 6 IL_05A2: call static TerrainManager ColossalFramework.Singleton`1::get_instance() IL_05A7: ldarg.s 6 IL_05A9: ldobj UnityEngine.Vector3 IL_05AE: callvirt System.Single TerrainManager::SampleDetailHeight(UnityEngine.Vector3 worldPos) IL_05B3: stfld System.Single UnityEngine.Vector3::y IL_05B8: ldarg.s 8 IL_05BA: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero() IL_05BF: stobj UnityEngine.Vector2 IL_05C4: ldarg.s 9 IL_05C6: ldc.i4.0 IL_05C7: stind.i4 IL_05C8: ldarg.0 IL_05C9: ldfld BuildingInfo BuildingAI::m_info IL_05CE: ldfld System.Boolean BuildingInfo::m_hasPedestrianPaths IL_05D3: brfalse => Label33 IL_05D8: ldarg.s 7 IL_05DA: ldarg.s 6 IL_05DC: ldobj UnityEngine.Vector3 IL_05E1: stobj UnityEngine.Vector3 IL_05E6: br => Label34 IL_05EB: Label33 IL_05EB: ldarg.s 7 IL_05ED: ldarg.2 IL_05EE: ldloca.s 21 (UnityEngine.Vector3) IL_05F0: ldfld System.Single UnityEngine.Vector3::x IL_05F5: ldc.r4 0 IL_05FA: call UnityEngine.Vector3 Building::CalculateSidewalkPosition(System.Single xOffset, System.Single zOffset) IL_05FF: stobj UnityEngine.Vector3 IL_0604: // end original IL_0604: Label34 IL_0604: Label35 IL_0604: Label36 IL_0604: Label37 IL_0604: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: virtual System.Void PlayerBuildingAI::ProduceGoods(System.UInt16 buildingID, Building& buildingData, Frame& frameData, System.Int32 productionRate, System.Int32 finalProductionRate, BehaviourData& behaviour, System.Int32 aliveWorkerCount, System.Int32 totalWorkerCount, System.Int32 workPlaceCount, System.Int32 aliveVisitorCount, System.Int32 totalVisitorCount, System.Int32 visitPlaceCount) ### Replacement: static System.Void PlayerBuildingAI::PlayerBuildingAI.ProduceGoods_Patch0(PlayerBuildingAI this, System.UInt16 buildingID, Building& buildingData, Frame& frameData, System.Int32 productionRate, System.Int32 finalProductionRate, BehaviourData& behaviour, System.Int32 aliveWorkerCount, System.Int32 totalWorkerCount, System.Int32 workPlaceCount, System.Int32 aliveVisitorCount, System.Int32 totalVisitorCount, System.Int32 visitPlaceCount) IL_0000: // start original IL_0000: ldarg.s 5 IL_0002: brfalse => Label0 IL_0007: ldarg.2 IL_0008: dup IL_0009: ldfld Flags Building::m_flags IL_000E: ldc.i4 131072 IL_0013: or IL_0014: stfld Flags Building::m_flags IL_0019: ldarg.0 IL_001A: ldfld EventType PlayerBuildingAI::m_supportEvents IL_001F: brtrue => Label1 IL_0024: ldarg.2 IL_0025: ldfld System.UInt16 Building::m_eventIndex IL_002A: brfalse => Label2 IL_002F: Label1 IL_002F: ldarg.0 IL_0030: ldarg.1 IL_0031: ldarg.2 IL_0032: call System.Void PlayerBuildingAI::CheckEvents(System.UInt16 buildingID, Building& buildingData) IL_0037: Label2 IL_0037: br => Label3 IL_003C: Label0 IL_003C: ldarg.2 IL_003D: dup IL_003E: ldfld Flags Building::m_flags IL_0043: ldc.i4 -131073 IL_0048: and IL_0049: stfld Flags Building::m_flags IL_004E: // end original IL_004E: Label3 IL_004E: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: System.Void FishingHarborAI::TrySpawnBoat(System.UInt16 buildingID, Building& buildingData) ### Replacement: static System.Void FishingHarborAI::FishingHarborAI.TrySpawnBoat_Patch0(FishingHarborAI this, System.UInt16 buildingID, Building& buildingData) IL_0000: Local var 0: VehicleManager IL_0000: Local var 1: UnityEngine.Vector3 IL_0000: Local var 2: VehicleInfo IL_0000: Local var 3: System.UInt16 IL_0000: // start original IL_0000: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldarg.2 IL_0007: ldarg.0 IL_0008: ldfld UnityEngine.Vector3 FishingHarborAI::m_boatSpawnPosition IL_000D: call UnityEngine.Vector3 Building::CalculatePosition(UnityEngine.Vector3 offset) IL_0012: stloc.1 IL_0013: ldloc.0 IL_0014: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0019: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_001E: ldarg.0 IL_001F: ldfld ItemClass FishingHarborAI::m_boatClass IL_0024: ldfld Service ItemClass::m_service IL_0029: ldarg.0 IL_002A: ldfld ItemClass FishingHarborAI::m_boatClass IL_002F: ldfld SubService ItemClass::m_subService IL_0034: ldarg.0 IL_0035: ldfld ItemClass FishingHarborAI::m_boatClass IL_003A: ldfld Level ItemClass::m_level IL_003F: ldc.i4.8 IL_0040: callvirt VehicleInfo VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service service, SubService subService, Level level, VehicleType type) IL_0045: stloc.2 IL_0046: ldloc.2 IL_0047: brfalse => Label0 IL_004C: ldloc.0 IL_004D: ldloca.s 3 (System.UInt16) IL_004F: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0054: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0059: ldloc.2 IL_005A: ldloc.1 IL_005B: ldc.i4 255 IL_0060: ldc.i4.0 IL_0061: ldc.i4.0 IL_0062: callvirt System.Boolean VehicleManager::CreateVehicle(System.UInt16& vehicle, ColossalFramework.Math.Randomizer& r, VehicleInfo info, UnityEngine.Vector3 position, TransferReason type, System.Boolean transferToSource, System.Boolean transferToTarget) IL_0067: brfalse => Label1 IL_006C: ldloc.2 IL_006D: ldfld VehicleAI VehicleInfo::m_vehicleAI IL_0072: ldloc.3 IL_0073: ldloc.0 IL_0074: ldfld Array16`1 VehicleManager::m_vehicles IL_0079: ldfld Vehicle[] Array16`1::m_buffer IL_007E: ldloc.3 IL_007F: ldelema Vehicle IL_0084: ldarg.1 IL_0085: callvirt virtual System.Void VehicleAI::SetSource(System.UInt16 vehicleID, Vehicle& data, System.UInt16 sourceBuilding) IL_008A: ldloc.2 IL_008B: ldfld VehicleAI VehicleInfo::m_vehicleAI IL_0090: ldloc.3 IL_0091: ldloc.0 IL_0092: ldfld Array16`1 VehicleManager::m_vehicles IL_0097: ldfld Vehicle[] Array16`1::m_buffer IL_009C: ldloc.3 IL_009D: ldelema Vehicle IL_00A2: ldarg.1 IL_00A3: callvirt virtual System.Void VehicleAI::SetTarget(System.UInt16 vehicleID, Vehicle& data, System.UInt16 targetBuilding) IL_00A8: // end original IL_00A8: Label0 IL_00A8: Label1 IL_00A8: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: System.Void ResidentAI::UpdateLocation(System.UInt32 citizenID, Citizen& data) ### Replacement: static System.Void ResidentAI::ResidentAI.UpdateLocation_Patch0(ResidentAI this, System.UInt32 citizenID, Citizen& data) IL_0000: Local var 0: Citizen/Location IL_0000: Local var 1: System.Int32 IL_0000: Local var 2: System.Int32 IL_0000: Local var 3: System.Int32 IL_0000: Local var 4: System.Int32 IL_0000: Local var 5: System.Int32 IL_0000: Local var 6: System.Int32 IL_0000: Local var 7: System.Int32 IL_0000: Local var 8: System.UInt32 IL_0000: Local var 9: TransferManager/TransferReason IL_0000: Local var 10: BuildingManager IL_0000: Local var 11: System.UInt16 IL_0000: Local var 12: System.Int32 IL_0000: Local var 13: System.Int32 IL_0000: Local var 14: System.Int32 IL_0000: Local var 15: System.Int32 IL_0000: Local var 16: System.Int32 IL_0000: Local var 17: System.Int32 IL_0000: Local var 18: System.Int32 IL_0000: Local var 19: BuildingManager IL_0000: Local var 20: BuildingInfo IL_0000: Local var 21: EldercareAI IL_0000: Local var 22: ChildcareAI IL_0000: Local var 23: ItemClass/Service IL_0000: Local var 24: BuildingManager IL_0000: Local var 25: ItemClass/Service IL_0000: Local var 26: BuildingInfo IL_0000: Local var 27: System.Int32 IL_0000: Local var 28: System.UInt16 IL_0000: Local var 29: System.Int32 IL_0000: Local var 30: BuildingInfo IL_0000: Local var 31: System.Int32 IL_0000: // start original IL_0000: ldarg.2 IL_0001: ldfld System.UInt16 Citizen::m_homeBuilding IL_0006: brtrue => Label0 IL_000B: ldarg.2 IL_000C: ldfld System.UInt16 Citizen::m_workBuilding IL_0011: brtrue => Label1 IL_0016: ldarg.2 IL_0017: ldfld System.UInt16 Citizen::m_visitBuilding IL_001C: brtrue => Label2 IL_0021: ldarg.2 IL_0022: ldfld System.UInt16 Citizen::m_instance IL_0027: brtrue => Label3 IL_002C: ldarg.2 IL_002D: ldfld System.UInt16 Citizen::m_vehicle IL_0032: brtrue => Label4 IL_0037: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_003C: ldarg.1 IL_003D: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_0042: br => Label152 IL_0047: Label0 IL_0047: Label1 IL_0047: Label2 IL_0047: Label3 IL_0047: Label4 IL_0047: ldarg.2 IL_0048: call Location Citizen::get_CurrentLocation() IL_004D: stloc.0 IL_004E: ldloc.0 IL_004F: switch => Labels5,6,7,8 IL_0064: br => Label9 IL_0069: Label5 IL_0069: ldarg.2 IL_006A: ldfld Flags Citizen::m_flags IL_006F: ldc.i4.s 32 IL_0071: and IL_0072: brfalse => Label10 IL_0077: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_007C: ldarg.1 IL_007D: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_0082: br => Label153 IL_0087: Label10 IL_0087: ldarg.2 IL_0088: call System.Boolean Citizen::get_Dead() IL_008D: brfalse => Label11 IL_0092: ldarg.2 IL_0093: ldfld System.UInt16 Citizen::m_homeBuilding IL_0098: brtrue => Label12 IL_009D: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_00A2: ldarg.1 IL_00A3: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_00A8: br => Label154 IL_00AD: Label12 IL_00AD: ldarg.2 IL_00AE: ldfld System.UInt16 Citizen::m_workBuilding IL_00B3: brfalse => Label13 IL_00B8: ldarg.2 IL_00B9: ldarg.1 IL_00BA: ldc.i4.0 IL_00BB: ldc.i4.0 IL_00BC: call System.Void Citizen::SetWorkplace(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_00C1: Label13 IL_00C1: ldarg.2 IL_00C2: ldfld System.UInt16 Citizen::m_visitBuilding IL_00C7: brfalse => Label14 IL_00CC: ldarg.2 IL_00CD: ldarg.1 IL_00CE: ldc.i4.0 IL_00CF: ldc.i4.0 IL_00D0: call System.Void Citizen::SetVisitplace(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_00D5: Label14 IL_00D5: ldarg.2 IL_00D6: ldfld System.UInt16 Citizen::m_vehicle IL_00DB: brtrue => Label15 IL_00E0: ldarg.0 IL_00E1: ldarg.1 IL_00E2: ldarg.2 IL_00E3: ldfld System.UInt16 Citizen::m_homeBuilding IL_00E8: ldc.i4.3 IL_00E9: call System.Boolean ResidentAI::FindHospital(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_00EE: brtrue => Label16 IL_00F3: br => Label155 IL_00F8: Label15 IL_00F8: Label16 IL_00F8: br => Label17 IL_00FD: Label11 IL_00FD: ldarg.2 IL_00FE: call System.Boolean Citizen::get_Arrested() IL_0103: brfalse => Label18 IL_0108: ldarg.2 IL_0109: ldc.i4.0 IL_010A: call System.Void Citizen::set_Arrested(System.Boolean value) IL_010F: br => Label19 IL_0114: Label18 IL_0114: ldarg.2 IL_0115: ldfld System.UInt16 Citizen::m_homeBuilding IL_011A: brfalse => Label20 IL_011F: ldarg.2 IL_0120: ldfld System.UInt16 Citizen::m_vehicle IL_0125: brtrue => Label21 IL_012A: ldarg.2 IL_012B: call System.Boolean Citizen::get_Sick() IL_0130: brfalse => Label22 IL_0135: ldarg.0 IL_0136: ldarg.1 IL_0137: ldarg.2 IL_0138: ldfld System.UInt16 Citizen::m_homeBuilding IL_013D: ldc.i4.2 IL_013E: call System.Boolean ResidentAI::FindHospital(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_0143: brtrue => Label23 IL_0148: br => Label156 IL_014D: Label23 IL_014D: br => Label24 IL_0152: Label22 IL_0152: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0157: ldfld Array16`1 BuildingManager::m_buildings IL_015C: ldfld Building[] Array16`1::m_buffer IL_0161: ldarg.2 IL_0162: ldfld System.UInt16 Citizen::m_homeBuilding IL_0167: ldelema Building IL_016C: ldfld Flags Building::m_flags IL_0171: ldc.i4 32768 IL_0176: and IL_0177: brfalse => Label25 IL_017C: ldarg.0 IL_017D: ldarg.1 IL_017E: ldarg.2 IL_017F: ldfld System.UInt16 Citizen::m_homeBuilding IL_0184: ldarg.0 IL_0185: ldarg.2 IL_0186: ldfld System.UInt16 Citizen::m_homeBuilding IL_018B: call TransferReason ResidentAI::GetEvacuationReason(System.UInt16 sourceBuilding) IL_0190: call System.Void HumanAI::FindEvacuationPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_0195: br => Label26 IL_019A: Label25 IL_019A: ldarg.2 IL_019B: ldfld Flags Citizen::m_flags IL_01A0: ldc.i4 16384 IL_01A5: and IL_01A6: brfalse => Label27 IL_01AB: ldarg.0 IL_01AC: ldarg.1 IL_01AD: ldarg.2 IL_01AE: ldfld System.UInt16 Citizen::m_homeBuilding IL_01B3: ldarg.0 IL_01B4: call TransferReason ResidentAI::GetShoppingReason() IL_01B9: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_01BE: br => Label28 IL_01C3: Label27 IL_01C3: ldarg.2 IL_01C4: ldfld System.UInt16 Citizen::m_instance IL_01C9: brtrue => Label29 IL_01CE: ldarg.0 IL_01CF: call System.Boolean ResidentAI::DoRandomMove() IL_01D4: brfalse => Label30 IL_01D9: Label29 IL_01D9: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_01DE: ldfld System.UInt32 SimulationManager::m_dayTimeFrame IL_01E3: stloc.1 IL_01E4: ldsfld System.UInt32 SimulationManager::DAYTIME_FRAMES IL_01E9: stloc.2 IL_01EA: ldloc.2 IL_01EB: ldc.i4.s 40 IL_01ED: div IL_01EE: stloc.3 IL_01EF: ldsfld System.UInt32 SimulationManager::DAYTIME_FRAMES IL_01F4: ldc.i4.8 IL_01F5: mul IL_01F6: ldc.i4.s 24 IL_01F8: div IL_01F9: stloc.s 4 (System.Int32) IL_01FB: ldloc.1 IL_01FC: ldloc.s 4 (System.Int32) IL_01FE: sub IL_01FF: ldloc.2 IL_0200: ldc.i4.1 IL_0201: sub IL_0202: and IL_0203: stloc.s 5 (System.Int32) IL_0205: ldloc.s 5 (System.Int32) IL_0207: ldloc.2 IL_0208: ldc.i4.1 IL_0209: shr IL_020A: sub IL_020B: call static System.Int32 UnityEngine.Mathf::Abs(System.Int32 value) IL_0210: stloc.s 6 (System.Int32) IL_0212: ldloc.s 6 (System.Int32) IL_0214: ldloc.s 6 (System.Int32) IL_0216: mul IL_0217: ldloc.2 IL_0218: ldc.i4.1 IL_0219: shr IL_021A: div IL_021B: stloc.s 6 (System.Int32) IL_021D: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0222: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0227: ldloc.2 IL_0228: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_022D: stloc.s 7 (System.Int32) IL_022F: ldloc.s 7 (System.Int32) IL_0231: ldloc.3 IL_0232: bge => Label31 IL_0237: ldarg.2 IL_0238: ldarg.1 IL_0239: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_023E: ldfld Array16`1 BuildingManager::m_buildings IL_0243: ldfld Building[] Array16`1::m_buffer IL_0248: ldarg.2 IL_0249: ldfld System.UInt16 Citizen::m_homeBuilding IL_024E: ldelema Building IL_0253: ldfld System.UInt32 Building::m_citizenUnits IL_0258: ldc.i4.s 16 IL_025A: call System.UInt32 Citizen::GetContainingUnit(System.UInt32 citizenID, System.UInt32 units, Flags flag) IL_025F: stloc.s 8 (System.UInt32) IL_0261: ldarg.0 IL_0262: call TransferReason ResidentAI::GetEntertainmentReason() IL_0267: stloc.s 9 (TransferManager+TransferReason) IL_0269: ldarg.2 IL_026A: call System.Int32 Citizen::get_Age() IL_026F: call static AgeGroup Citizen::GetAgeGroup(System.Int32 age) IL_0274: ldc.i4.4 IL_0275: bne.un => Label32 IL_027A: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_027F: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0284: ldc.i4.2 IL_0285: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_028A: brtrue => Label33 IL_028F: ldc.i4.s 110 IL_0291: stloc.s 9 (TransferManager+TransferReason) IL_0293: Label33 IL_0293: br => Label34 IL_0298: Label32 IL_0298: ldarg.0 IL_0299: ldloc.s 8 (System.UInt32) IL_029B: call System.Boolean ResidentAI::UnitHasChild(System.UInt32 unitID) IL_02A0: brfalse => Label35 IL_02A5: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_02AA: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_02AF: ldc.i4.5 IL_02B0: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_02B5: brtrue => Label36 IL_02BA: ldc.i4.s 111 IL_02BC: stloc.s 9 (TransferManager+TransferReason) IL_02BE: Label34 IL_02BE: Label35 IL_02BE: Label36 IL_02BE: ldarg.0 IL_02BF: ldarg.1 IL_02C0: ldarg.2 IL_02C1: ldfld System.UInt16 Citizen::m_homeBuilding IL_02C6: ldloc.s 9 (TransferManager+TransferReason) IL_02C8: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_02CD: br => Label37 IL_02D2: Label31 IL_02D2: ldloc.s 7 (System.Int32) IL_02D4: ldloc.3 IL_02D5: ldloc.s 6 (System.Int32) IL_02D7: add IL_02D8: bge => Label38 IL_02DD: ldarg.2 IL_02DE: ldfld System.UInt16 Citizen::m_workBuilding IL_02E3: brfalse => Label39 IL_02E8: ldarg.2 IL_02E9: dup IL_02EA: ldfld Flags Citizen::m_flags IL_02EF: ldc.i4 -513 IL_02F4: and IL_02F5: stfld Flags Citizen::m_flags IL_02FA: ldarg.0 IL_02FB: ldarg.1 IL_02FC: ldarg.2 IL_02FD: ldarg.2 IL_02FE: ldfld System.UInt16 Citizen::m_homeBuilding IL_0303: ldarg.2 IL_0304: ldfld System.UInt16 Citizen::m_workBuilding IL_0309: call System.Boolean HumanAI::StartMoving(System.UInt32 citizenID, Citizen& data, System.UInt16 sourceBuilding, System.UInt16 targetBuilding) IL_030E: pop IL_030F: Label17 IL_030F: Label19 IL_030F: Label20 IL_030F: Label21 IL_030F: Label24 IL_030F: Label26 IL_030F: Label28 IL_030F: Label30 IL_030F: Label37 IL_030F: Label38 IL_030F: Label39 IL_030F: br => Label40 IL_0314: Label6 IL_0314: ldarg.2 IL_0315: call System.Boolean Citizen::get_Dead() IL_031A: brfalse => Label41 IL_031F: ldarg.2 IL_0320: ldfld System.UInt16 Citizen::m_workBuilding IL_0325: brtrue => Label42 IL_032A: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_032F: ldarg.1 IL_0330: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_0335: br => Label157 IL_033A: Label42 IL_033A: ldarg.2 IL_033B: ldfld System.UInt16 Citizen::m_homeBuilding IL_0340: brfalse => Label43 IL_0345: ldarg.2 IL_0346: ldarg.1 IL_0347: ldc.i4.0 IL_0348: ldc.i4.0 IL_0349: call System.Void Citizen::SetHome(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_034E: Label43 IL_034E: ldarg.2 IL_034F: ldfld System.UInt16 Citizen::m_visitBuilding IL_0354: brfalse => Label44 IL_0359: ldarg.2 IL_035A: ldarg.1 IL_035B: ldc.i4.0 IL_035C: ldc.i4.0 IL_035D: call System.Void Citizen::SetVisitplace(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_0362: Label44 IL_0362: ldarg.2 IL_0363: ldfld System.UInt16 Citizen::m_vehicle IL_0368: brtrue => Label45 IL_036D: ldarg.0 IL_036E: ldarg.1 IL_036F: ldarg.2 IL_0370: ldfld System.UInt16 Citizen::m_workBuilding IL_0375: ldc.i4.3 IL_0376: call System.Boolean ResidentAI::FindHospital(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_037B: brtrue => Label46 IL_0380: br => Label158 IL_0385: Label45 IL_0385: Label46 IL_0385: br => Label47 IL_038A: Label41 IL_038A: ldarg.2 IL_038B: call System.Boolean Citizen::get_Arrested() IL_0390: brfalse => Label48 IL_0395: ldarg.2 IL_0396: ldc.i4.0 IL_0397: call System.Void Citizen::set_Arrested(System.Boolean value) IL_039C: br => Label49 IL_03A1: Label48 IL_03A1: ldarg.2 IL_03A2: call System.Boolean Citizen::get_Sick() IL_03A7: brfalse => Label50 IL_03AC: ldarg.2 IL_03AD: ldfld System.UInt16 Citizen::m_workBuilding IL_03B2: brtrue => Label51 IL_03B7: ldarg.2 IL_03B8: ldc.i4.0 IL_03B9: call System.Void Citizen::set_CurrentLocation(Location value) IL_03BE: br => Label52 IL_03C3: Label51 IL_03C3: ldarg.2 IL_03C4: ldfld System.UInt16 Citizen::m_vehicle IL_03C9: brtrue => Label53 IL_03CE: ldarg.0 IL_03CF: ldarg.1 IL_03D0: ldarg.2 IL_03D1: ldfld System.UInt16 Citizen::m_workBuilding IL_03D6: ldc.i4.2 IL_03D7: call System.Boolean ResidentAI::FindHospital(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_03DC: brtrue => Label54 IL_03E1: br => Label159 IL_03E6: Label52 IL_03E6: Label53 IL_03E6: Label54 IL_03E6: br => Label55 IL_03EB: Label50 IL_03EB: ldarg.2 IL_03EC: ldfld System.UInt16 Citizen::m_workBuilding IL_03F1: brtrue => Label56 IL_03F6: ldarg.2 IL_03F7: ldc.i4.0 IL_03F8: call System.Void Citizen::set_CurrentLocation(Location value) IL_03FD: br => Label57 IL_0402: Label56 IL_0402: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0407: stloc.s 10 (BuildingManager) IL_0409: ldloc.s 10 (BuildingManager) IL_040B: ldfld Array16`1 BuildingManager::m_buildings IL_0410: ldfld Building[] Array16`1::m_buffer IL_0415: ldarg.2 IL_0416: ldfld System.UInt16 Citizen::m_workBuilding IL_041B: ldelema Building IL_0420: ldfld System.UInt16 Building::m_eventIndex IL_0425: stloc.s 11 (System.UInt16) IL_0427: ldloc.s 10 (BuildingManager) IL_0429: ldfld Array16`1 BuildingManager::m_buildings IL_042E: ldfld Building[] Array16`1::m_buffer IL_0433: ldarg.2 IL_0434: ldfld System.UInt16 Citizen::m_workBuilding IL_0439: ldelema Building IL_043E: ldfld Flags Building::m_flags IL_0443: ldc.i4 32768 IL_0448: and IL_0449: brfalse => Label58 IL_044E: ldarg.2 IL_044F: ldfld System.UInt16 Citizen::m_vehicle IL_0454: brtrue => Label59 IL_0459: ldarg.0 IL_045A: ldarg.1 IL_045B: ldarg.2 IL_045C: ldfld System.UInt16 Citizen::m_workBuilding IL_0461: ldarg.0 IL_0462: ldarg.2 IL_0463: ldfld System.UInt16 Citizen::m_workBuilding IL_0468: call TransferReason ResidentAI::GetEvacuationReason(System.UInt16 sourceBuilding) IL_046D: call System.Void HumanAI::FindEvacuationPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_0472: Label59 IL_0472: br => Label60 IL_0477: Label58 IL_0477: ldloc.s 11 (System.UInt16) IL_0479: brfalse => Label61 IL_047E: call static EventManager ColossalFramework.Singleton`1::get_instance() IL_0483: ldfld FastList`1 EventManager::m_events IL_0488: ldfld EventData[] FastList`1::m_buffer IL_048D: ldloc.s 11 (System.UInt16) IL_048F: ldelema EventData IL_0494: ldfld Flags EventData::m_flags IL_0499: ldc.i4 4144 IL_049E: and IL_049F: brfalse => Label62 IL_04A4: br => Label63 IL_04A9: Label61 IL_04A9: Label62 IL_04A9: ldarg.2 IL_04AA: ldfld Flags Citizen::m_flags IL_04AF: ldc.i4 16384 IL_04B4: and IL_04B5: brfalse => Label64 IL_04BA: ldarg.2 IL_04BB: ldfld System.UInt16 Citizen::m_vehicle IL_04C0: brtrue => Label65 IL_04C5: ldarg.0 IL_04C6: ldarg.1 IL_04C7: ldarg.2 IL_04C8: ldfld System.UInt16 Citizen::m_workBuilding IL_04CD: ldarg.0 IL_04CE: call TransferReason ResidentAI::GetShoppingReason() IL_04D3: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_04D8: Label65 IL_04D8: br => Label66 IL_04DD: Label64 IL_04DD: ldarg.2 IL_04DE: ldfld System.UInt16 Citizen::m_instance IL_04E3: brtrue => Label67 IL_04E8: ldarg.0 IL_04E9: call System.Boolean ResidentAI::DoRandomMove() IL_04EE: brfalse => Label68 IL_04F3: Label67 IL_04F3: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_04F8: ldfld System.UInt32 SimulationManager::m_dayTimeFrame IL_04FD: stloc.s 12 (System.Int32) IL_04FF: ldsfld System.UInt32 SimulationManager::DAYTIME_FRAMES IL_0504: stloc.s 13 (System.Int32) IL_0506: ldloc.s 13 (System.Int32) IL_0508: ldc.i4.s 40 IL_050A: div IL_050B: stloc.s 14 (System.Int32) IL_050D: ldsfld System.UInt32 SimulationManager::DAYTIME_FRAMES IL_0512: ldc.i4.s 16 IL_0514: mul IL_0515: ldc.i4.s 24 IL_0517: div IL_0518: stloc.s 15 (System.Int32) IL_051A: ldloc.s 12 (System.Int32) IL_051C: ldloc.s 15 (System.Int32) IL_051E: sub IL_051F: ldloc.s 13 (System.Int32) IL_0521: ldc.i4.1 IL_0522: sub IL_0523: and IL_0524: stloc.s 16 (System.Int32) IL_0526: ldloc.s 16 (System.Int32) IL_0528: ldloc.s 13 (System.Int32) IL_052A: ldc.i4.1 IL_052B: shr IL_052C: sub IL_052D: call static System.Int32 UnityEngine.Mathf::Abs(System.Int32 value) IL_0532: stloc.s 17 (System.Int32) IL_0534: ldloc.s 17 (System.Int32) IL_0536: ldloc.s 17 (System.Int32) IL_0538: mul IL_0539: ldloc.s 13 (System.Int32) IL_053B: ldc.i4.1 IL_053C: shr IL_053D: div IL_053E: stloc.s 17 (System.Int32) IL_0540: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0545: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_054A: ldloc.s 13 (System.Int32) IL_054C: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0551: stloc.s 18 (System.Int32) IL_0553: ldloc.s 18 (System.Int32) IL_0555: ldloc.s 14 (System.Int32) IL_0557: bge => Label69 IL_055C: ldarg.2 IL_055D: ldfld System.UInt16 Citizen::m_vehicle IL_0562: brtrue => Label70 IL_0567: ldarg.0 IL_0568: ldarg.1 IL_0569: ldarg.2 IL_056A: ldfld System.UInt16 Citizen::m_workBuilding IL_056F: ldarg.0 IL_0570: call TransferReason ResidentAI::GetEntertainmentReason() IL_0575: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_057A: Label70 IL_057A: br => Label71 IL_057F: Label69 IL_057F: ldloc.s 18 (System.Int32) IL_0581: ldloc.s 14 (System.Int32) IL_0583: ldloc.s 17 (System.Int32) IL_0585: add IL_0586: bge => Label72 IL_058B: ldarg.2 IL_058C: ldfld System.UInt16 Citizen::m_homeBuilding IL_0591: brfalse => Label73 IL_0596: ldarg.2 IL_0597: ldfld System.UInt16 Citizen::m_vehicle IL_059C: brtrue => Label74 IL_05A1: ldarg.2 IL_05A2: dup IL_05A3: ldfld Flags Citizen::m_flags IL_05A8: ldc.i4 -513 IL_05AD: and IL_05AE: stfld Flags Citizen::m_flags IL_05B3: ldarg.0 IL_05B4: ldarg.1 IL_05B5: ldarg.2 IL_05B6: ldarg.2 IL_05B7: ldfld System.UInt16 Citizen::m_workBuilding IL_05BC: ldarg.2 IL_05BD: ldfld System.UInt16 Citizen::m_homeBuilding IL_05C2: call System.Boolean HumanAI::StartMoving(System.UInt32 citizenID, Citizen& data, System.UInt16 sourceBuilding, System.UInt16 targetBuilding) IL_05C7: pop IL_05C8: Label47 IL_05C8: Label49 IL_05C8: Label55 IL_05C8: Label57 IL_05C8: Label60 IL_05C8: Label63 IL_05C8: Label66 IL_05C8: Label68 IL_05C8: Label71 IL_05C8: Label72 IL_05C8: Label73 IL_05C8: Label74 IL_05C8: br => Label75 IL_05CD: Label7 IL_05CD: ldarg.2 IL_05CE: call System.Boolean Citizen::get_Dead() IL_05D3: brfalse => Label76 IL_05D8: ldarg.2 IL_05D9: ldfld System.UInt16 Citizen::m_visitBuilding IL_05DE: brtrue => Label77 IL_05E3: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_05E8: ldarg.1 IL_05E9: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_05EE: br => Label160 IL_05F3: Label77 IL_05F3: ldarg.2 IL_05F4: ldfld System.UInt16 Citizen::m_homeBuilding IL_05F9: brfalse => Label78 IL_05FE: ldarg.2 IL_05FF: ldarg.1 IL_0600: ldc.i4.0 IL_0601: ldc.i4.0 IL_0602: call System.Void Citizen::SetHome(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_0607: Label78 IL_0607: ldarg.2 IL_0608: ldfld System.UInt16 Citizen::m_workBuilding IL_060D: brfalse => Label79 IL_0612: ldarg.2 IL_0613: ldarg.1 IL_0614: ldc.i4.0 IL_0615: ldc.i4.0 IL_0616: call System.Void Citizen::SetWorkplace(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_061B: Label79 IL_061B: ldarg.2 IL_061C: ldfld System.UInt16 Citizen::m_vehicle IL_0621: brtrue => Label80 IL_0626: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_062B: ldfld Array16`1 BuildingManager::m_buildings IL_0630: ldfld Building[] Array16`1::m_buffer IL_0635: ldarg.2 IL_0636: ldfld System.UInt16 Citizen::m_visitBuilding IL_063B: ldelema Building IL_0640: call BuildingInfo Building::get_Info() IL_0645: ldfld ItemClass BuildingInfo::m_class IL_064A: ldfld Service ItemClass::m_service IL_064F: ldc.i4.s 14 IL_0651: beq => Label81 IL_0656: ldarg.0 IL_0657: ldarg.1 IL_0658: ldarg.2 IL_0659: ldfld System.UInt16 Citizen::m_visitBuilding IL_065E: ldc.i4.3 IL_065F: call System.Boolean ResidentAI::FindHospital(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_0664: brtrue => Label82 IL_0669: br => Label161 IL_066E: Label80 IL_066E: Label81 IL_066E: Label82 IL_066E: br => Label83 IL_0673: Label76 IL_0673: ldarg.2 IL_0674: call System.Boolean Citizen::get_Arrested() IL_0679: brfalse => Label84 IL_067E: ldarg.2 IL_067F: ldfld System.UInt16 Citizen::m_visitBuilding IL_0684: brtrue => Label85 IL_0689: ldarg.2 IL_068A: ldc.i4.0 IL_068B: call System.Void Citizen::set_Arrested(System.Boolean value) IL_0690: Label85 IL_0690: br => Label86 IL_0695: Label84 IL_0695: ldarg.2 IL_0696: call System.Boolean Citizen::get_Collapsed() IL_069B: brfalse => Label87 IL_06A0: br => Label88 IL_06A5: Label87 IL_06A5: ldarg.2 IL_06A6: call System.Boolean Citizen::get_Sick() IL_06AB: brfalse => Label89 IL_06B0: ldarg.2 IL_06B1: ldfld System.UInt16 Citizen::m_visitBuilding IL_06B6: brtrue => Label90 IL_06BB: ldarg.2 IL_06BC: ldc.i4.0 IL_06BD: call System.Void Citizen::set_CurrentLocation(Location value) IL_06C2: br => Label91 IL_06C7: Label90 IL_06C7: ldarg.2 IL_06C8: ldfld System.UInt16 Citizen::m_vehicle IL_06CD: brtrue => Label92 IL_06D2: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_06D7: stloc.s 19 (BuildingManager) IL_06D9: ldloc.s 19 (BuildingManager) IL_06DB: ldfld Array16`1 BuildingManager::m_buildings IL_06E0: ldfld Building[] Array16`1::m_buffer IL_06E5: ldarg.2 IL_06E6: ldfld System.UInt16 Citizen::m_visitBuilding IL_06EB: ldelema Building IL_06F0: call BuildingInfo Building::get_Info() IL_06F5: stloc.s 20 (BuildingInfo) IL_06F7: ldloc.s 20 (BuildingInfo) IL_06F9: brfalse => Label93 IL_06FE: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0703: ldfld Array16`1 BuildingManager::m_buildings IL_0708: ldfld Building[] Array16`1::m_buffer IL_070D: ldarg.2 IL_070E: ldfld System.UInt16 Citizen::m_visitBuilding IL_0713: ldelema Building IL_0718: call BuildingInfo Building::get_Info() IL_071D: ldfld BuildingAI BuildingInfo::m_buildingAI IL_0722: isinst EldercareAI IL_0727: stloc.s 21 (EldercareAI) IL_0729: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_072E: ldfld Array16`1 BuildingManager::m_buildings IL_0733: ldfld Building[] Array16`1::m_buffer IL_0738: ldarg.2 IL_0739: ldfld System.UInt16 Citizen::m_visitBuilding IL_073E: ldelema Building IL_0743: call BuildingInfo Building::get_Info() IL_0748: ldfld BuildingAI BuildingInfo::m_buildingAI IL_074D: isinst ChildcareAI IL_0752: stloc.s 22 (ChildcareAI) IL_0754: ldloc.s 19 (BuildingManager) IL_0756: ldfld Array16`1 BuildingManager::m_buildings IL_075B: ldfld Building[] Array16`1::m_buffer IL_0760: ldarg.2 IL_0761: ldfld System.UInt16 Citizen::m_visitBuilding IL_0766: ldelema Building IL_076B: call BuildingInfo Building::get_Info() IL_0770: ldfld ItemClass BuildingInfo::m_class IL_0775: ldfld Service ItemClass::m_service IL_077A: stloc.s 23 (ItemClass+Service) IL_077C: ldloc.s 21 (EldercareAI) IL_077E: brfalse => Label94 IL_0783: ldarg.0 IL_0784: ldarg.1 IL_0785: call System.Boolean ResidentAI::IsSenior(System.UInt32 citizenID) IL_078A: brtrue => Label95 IL_078F: Label94 IL_078F: ldloc.s 22 (ChildcareAI) IL_0791: brfalse => Label96 IL_0796: ldarg.0 IL_0797: ldarg.1 IL_0798: call System.Boolean ResidentAI::IsChild(System.UInt32 citizenID) IL_079D: brfalse => Label97 IL_07A2: Label95 IL_07A2: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_07A7: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_07AC: ldc.i4.s 100 IL_07AE: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_07B3: ldarg.2 IL_07B4: ldfld System.Byte Citizen::m_health IL_07B9: bge => Label98 IL_07BE: ldarg.2 IL_07BF: ldc.i4.0 IL_07C0: call System.Void Citizen::set_Sick(System.Boolean value) IL_07C5: Label98 IL_07C5: br => Label99 IL_07CA: Label96 IL_07CA: Label97 IL_07CA: ldloc.s 23 (ItemClass+Service) IL_07CC: ldc.i4.s 14 IL_07CE: beq => Label100 IL_07D3: ldloc.s 23 (ItemClass+Service) IL_07D5: ldc.i4.s 20 IL_07D7: beq => Label101 IL_07DC: ldarg.0 IL_07DD: ldarg.1 IL_07DE: ldarg.2 IL_07DF: ldfld System.UInt16 Citizen::m_visitBuilding IL_07E4: ldc.i4.2 IL_07E5: call System.Boolean ResidentAI::FindHospital(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_07EA: brtrue => Label102 IL_07EF: br => Label162 IL_07F4: Label91 IL_07F4: Label92 IL_07F4: Label93 IL_07F4: Label99 IL_07F4: Label100 IL_07F4: Label101 IL_07F4: Label102 IL_07F4: br => Label103 IL_07F9: Label89 IL_07F9: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_07FE: stloc.s 24 (BuildingManager) IL_0800: ldc.i4.0 IL_0801: stloc.s 25 (ItemClass+Service) IL_0803: ldarg.2 IL_0804: ldfld System.UInt16 Citizen::m_visitBuilding IL_0809: brfalse => Label104 IL_080E: ldloc.s 24 (BuildingManager) IL_0810: ldfld Array16`1 BuildingManager::m_buildings IL_0815: ldfld Building[] Array16`1::m_buffer IL_081A: ldarg.2 IL_081B: ldfld System.UInt16 Citizen::m_visitBuilding IL_0820: ldelema Building IL_0825: call BuildingInfo Building::get_Info() IL_082A: ldfld ItemClass BuildingInfo::m_class IL_082F: ldfld Service ItemClass::m_service IL_0834: stloc.s 25 (ItemClass+Service) IL_0836: Label104 IL_0836: ldloc.s 25 (ItemClass+Service) IL_0838: ldc.i4.s 15 IL_083A: beq => Label105 IL_083F: ldloc.s 25 (ItemClass+Service) IL_0841: ldc.i4.s 14 IL_0843: bne.un => Label106 IL_0848: Label105 IL_0848: ldarg.2 IL_0849: ldfld System.UInt16 Citizen::m_homeBuilding IL_084E: brfalse => Label107 IL_0853: ldarg.2 IL_0854: ldfld System.UInt16 Citizen::m_vehicle IL_0859: brtrue => Label108 IL_085E: ldarg.2 IL_085F: dup IL_0860: ldfld Flags Citizen::m_flags IL_0865: ldc.i4 -513 IL_086A: and IL_086B: stfld Flags Citizen::m_flags IL_0870: ldarg.0 IL_0871: ldarg.1 IL_0872: ldarg.2 IL_0873: ldarg.2 IL_0874: ldfld System.UInt16 Citizen::m_visitBuilding IL_0879: ldarg.2 IL_087A: ldfld System.UInt16 Citizen::m_homeBuilding IL_087F: call System.Boolean HumanAI::StartMoving(System.UInt32 citizenID, Citizen& data, System.UInt16 sourceBuilding, System.UInt16 targetBuilding) IL_0884: pop IL_0885: ldarg.2 IL_0886: ldarg.1 IL_0887: ldc.i4.0 IL_0888: ldc.i4.0 IL_0889: call System.Void Citizen::SetVisitplace(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_088E: Label107 IL_088E: Label108 IL_088E: br => Label109 IL_0893: Label106 IL_0893: ldloc.s 25 (ItemClass+Service) IL_0895: ldc.i4.s 20 IL_0897: bne.un => Label110 IL_089C: ldloc.s 24 (BuildingManager) IL_089E: ldfld Array16`1 BuildingManager::m_buildings IL_08A3: ldfld Building[] Array16`1::m_buffer IL_08A8: ldarg.2 IL_08A9: ldfld System.UInt16 Citizen::m_visitBuilding IL_08AE: ldelema Building IL_08B3: ldfld Flags Building::m_flags IL_08B8: ldc.i4 2097152 IL_08BD: and IL_08BE: brfalse => Label111 IL_08C3: ldarg.2 IL_08C4: ldfld System.UInt16 Citizen::m_homeBuilding IL_08C9: brfalse => Label112 IL_08CE: ldarg.2 IL_08CF: ldfld System.UInt16 Citizen::m_vehicle IL_08D4: brtrue => Label113 IL_08D9: ldarg.2 IL_08DA: dup IL_08DB: ldfld Flags Citizen::m_flags IL_08E0: ldc.i4 -513 IL_08E5: and IL_08E6: stfld Flags Citizen::m_flags IL_08EB: ldarg.0 IL_08EC: ldarg.1 IL_08ED: ldarg.2 IL_08EE: ldarg.2 IL_08EF: ldfld System.UInt16 Citizen::m_visitBuilding IL_08F4: ldarg.2 IL_08F5: ldfld System.UInt16 Citizen::m_homeBuilding IL_08FA: call System.Boolean HumanAI::StartMoving(System.UInt32 citizenID, Citizen& data, System.UInt16 sourceBuilding, System.UInt16 targetBuilding) IL_08FF: pop IL_0900: ldarg.2 IL_0901: ldarg.1 IL_0902: ldc.i4.0 IL_0903: ldc.i4.0 IL_0904: call System.Void Citizen::SetVisitplace(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_0909: Label111 IL_0909: Label112 IL_0909: Label113 IL_0909: br => Label114 IL_090E: Label110 IL_090E: ldarg.2 IL_090F: ldfld System.UInt16 Citizen::m_visitBuilding IL_0914: brtrue => Label115 IL_0919: ldarg.2 IL_091A: ldc.i4.0 IL_091B: call System.Void Citizen::set_CurrentLocation(Location value) IL_0920: br => Label116 IL_0925: Label115 IL_0925: ldloc.s 24 (BuildingManager) IL_0927: ldfld Array16`1 BuildingManager::m_buildings IL_092C: ldfld Building[] Array16`1::m_buffer IL_0931: ldarg.2 IL_0932: ldfld System.UInt16 Citizen::m_visitBuilding IL_0937: ldelema Building IL_093C: ldfld Flags Building::m_flags IL_0941: ldc.i4 32768 IL_0946: and IL_0947: brfalse => Label117 IL_094C: ldarg.2 IL_094D: ldfld System.UInt16 Citizen::m_vehicle IL_0952: brtrue => Label118 IL_0957: ldarg.0 IL_0958: ldarg.1 IL_0959: ldarg.2 IL_095A: ldfld System.UInt16 Citizen::m_visitBuilding IL_095F: ldarg.0 IL_0960: ldarg.2 IL_0961: ldfld System.UInt16 Citizen::m_visitBuilding IL_0966: call TransferReason ResidentAI::GetEvacuationReason(System.UInt16 sourceBuilding) IL_096B: call System.Void HumanAI::FindEvacuationPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_0970: Label118 IL_0970: br => Label119 IL_0975: Label117 IL_0975: ldarg.2 IL_0976: ldfld Flags Citizen::m_flags IL_097B: ldc.i4 16384 IL_0980: and IL_0981: brfalse => Label120 IL_0986: ldloc.s 24 (BuildingManager) IL_0988: ldfld Array16`1 BuildingManager::m_buildings IL_098D: ldfld Building[] Array16`1::m_buffer IL_0992: ldarg.2 IL_0993: ldfld System.UInt16 Citizen::m_visitBuilding IL_0998: ldelema Building IL_099D: call BuildingInfo Building::get_Info() IL_09A2: stloc.s 26 (BuildingInfo) IL_09A4: ldc.i4.s -100 IL_09A6: stloc.s 27 (System.Int32) IL_09A8: ldloc.s 26 (BuildingInfo) IL_09AA: ldfld BuildingAI BuildingInfo::m_buildingAI IL_09AF: ldarg.2 IL_09B0: ldfld System.UInt16 Citizen::m_visitBuilding IL_09B5: ldloc.s 24 (BuildingManager) IL_09B7: ldfld Array16`1 BuildingManager::m_buildings IL_09BC: ldfld Building[] Array16`1::m_buffer IL_09C1: ldarg.2 IL_09C2: ldfld System.UInt16 Citizen::m_visitBuilding IL_09C7: ldelema Building IL_09CC: ldc.i4.s 30 IL_09CE: ldloca.s 27 (System.Int32) IL_09D0: callvirt virtual System.Void BuildingAI::ModifyMaterialBuffer(System.UInt16 buildingID, Building& data, TransferReason material, System.Int32& amountDelta) IL_09D5: br => Label121 IL_09DA: Label120 IL_09DA: ldloc.s 24 (BuildingManager) IL_09DC: ldfld Array16`1 BuildingManager::m_buildings IL_09E1: ldfld Building[] Array16`1::m_buffer IL_09E6: ldarg.2 IL_09E7: ldfld System.UInt16 Citizen::m_visitBuilding IL_09EC: ldelema Building IL_09F1: ldfld System.UInt16 Building::m_eventIndex IL_09F6: stloc.s 28 (System.UInt16) IL_09F8: ldloc.s 28 (System.UInt16) IL_09FA: brfalse => Label122 IL_09FF: call static EventManager ColossalFramework.Singleton`1::get_instance() IL_0A04: ldfld FastList`1 EventManager::m_events IL_0A09: ldfld EventData[] FastList`1::m_buffer IL_0A0E: ldloc.s 28 (System.UInt16) IL_0A10: ldelema EventData IL_0A15: ldfld Flags EventData::m_flags IL_0A1A: ldc.i4 4144 IL_0A1F: and IL_0A20: brtrue => Label123 IL_0A25: ldarg.2 IL_0A26: ldfld System.UInt16 Citizen::m_homeBuilding IL_0A2B: brfalse => Label124 IL_0A30: ldarg.2 IL_0A31: ldfld System.UInt16 Citizen::m_vehicle IL_0A36: brtrue => Label125 IL_0A3B: ldarg.2 IL_0A3C: dup IL_0A3D: ldfld Flags Citizen::m_flags IL_0A42: ldc.i4 -513 IL_0A47: and IL_0A48: stfld Flags Citizen::m_flags IL_0A4D: ldarg.0 IL_0A4E: ldarg.1 IL_0A4F: ldarg.2 IL_0A50: ldarg.2 IL_0A51: ldfld System.UInt16 Citizen::m_visitBuilding IL_0A56: ldarg.2 IL_0A57: ldfld System.UInt16 Citizen::m_homeBuilding IL_0A5C: call System.Boolean HumanAI::StartMoving(System.UInt32 citizenID, Citizen& data, System.UInt16 sourceBuilding, System.UInt16 targetBuilding) IL_0A61: pop IL_0A62: ldarg.2 IL_0A63: ldarg.1 IL_0A64: ldc.i4.0 IL_0A65: ldc.i4.0 IL_0A66: call System.Void Citizen::SetVisitplace(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_0A6B: Label123 IL_0A6B: Label124 IL_0A6B: Label125 IL_0A6B: br => Label126 IL_0A70: Label122 IL_0A70: ldarg.2 IL_0A71: ldfld System.UInt16 Citizen::m_instance IL_0A76: brtrue => Label127 IL_0A7B: ldarg.0 IL_0A7C: call System.Boolean ResidentAI::DoRandomMove() IL_0A81: brfalse => Label128 IL_0A86: Label127 IL_0A86: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0A8B: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0A90: ldc.i4.s 40 IL_0A92: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0A97: stloc.s 29 (System.Int32) IL_0A99: ldloc.s 24 (BuildingManager) IL_0A9B: ldfld Array16`1 BuildingManager::m_buildings IL_0AA0: ldfld Building[] Array16`1::m_buffer IL_0AA5: ldarg.2 IL_0AA6: ldfld System.UInt16 Citizen::m_visitBuilding IL_0AAB: ldelema Building IL_0AB0: call BuildingInfo Building::get_Info() IL_0AB5: stloc.s 30 (BuildingInfo) IL_0AB7: ldloc.s 30 (BuildingInfo) IL_0AB9: brfalse => Label129 IL_0ABE: ldarg.0 IL_0ABF: ldarg.1 IL_0AC0: call System.Boolean ResidentAI::IsSenior(System.UInt32 citizenID) IL_0AC5: brfalse => Label130 IL_0ACA: ldloc.s 30 (BuildingInfo) IL_0ACC: ldfld ItemClass BuildingInfo::m_class IL_0AD1: ldfld Service ItemClass::m_service IL_0AD6: ldc.i4.s 14 IL_0AD8: bne.un => Label131 IL_0ADD: ldloc.s 30 (BuildingInfo) IL_0ADF: ldfld ItemClass BuildingInfo::m_class IL_0AE4: ldfld Level ItemClass::m_level IL_0AE9: ldc.i4.2 IL_0AEA: bne.un => Label132 IL_0AEF: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0AF4: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0AF9: ldc.i4 400 IL_0AFE: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0B03: stloc.s 29 (System.Int32) IL_0B05: Label129 IL_0B05: Label130 IL_0B05: Label131 IL_0B05: Label132 IL_0B05: ldloc.s 29 (System.Int32) IL_0B07: ldc.i4.s 10 IL_0B09: bge => Label133 IL_0B0E: ldarg.2 IL_0B0F: ldfld System.UInt16 Citizen::m_homeBuilding IL_0B14: brfalse => Label134 IL_0B19: ldarg.2 IL_0B1A: ldfld System.UInt16 Citizen::m_vehicle IL_0B1F: brtrue => Label135 IL_0B24: ldarg.2 IL_0B25: dup IL_0B26: ldfld Flags Citizen::m_flags IL_0B2B: ldc.i4 -513 IL_0B30: and IL_0B31: stfld Flags Citizen::m_flags IL_0B36: ldarg.0 IL_0B37: ldarg.2 IL_0B38: ldloc.s 25 (ItemClass+Service) IL_0B3A: call System.Void ResidentAI::AttemptAutodidact(Citizen& data, Service currentService) IL_0B3F: ldarg.0 IL_0B40: ldarg.1 IL_0B41: ldarg.2 IL_0B42: ldarg.2 IL_0B43: ldfld System.UInt16 Citizen::m_visitBuilding IL_0B48: ldarg.2 IL_0B49: ldfld System.UInt16 Citizen::m_homeBuilding IL_0B4E: call System.Boolean HumanAI::StartMoving(System.UInt32 citizenID, Citizen& data, System.UInt16 sourceBuilding, System.UInt16 targetBuilding) IL_0B53: pop IL_0B54: ldarg.2 IL_0B55: ldarg.1 IL_0B56: ldc.i4.0 IL_0B57: ldc.i4.0 IL_0B58: call System.Void Citizen::SetVisitplace(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_0B5D: Label83 IL_0B5D: Label86 IL_0B5D: Label88 IL_0B5D: Label103 IL_0B5D: Label109 IL_0B5D: Label114 IL_0B5D: Label116 IL_0B5D: Label119 IL_0B5D: Label121 IL_0B5D: Label126 IL_0B5D: Label128 IL_0B5D: Label133 IL_0B5D: Label134 IL_0B5D: Label135 IL_0B5D: br => Label136 IL_0B62: Label8 IL_0B62: ldarg.2 IL_0B63: call System.Boolean Citizen::get_Dead() IL_0B68: brfalse => Label137 IL_0B6D: ldarg.2 IL_0B6E: ldfld System.UInt16 Citizen::m_vehicle IL_0B73: brtrue => Label138 IL_0B78: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0B7D: ldarg.1 IL_0B7E: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_0B83: br => Label163 IL_0B88: Label138 IL_0B88: ldarg.2 IL_0B89: ldfld System.UInt16 Citizen::m_homeBuilding IL_0B8E: brfalse => Label139 IL_0B93: ldarg.2 IL_0B94: ldarg.1 IL_0B95: ldc.i4.0 IL_0B96: ldc.i4.0 IL_0B97: call System.Void Citizen::SetHome(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_0B9C: Label139 IL_0B9C: ldarg.2 IL_0B9D: ldfld System.UInt16 Citizen::m_workBuilding IL_0BA2: brfalse => Label140 IL_0BA7: ldarg.2 IL_0BA8: ldarg.1 IL_0BA9: ldc.i4.0 IL_0BAA: ldc.i4.0 IL_0BAB: call System.Void Citizen::SetWorkplace(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_0BB0: Label140 IL_0BB0: ldarg.2 IL_0BB1: ldfld System.UInt16 Citizen::m_visitBuilding IL_0BB6: brfalse => Label141 IL_0BBB: ldarg.2 IL_0BBC: ldarg.1 IL_0BBD: ldc.i4.0 IL_0BBE: ldc.i4.0 IL_0BBF: call System.Void Citizen::SetVisitplace(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_0BC4: Label141 IL_0BC4: br => Label142 IL_0BC9: Label137 IL_0BC9: ldarg.2 IL_0BCA: ldfld System.UInt16 Citizen::m_vehicle IL_0BCF: brtrue => Label143 IL_0BD4: ldarg.2 IL_0BD5: ldfld System.UInt16 Citizen::m_instance IL_0BDA: brtrue => Label144 IL_0BDF: ldarg.2 IL_0BE0: ldfld System.UInt16 Citizen::m_visitBuilding IL_0BE5: brfalse => Label145 IL_0BEA: ldarg.2 IL_0BEB: ldarg.1 IL_0BEC: ldc.i4.0 IL_0BED: ldc.i4.0 IL_0BEE: call System.Void Citizen::SetVisitplace(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_0BF3: Label145 IL_0BF3: ldarg.2 IL_0BF4: ldc.i4.0 IL_0BF5: call System.Void Citizen::set_CurrentLocation(Location value) IL_0BFA: ldarg.2 IL_0BFB: ldc.i4.0 IL_0BFC: call System.Void Citizen::set_Arrested(System.Boolean value) IL_0C01: br => Label146 IL_0C06: Label143 IL_0C06: Label144 IL_0C06: ldarg.2 IL_0C07: ldfld System.UInt16 Citizen::m_instance IL_0C0C: brfalse => Label147 IL_0C11: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0C16: ldfld Array16`1 CitizenManager::m_instances IL_0C1B: ldfld CitizenInstance[] Array16`1::m_buffer IL_0C20: ldarg.2 IL_0C21: ldfld System.UInt16 Citizen::m_instance IL_0C26: ldelema CitizenInstance IL_0C2B: ldfld Flags CitizenInstance::m_flags IL_0C30: ldc.i4 402653184 IL_0C35: and IL_0C36: ldc.i4 402653184 IL_0C3B: bne.un => Label148 IL_0C40: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0C45: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0C4A: ldc.i4.s 40 IL_0C4C: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0C51: stloc.s 31 (System.Int32) IL_0C53: ldloc.s 31 (System.Int32) IL_0C55: ldc.i4.s 10 IL_0C57: bge => Label149 IL_0C5C: ldarg.2 IL_0C5D: ldfld System.UInt16 Citizen::m_homeBuilding IL_0C62: brfalse => Label150 IL_0C67: ldarg.2 IL_0C68: dup IL_0C69: ldfld Flags Citizen::m_flags IL_0C6E: ldc.i4 -513 IL_0C73: and IL_0C74: stfld Flags Citizen::m_flags IL_0C79: ldarg.0 IL_0C7A: ldarg.1 IL_0C7B: ldarg.2 IL_0C7C: ldc.i4.0 IL_0C7D: ldarg.2 IL_0C7E: ldfld System.UInt16 Citizen::m_homeBuilding IL_0C83: call System.Boolean HumanAI::StartMoving(System.UInt32 citizenID, Citizen& data, System.UInt16 sourceBuilding, System.UInt16 targetBuilding) IL_0C88: pop IL_0C89: Label142 IL_0C89: Label146 IL_0C89: Label147 IL_0C89: Label148 IL_0C89: Label149 IL_0C89: Label150 IL_0C89: br => Label151 IL_0C8E: Label9 IL_0C8E: Label40 IL_0C8E: Label75 IL_0C8E: Label136 IL_0C8E: Label151 IL_0C8E: ldarg.2 IL_0C8F: dup IL_0C90: ldfld Flags Citizen::m_flags IL_0C95: ldc.i4 -16385 IL_0C9A: and IL_0C9B: stfld Flags Citizen::m_flags IL_0CA0: // end original IL_0CA0: Label152 IL_0CA0: Label153 IL_0CA0: Label154 IL_0CA0: Label155 IL_0CA0: Label156 IL_0CA0: Label157 IL_0CA0: Label158 IL_0CA0: Label159 IL_0CA0: Label160 IL_0CA0: Label161 IL_0CA0: Label162 IL_0CA0: Label163 IL_0CA0: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: virtual System.Boolean HumanAI::ArriveAtTarget(System.UInt16 instanceID, CitizenInstance& citizenData) ### Replacement: static System.Boolean HumanAI::HumanAI.ArriveAtTarget_Patch0(HumanAI this, System.UInt16 instanceID, CitizenInstance& citizenData) IL_0000: Local var 0: System.UInt32 IL_0000: Local var 1: CitizenManager IL_0000: // start original IL_0000: ldarg.2 IL_0001: ldfld Flags CitizenInstance::m_flags IL_0006: ldc.i4.s 64 IL_0008: and IL_0009: brfalse => Label0 IL_000E: ldarg.2 IL_000F: ldfld System.UInt32 CitizenInstance::m_citizen IL_0014: stloc.0 IL_0015: ldloc.0 IL_0016: brfalse => Label1 IL_001B: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0020: stloc.1 IL_0021: ldloc.1 IL_0022: ldfld Array32`1 CitizenManager::m_citizens IL_0027: ldfld Citizen[] Array32`1::m_buffer IL_002C: ldloc.0 IL_002D: conv.u IL_002E: ldelema Citizen IL_0033: call Location Citizen::get_CurrentLocation() IL_0038: ldc.i4.3 IL_0039: bne.un => Label2 IL_003E: ldarg.0 IL_003F: ldarg.1 IL_0040: ldarg.2 IL_0041: ldc.i4.1 IL_0042: callvirt virtual System.Void HumanAI::ArriveAtDestination(System.UInt16 instanceID, CitizenInstance& citizenData, System.Boolean success) IL_0047: Label2 IL_0047: ldarg.2 IL_0048: ldfld Flags CitizenInstance::m_flags IL_004D: ldc.i4 134217728 IL_0052: and IL_0053: brfalse => Label3 IL_0058: ldc.i4.0 IL_0059: br => Label6 IL_005E: Label3 IL_005E: ldloc.1 IL_005F: ldfld Array32`1 CitizenManager::m_citizens IL_0064: ldfld Citizen[] Array32`1::m_buffer IL_0069: ldloc.0 IL_006A: conv.u IL_006B: ldelema Citizen IL_0070: call System.UInt16 Citizen::GetBuildingByLocation() IL_0075: ldarg.2 IL_0076: ldfld System.UInt16 CitizenInstance::m_targetBuilding IL_007B: bne.un => Label4 IL_0080: ldc.i4.0 IL_0081: br => Label7 IL_0086: Label1 IL_0086: Label4 IL_0086: ldarg.2 IL_0087: dup IL_0088: ldfld Flags CitizenInstance::m_flags IL_008D: ldc.i4 -536952897 IL_0092: and IL_0093: stfld Flags CitizenInstance::m_flags IL_0098: ldarg.2 IL_0099: ldarg.1 IL_009A: call System.Void CitizenInstance::Unspawn(System.UInt16 instanceID) IL_009F: br => Label5 IL_00A4: Label0 IL_00A4: ldarg.0 IL_00A5: ldarg.1 IL_00A6: ldarg.2 IL_00A7: ldc.i4.1 IL_00A8: callvirt virtual System.Void HumanAI::ArriveAtDestination(System.UInt16 instanceID, CitizenInstance& citizenData, System.Boolean success) IL_00AD: Label5 IL_00AD: ldc.i4.1 IL_00AE: // end original IL_00AE: Label6 IL_00AE: Label7 IL_00AE: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: System.Boolean HumanAI::StartMoving(System.UInt32 citizenID, Citizen& data, System.UInt16 sourceBuilding, System.UInt16 targetBuilding) ### Replacement: static System.Boolean HumanAI::HumanAI.StartMoving_Patch0(HumanAI this, System.UInt32 citizenID, Citizen& data, System.UInt16 sourceBuilding, System.UInt16 targetBuilding) IL_0000: Local var 0: CitizenManager IL_0000: Local var 1: System.UInt16 IL_0000: // start original IL_0000: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldarg.s 4 IL_0008: ldarg.3 IL_0009: bne.un => Label0 IL_000E: ldc.i4.0 IL_000F: br => Label7 IL_0014: Label0 IL_0014: ldarg.s 4 IL_0016: brfalse => Label1 IL_001B: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0020: ldfld Array16`1 BuildingManager::m_buildings IL_0025: ldfld Building[] Array16`1::m_buffer IL_002A: ldarg.s 4 IL_002C: ldelema Building IL_0031: ldfld Flags Building::m_flags IL_0036: ldc.i4 131072 IL_003B: and IL_003C: brtrue => Label2 IL_0041: Label1 IL_0041: ldc.i4.0 IL_0042: br => Label8 IL_0047: Label2 IL_0047: ldarg.2 IL_0048: ldfld System.UInt16 Citizen::m_instance IL_004D: brfalse => Label3 IL_0052: ldarg.0 IL_0053: ldfld CitizenInfo CitizenAI::m_info IL_0058: ldfld CitizenAI CitizenInfo::m_citizenAI IL_005D: ldarg.2 IL_005E: ldfld System.UInt16 Citizen::m_instance IL_0063: ldloc.0 IL_0064: ldfld Array16`1 CitizenManager::m_instances IL_0069: ldfld CitizenInstance[] Array16`1::m_buffer IL_006E: ldarg.2 IL_006F: ldfld System.UInt16 Citizen::m_instance IL_0074: ldelema CitizenInstance IL_0079: ldarg.s 4 IL_007B: callvirt System.Void CitizenAI::SetTarget(System.UInt16 instanceID, CitizenInstance& data, System.UInt16 targetBuilding) IL_0080: ldarg.2 IL_0081: ldc.i4.3 IL_0082: call System.Void Citizen::set_CurrentLocation(Location value) IL_0087: ldc.i4.1 IL_0088: br => Label9 IL_008D: Label3 IL_008D: ldarg.3 IL_008E: brtrue => Label4 IL_0093: ldarg.2 IL_0094: call System.UInt16 Citizen::GetBuildingByLocation() IL_0099: starg.s 3 IL_009B: ldarg.3 IL_009C: brtrue => Label5 IL_00A1: ldc.i4.0 IL_00A2: br => Label10 IL_00A7: Label4 IL_00A7: Label5 IL_00A7: ldloc.0 IL_00A8: ldloca.s 1 (System.UInt16) IL_00AA: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_00AF: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_00B4: ldarg.0 IL_00B5: ldfld CitizenInfo CitizenAI::m_info IL_00BA: ldarg.1 IL_00BB: callvirt System.Boolean CitizenManager::CreateCitizenInstance(System.UInt16& instance, ColossalFramework.Math.Randomizer& randomizer, CitizenInfo info, System.UInt32 citizen) IL_00C0: brfalse => Label6 IL_00C5: ldarg.0 IL_00C6: ldfld CitizenInfo CitizenAI::m_info IL_00CB: ldfld CitizenAI CitizenInfo::m_citizenAI IL_00D0: ldloc.1 IL_00D1: ldloc.0 IL_00D2: ldfld Array16`1 CitizenManager::m_instances IL_00D7: ldfld CitizenInstance[] Array16`1::m_buffer IL_00DC: ldloc.1 IL_00DD: ldelema CitizenInstance IL_00E2: ldarg.3 IL_00E3: callvirt virtual System.Void CitizenAI::SetSource(System.UInt16 instanceID, CitizenInstance& data, System.UInt16 sourceBuilding) IL_00E8: ldarg.0 IL_00E9: ldfld CitizenInfo CitizenAI::m_info IL_00EE: ldfld CitizenAI CitizenInfo::m_citizenAI IL_00F3: ldloc.1 IL_00F4: ldloc.0 IL_00F5: ldfld Array16`1 CitizenManager::m_instances IL_00FA: ldfld CitizenInstance[] Array16`1::m_buffer IL_00FF: ldloc.1 IL_0100: ldelema CitizenInstance IL_0105: ldarg.s 4 IL_0107: callvirt System.Void CitizenAI::SetTarget(System.UInt16 instanceID, CitizenInstance& data, System.UInt16 targetBuilding) IL_010C: ldarg.2 IL_010D: ldc.i4.3 IL_010E: call System.Void Citizen::set_CurrentLocation(Location value) IL_0113: ldc.i4.1 IL_0114: br => Label11 IL_0119: Label6 IL_0119: ldc.i4.0 IL_011A: // end original IL_011A: Label7 IL_011A: Label8 IL_011A: Label9 IL_011A: Label10 IL_011A: Label11 IL_011A: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: virtual System.Void ResidentAI::SimulationStep(System.UInt16 instanceID, CitizenInstance& citizenData, Frame& frameData, System.Boolean lodPhysics) ### Replacement: static System.Void ResidentAI::ResidentAI.SimulationStep_Patch0(ResidentAI this, System.UInt16 instanceID, CitizenInstance& citizenData, Frame& frameData, System.Boolean lodPhysics) IL_0000: Local var 0: System.UInt32 IL_0000: Local var 1: CitizenManager IL_0000: Local var 2: System.UInt32 IL_0000: Local var 3: BuildingManager IL_0000: Local var 4: System.UInt16 IL_0000: Local var 5: System.UInt16 IL_0000: Local var 6: BuildingInfo IL_0000: Local var 7: System.Int32 IL_0000: Local var 8: System.UInt32 IL_0000: // start original IL_0000: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0005: ldfld System.UInt32 SimulationManager::m_currentFrameIndex IL_000A: stloc.0 IL_000B: ldloc.0 IL_000C: ldc.i4.4 IL_000D: shr.un IL_000E: ldc.i4.s 63 IL_0010: and IL_0011: conv.u8 IL_0012: ldarg.1 IL_0013: ldc.i4.s 63 IL_0015: and IL_0016: conv.i8 IL_0017: bne.un => Label0 IL_001C: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0021: stloc.1 IL_0022: ldarg.2 IL_0023: ldfld System.UInt32 CitizenInstance::m_citizen IL_0028: stloc.2 IL_0029: ldloc.2 IL_002A: brfalse => Label1 IL_002F: ldloc.1 IL_0030: ldfld Array32`1 CitizenManager::m_citizens IL_0035: ldfld Citizen[] Array32`1::m_buffer IL_003A: ldloc.2 IL_003B: conv.u IL_003C: ldelema Citizen IL_0041: ldfld Flags Citizen::m_flags IL_0046: ldc.i4 16384 IL_004B: and IL_004C: brfalse => Label2 IL_0051: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0056: stloc.3 IL_0057: ldloc.1 IL_0058: ldfld Array32`1 CitizenManager::m_citizens IL_005D: ldfld Citizen[] Array32`1::m_buffer IL_0062: ldloc.2 IL_0063: conv.u IL_0064: ldelema Citizen IL_0069: ldfld System.UInt16 Citizen::m_homeBuilding IL_006E: stloc.s 4 (System.UInt16) IL_0070: ldloc.3 IL_0071: ldarg.3 IL_0072: ldfld UnityEngine.Vector3 Frame::m_position IL_0077: ldc.r4 32 IL_007C: ldc.i4.2 IL_007D: ldc.i4.0 IL_007E: ldc.i4 131073 IL_0083: ldc.i4.2 IL_0084: callvirt System.UInt16 BuildingManager::FindBuilding(UnityEngine.Vector3 pos, System.Single maxDistance, Service service, SubService subService, Flags flagsRequired, Flags flagsForbidden) IL_0089: stloc.s 5 (System.UInt16) IL_008B: ldloc.s 4 (System.UInt16) IL_008D: brfalse => Label3 IL_0092: ldloc.s 5 (System.UInt16) IL_0094: brfalse => Label4 IL_0099: ldloc.3 IL_009A: ldfld Array16`1 BuildingManager::m_buildings IL_009F: ldfld Building[] Array16`1::m_buffer IL_00A4: ldloc.s 5 (System.UInt16) IL_00A6: ldelema Building IL_00AB: call BuildingInfo Building::get_Info() IL_00B0: stloc.s 6 (BuildingInfo) IL_00B2: ldc.i4.s -100 IL_00B4: stloc.s 7 (System.Int32) IL_00B6: ldloc.s 6 (BuildingInfo) IL_00B8: ldfld BuildingAI BuildingInfo::m_buildingAI IL_00BD: ldloc.s 5 (System.UInt16) IL_00BF: ldloc.3 IL_00C0: ldfld Array16`1 BuildingManager::m_buildings IL_00C5: ldfld Building[] Array16`1::m_buffer IL_00CA: ldloc.s 5 (System.UInt16) IL_00CC: ldelema Building IL_00D1: ldc.i4.s 30 IL_00D3: ldloca.s 7 (System.Int32) IL_00D5: callvirt virtual System.Void BuildingAI::ModifyMaterialBuffer(System.UInt16 buildingID, Building& data, TransferReason material, System.Int32& amountDelta) IL_00DA: ldloc.1 IL_00DB: ldfld Array32`1 CitizenManager::m_citizens IL_00E0: ldfld Citizen[] Array32`1::m_buffer IL_00E5: ldloc.2 IL_00E6: conv.u IL_00E7: ldelema Citizen IL_00EC: ldloc.2 IL_00ED: ldloc.3 IL_00EE: ldfld Array16`1 BuildingManager::m_buildings IL_00F3: ldfld Building[] Array16`1::m_buffer IL_00F8: ldloc.s 4 (System.UInt16) IL_00FA: ldelema Building IL_00FF: ldfld System.UInt32 Building::m_citizenUnits IL_0104: ldc.i4.s 16 IL_0106: call System.UInt32 Citizen::GetContainingUnit(System.UInt32 citizenID, System.UInt32 units, Flags flag) IL_010B: stloc.s 8 (System.UInt32) IL_010D: ldloc.s 8 (System.UInt32) IL_010F: brfalse => Label5 IL_0114: ldloc.1 IL_0115: ldfld Array32`1 CitizenManager::m_units IL_011A: ldfld CitizenUnit[] Array32`1::m_buffer IL_011F: ldloc.s 8 (System.UInt32) IL_0121: conv.u IL_0122: ldelema CitizenUnit IL_0127: dup IL_0128: ldfld System.UInt16 CitizenUnit::m_goods IL_012D: ldloc.s 7 (System.Int32) IL_012F: neg IL_0130: conv.u2 IL_0131: add IL_0132: conv.u2 IL_0133: stfld System.UInt16 CitizenUnit::m_goods IL_0138: Label5 IL_0138: ldloc.1 IL_0139: ldfld Array32`1 CitizenManager::m_citizens IL_013E: ldfld Citizen[] Array32`1::m_buffer IL_0143: ldloc.2 IL_0144: conv.u IL_0145: ldelema Citizen IL_014A: dup IL_014B: ldfld Flags Citizen::m_flags IL_0150: ldc.i4 -16385 IL_0155: and IL_0156: stfld Flags Citizen::m_flags IL_015B: Label0 IL_015B: Label1 IL_015B: Label2 IL_015B: Label3 IL_015B: Label4 IL_015B: ldarg.0 IL_015C: ldarg.1 IL_015D: ldarg.2 IL_015E: ldarg.3 IL_015F: ldarg.s 4 IL_0161: call virtual System.Void HumanAI::SimulationStep(System.UInt16 instanceID, CitizenInstance& citizenData, Frame& frameData, System.Boolean lodPhysics) IL_0166: // end original IL_0166: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: System.Void TouristAI::UpdateLocation(System.UInt32 citizenID, Citizen& data) ### Replacement: static System.Void TouristAI::TouristAI.UpdateLocation_Patch0(TouristAI this, System.UInt32 citizenID, Citizen& data) IL_0000: Local var 0: Citizen/Location IL_0000: Local var 1: BuildingManager IL_0000: Local var 2: ItemClass/Service IL_0000: Local var 3: System.UInt16 IL_0000: Local var 4: System.Int32 IL_0000: Local var 5: System.Int32 IL_0000: Local var 6: System.Int32 IL_0000: Local var 7: BuildingInfo IL_0000: Local var 8: System.Int32 IL_0000: Local var 9: System.Int32 IL_0000: Local var 10: BuildingInfo IL_0000: Local var 11: System.Int32 IL_0000: Local var 12: BuildingInfo IL_0000: Local var 13: System.Int32 IL_0000: Local var 14: System.Int32 IL_0000: // start original IL_0000: ldarg.2 IL_0001: ldfld System.UInt16 Citizen::m_homeBuilding IL_0006: brtrue => Label0 IL_000B: ldarg.2 IL_000C: ldfld System.UInt16 Citizen::m_workBuilding IL_0011: brtrue => Label1 IL_0016: ldarg.2 IL_0017: ldfld System.UInt16 Citizen::m_visitBuilding IL_001C: brtrue => Label2 IL_0021: ldarg.2 IL_0022: ldfld System.UInt16 Citizen::m_instance IL_0027: brtrue => Label3 IL_002C: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0031: ldarg.1 IL_0032: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_0037: br => Label58 IL_003C: Label0 IL_003C: Label1 IL_003C: Label2 IL_003C: Label3 IL_003C: ldarg.2 IL_003D: call Location Citizen::get_CurrentLocation() IL_0042: stloc.0 IL_0043: ldloc.0 IL_0044: switch => Labels4,5,6,7 IL_0059: br => Label8 IL_005E: Label4 IL_005E: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0063: ldarg.1 IL_0064: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_0069: br => Label59 IL_006E: Label5 IL_006E: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0073: ldarg.1 IL_0074: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_0079: br => Label60 IL_007E: Label6 IL_007E: ldarg.2 IL_007F: call System.Boolean Citizen::get_Dead() IL_0084: brtrue => Label9 IL_0089: ldarg.2 IL_008A: call System.Boolean Citizen::get_Sick() IL_008F: brtrue => Label10 IL_0094: ldarg.2 IL_0095: ldfld System.UInt16 Citizen::m_visitBuilding IL_009A: brtrue => Label11 IL_009F: Label9 IL_009F: Label10 IL_009F: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_00A4: ldarg.1 IL_00A5: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_00AA: br => Label12 IL_00AF: Label11 IL_00AF: ldarg.2 IL_00B0: call System.Boolean Citizen::get_Collapsed() IL_00B5: brtrue => Label13 IL_00BA: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_00BF: stloc.1 IL_00C0: ldc.i4.0 IL_00C1: stloc.2 IL_00C2: ldloc.1 IL_00C3: ldfld Array16`1 BuildingManager::m_buildings IL_00C8: ldfld Building[] Array16`1::m_buffer IL_00CD: ldarg.2 IL_00CE: ldfld System.UInt16 Citizen::m_visitBuilding IL_00D3: ldelema Building IL_00D8: ldfld System.UInt16 Building::m_eventIndex IL_00DD: stloc.3 IL_00DE: ldloc.1 IL_00DF: ldfld Array16`1 BuildingManager::m_buildings IL_00E4: ldfld Building[] Array16`1::m_buffer IL_00E9: ldarg.2 IL_00EA: ldfld System.UInt16 Citizen::m_visitBuilding IL_00EF: ldelema Building IL_00F4: call BuildingInfo Building::get_Info() IL_00F9: ldfld ItemClass BuildingInfo::m_class IL_00FE: ldfld Service ItemClass::m_service IL_0103: stloc.2 IL_0104: ldloc.2 IL_0105: ldc.i4.s 20 IL_0107: bne.un => Label14 IL_010C: ldloc.1 IL_010D: ldfld Array16`1 BuildingManager::m_buildings IL_0112: ldfld Building[] Array16`1::m_buffer IL_0117: ldarg.2 IL_0118: ldfld System.UInt16 Citizen::m_visitBuilding IL_011D: ldelema Building IL_0122: ldfld Flags Building::m_flags IL_0127: ldc.i4 2097152 IL_012C: and IL_012D: brfalse => Label15 IL_0132: ldarg.0 IL_0133: ldc.i4.0 IL_0134: call System.Int32 TouristAI::GetRandomTargetType(System.Int32 doNothingProbability) IL_0139: stloc.s 4 (System.Int32) IL_013B: ldloc.s 4 (System.Int32) IL_013D: ldc.i4.1 IL_013E: bne.un => Label16 IL_0143: ldarg.0 IL_0144: ldarg.1 IL_0145: ldarg.2 IL_0146: ldfld System.UInt16 Citizen::m_visitBuilding IL_014B: ldarg.0 IL_014C: ldarg.1 IL_014D: ldarg.2 IL_014E: call TransferReason HumanAI::GetLeavingReason(System.UInt32 citizenID, Citizen& data) IL_0153: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_0158: br => Label17 IL_015D: Label16 IL_015D: ldloc.s 4 (System.Int32) IL_015F: ldc.i4.2 IL_0160: bne.un => Label18 IL_0165: ldarg.0 IL_0166: ldarg.1 IL_0167: ldarg.2 IL_0168: ldfld System.UInt16 Citizen::m_visitBuilding IL_016D: ldarg.0 IL_016E: call TransferReason TouristAI::GetShoppingReason() IL_0173: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_0178: br => Label19 IL_017D: Label18 IL_017D: ldloc.s 4 (System.Int32) IL_017F: ldc.i4.3 IL_0180: bne.un => Label20 IL_0185: ldarg.0 IL_0186: ldarg.1 IL_0187: ldarg.2 IL_0188: ldfld System.UInt16 Citizen::m_visitBuilding IL_018D: ldarg.0 IL_018E: call TransferReason TouristAI::GetEntertainmentReason() IL_0193: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_0198: Label15 IL_0198: Label17 IL_0198: Label19 IL_0198: Label20 IL_0198: br => Label21 IL_019D: Label14 IL_019D: ldloc.1 IL_019E: ldfld Array16`1 BuildingManager::m_buildings IL_01A3: ldfld Building[] Array16`1::m_buffer IL_01A8: ldarg.2 IL_01A9: ldfld System.UInt16 Citizen::m_visitBuilding IL_01AE: ldelema Building IL_01B3: ldfld Flags Building::m_flags IL_01B8: ldc.i4 32768 IL_01BD: and IL_01BE: brfalse => Label22 IL_01C3: ldarg.0 IL_01C4: ldarg.1 IL_01C5: ldarg.2 IL_01C6: ldfld System.UInt16 Citizen::m_visitBuilding IL_01CB: ldarg.0 IL_01CC: ldarg.2 IL_01CD: ldfld System.UInt16 Citizen::m_visitBuilding IL_01D2: call TransferReason TouristAI::GetEvacuationReason(System.UInt16 sourceBuilding) IL_01D7: call System.Void HumanAI::FindEvacuationPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_01DC: br => Label23 IL_01E1: Label22 IL_01E1: ldloc.3 IL_01E2: brfalse => Label24 IL_01E7: call static EventManager ColossalFramework.Singleton`1::get_instance() IL_01EC: ldfld FastList`1 EventManager::m_events IL_01F1: ldfld EventData[] FastList`1::m_buffer IL_01F6: ldloc.3 IL_01F7: ldelema EventData IL_01FC: ldfld Flags EventData::m_flags IL_0201: ldc.i4 4144 IL_0206: and IL_0207: brtrue => Label25 IL_020C: ldarg.0 IL_020D: ldc.i4.0 IL_020E: call System.Int32 TouristAI::GetRandomTargetType(System.Int32 doNothingProbability) IL_0213: stloc.s 5 (System.Int32) IL_0215: ldloc.s 5 (System.Int32) IL_0217: ldc.i4.1 IL_0218: bne.un => Label26 IL_021D: ldarg.0 IL_021E: ldarg.1 IL_021F: ldarg.2 IL_0220: ldfld System.UInt16 Citizen::m_visitBuilding IL_0225: ldarg.0 IL_0226: ldarg.1 IL_0227: ldarg.2 IL_0228: call TransferReason HumanAI::GetLeavingReason(System.UInt32 citizenID, Citizen& data) IL_022D: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_0232: br => Label27 IL_0237: Label26 IL_0237: ldloc.s 5 (System.Int32) IL_0239: ldc.i4.2 IL_023A: bne.un => Label28 IL_023F: ldarg.0 IL_0240: ldarg.1 IL_0241: ldarg.2 IL_0242: ldfld System.UInt16 Citizen::m_visitBuilding IL_0247: ldarg.0 IL_0248: call TransferReason TouristAI::GetShoppingReason() IL_024D: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_0252: br => Label29 IL_0257: Label28 IL_0257: ldloc.s 5 (System.Int32) IL_0259: ldc.i4.3 IL_025A: bne.un => Label30 IL_025F: ldarg.0 IL_0260: ldarg.1 IL_0261: ldarg.2 IL_0262: ldfld System.UInt16 Citizen::m_visitBuilding IL_0267: ldarg.0 IL_0268: call TransferReason TouristAI::GetEntertainmentReason() IL_026D: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_0272: Label27 IL_0272: Label29 IL_0272: Label30 IL_0272: br => Label31 IL_0277: Label25 IL_0277: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_027C: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0281: ldc.i4.s 10 IL_0283: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0288: stloc.s 6 (System.Int32) IL_028A: ldloc.s 6 (System.Int32) IL_028C: ldc.i4.5 IL_028D: bge => Label32 IL_0292: ldloc.1 IL_0293: ldfld Array16`1 BuildingManager::m_buildings IL_0298: ldfld Building[] Array16`1::m_buffer IL_029D: ldarg.2 IL_029E: ldfld System.UInt16 Citizen::m_visitBuilding IL_02A3: ldelema Building IL_02A8: call BuildingInfo Building::get_Info() IL_02AD: stloc.s 7 (BuildingInfo) IL_02AF: ldc.i4.s -100 IL_02B1: stloc.s 8 (System.Int32) IL_02B3: ldloc.s 7 (BuildingInfo) IL_02B5: ldfld BuildingAI BuildingInfo::m_buildingAI IL_02BA: ldarg.2 IL_02BB: ldfld System.UInt16 Citizen::m_visitBuilding IL_02C0: ldloc.1 IL_02C1: ldfld Array16`1 BuildingManager::m_buildings IL_02C6: ldfld Building[] Array16`1::m_buffer IL_02CB: ldarg.2 IL_02CC: ldfld System.UInt16 Citizen::m_visitBuilding IL_02D1: ldelema Building IL_02D6: ldc.i4.s 30 IL_02D8: ldloca.s 8 (System.Int32) IL_02DA: callvirt virtual System.Void BuildingAI::ModifyMaterialBuffer(System.UInt16 buildingID, Building& data, TransferReason material, System.Int32& amountDelta) IL_02DF: ldarg.0 IL_02E0: ldarg.1 IL_02E1: ldarg.2 IL_02E2: ldfld System.UInt16 Citizen::m_visitBuilding IL_02E7: call System.Void TouristAI::AddTouristVisit(System.UInt32 citizenID, System.UInt16 buildingID) IL_02EC: Label31 IL_02EC: Label32 IL_02EC: br => Label33 IL_02F1: Label24 IL_02F1: ldarg.0 IL_02F2: ldc.i4 5000 IL_02F7: call System.Int32 TouristAI::GetRandomTargetType(System.Int32 doNothingProbability) IL_02FC: stloc.s 9 (System.Int32) IL_02FE: ldloc.s 9 (System.Int32) IL_0300: ldc.i4.1 IL_0301: bne.un => Label34 IL_0306: ldarg.0 IL_0307: ldarg.1 IL_0308: ldarg.2 IL_0309: ldfld System.UInt16 Citizen::m_visitBuilding IL_030E: ldarg.0 IL_030F: ldarg.1 IL_0310: ldarg.2 IL_0311: call TransferReason HumanAI::GetLeavingReason(System.UInt32 citizenID, Citizen& data) IL_0316: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_031B: br => Label35 IL_0320: Label34 IL_0320: ldloc.s 9 (System.Int32) IL_0322: ldc.i4.2 IL_0323: bne.un => Label36 IL_0328: ldarg.2 IL_0329: ldfld System.UInt16 Citizen::m_instance IL_032E: brtrue => Label37 IL_0333: ldarg.0 IL_0334: call System.Boolean TouristAI::DoRandomMove() IL_0339: brfalse => Label38 IL_033E: Label37 IL_033E: ldarg.0 IL_033F: ldarg.1 IL_0340: ldarg.2 IL_0341: ldfld System.UInt16 Citizen::m_visitBuilding IL_0346: ldarg.0 IL_0347: call TransferReason TouristAI::GetShoppingReason() IL_034C: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_0351: br => Label39 IL_0356: Label38 IL_0356: ldloc.1 IL_0357: ldfld Array16`1 BuildingManager::m_buildings IL_035C: ldfld Building[] Array16`1::m_buffer IL_0361: ldarg.2 IL_0362: ldfld System.UInt16 Citizen::m_visitBuilding IL_0367: ldelema Building IL_036C: call BuildingInfo Building::get_Info() IL_0371: stloc.s 10 (BuildingInfo) IL_0373: ldc.i4.s -100 IL_0375: stloc.s 11 (System.Int32) IL_0377: ldloc.s 10 (BuildingInfo) IL_0379: ldfld BuildingAI BuildingInfo::m_buildingAI IL_037E: ldarg.2 IL_037F: ldfld System.UInt16 Citizen::m_visitBuilding IL_0384: ldloc.1 IL_0385: ldfld Array16`1 BuildingManager::m_buildings IL_038A: ldfld Building[] Array16`1::m_buffer IL_038F: ldarg.2 IL_0390: ldfld System.UInt16 Citizen::m_visitBuilding IL_0395: ldelema Building IL_039A: ldc.i4.s 30 IL_039C: ldloca.s 11 (System.Int32) IL_039E: callvirt virtual System.Void BuildingAI::ModifyMaterialBuffer(System.UInt16 buildingID, Building& data, TransferReason material, System.Int32& amountDelta) IL_03A3: ldarg.0 IL_03A4: ldarg.1 IL_03A5: ldarg.2 IL_03A6: ldfld System.UInt16 Citizen::m_visitBuilding IL_03AB: call System.Void TouristAI::AddTouristVisit(System.UInt32 citizenID, System.UInt16 buildingID) IL_03B0: Label39 IL_03B0: br => Label40 IL_03B5: Label36 IL_03B5: ldloc.s 9 (System.Int32) IL_03B7: ldc.i4.3 IL_03B8: bne.un => Label41 IL_03BD: ldarg.2 IL_03BE: ldfld System.UInt16 Citizen::m_instance IL_03C3: brtrue => Label42 IL_03C8: ldarg.0 IL_03C9: call System.Boolean TouristAI::DoRandomMove() IL_03CE: brfalse => Label43 IL_03D3: Label42 IL_03D3: ldarg.0 IL_03D4: ldarg.1 IL_03D5: ldarg.2 IL_03D6: ldfld System.UInt16 Citizen::m_visitBuilding IL_03DB: ldarg.0 IL_03DC: call TransferReason TouristAI::GetEntertainmentReason() IL_03E1: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_03E6: br => Label44 IL_03EB: Label43 IL_03EB: ldloc.1 IL_03EC: ldfld Array16`1 BuildingManager::m_buildings IL_03F1: ldfld Building[] Array16`1::m_buffer IL_03F6: ldarg.2 IL_03F7: ldfld System.UInt16 Citizen::m_visitBuilding IL_03FC: ldelema Building IL_0401: call BuildingInfo Building::get_Info() IL_0406: stloc.s 12 (BuildingInfo) IL_0408: ldc.i4.s -100 IL_040A: stloc.s 13 (System.Int32) IL_040C: ldloc.s 12 (BuildingInfo) IL_040E: ldfld BuildingAI BuildingInfo::m_buildingAI IL_0413: ldarg.2 IL_0414: ldfld System.UInt16 Citizen::m_visitBuilding IL_0419: ldloc.1 IL_041A: ldfld Array16`1 BuildingManager::m_buildings IL_041F: ldfld Building[] Array16`1::m_buffer IL_0424: ldarg.2 IL_0425: ldfld System.UInt16 Citizen::m_visitBuilding IL_042A: ldelema Building IL_042F: ldc.i4.s 30 IL_0431: ldloca.s 13 (System.Int32) IL_0433: callvirt virtual System.Void BuildingAI::ModifyMaterialBuffer(System.UInt16 buildingID, Building& data, TransferReason material, System.Int32& amountDelta) IL_0438: ldarg.0 IL_0439: ldarg.1 IL_043A: ldarg.2 IL_043B: ldfld System.UInt16 Citizen::m_visitBuilding IL_0440: call System.Void TouristAI::AddTouristVisit(System.UInt32 citizenID, System.UInt16 buildingID) IL_0445: Label12 IL_0445: Label13 IL_0445: Label21 IL_0445: Label23 IL_0445: Label33 IL_0445: Label35 IL_0445: Label40 IL_0445: Label41 IL_0445: Label44 IL_0445: br => Label61 IL_044A: Label7 IL_044A: ldarg.2 IL_044B: call System.Boolean Citizen::get_Dead() IL_0450: brtrue => Label45 IL_0455: ldarg.2 IL_0456: call System.Boolean Citizen::get_Sick() IL_045B: brfalse => Label46 IL_0460: Label45 IL_0460: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0465: ldarg.1 IL_0466: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_046B: br => Label47 IL_0470: Label46 IL_0470: ldarg.2 IL_0471: ldfld System.UInt16 Citizen::m_vehicle IL_0476: brtrue => Label48 IL_047B: ldarg.2 IL_047C: ldfld System.UInt16 Citizen::m_instance IL_0481: brtrue => Label49 IL_0486: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_048B: ldarg.1 IL_048C: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_0491: br => Label50 IL_0496: Label48 IL_0496: Label49 IL_0496: ldarg.2 IL_0497: ldfld System.UInt16 Citizen::m_instance IL_049C: brfalse => Label51 IL_04A1: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_04A6: ldfld Array16`1 CitizenManager::m_instances IL_04AB: ldfld CitizenInstance[] Array16`1::m_buffer IL_04B0: ldarg.2 IL_04B1: ldfld System.UInt16 Citizen::m_instance IL_04B6: ldelema CitizenInstance IL_04BB: ldfld Flags CitizenInstance::m_flags IL_04C0: ldc.i4 402653184 IL_04C5: and IL_04C6: ldc.i4 402653184 IL_04CB: bne.un => Label52 IL_04D0: ldarg.0 IL_04D1: ldc.i4 5000 IL_04D6: call System.Int32 TouristAI::GetRandomTargetType(System.Int32 doNothingProbability) IL_04DB: stloc.s 14 (System.Int32) IL_04DD: ldloc.s 14 (System.Int32) IL_04DF: ldc.i4.1 IL_04E0: bne.un => Label53 IL_04E5: ldarg.0 IL_04E6: ldarg.1 IL_04E7: ldc.i4.0 IL_04E8: ldarg.0 IL_04E9: ldarg.1 IL_04EA: ldarg.2 IL_04EB: call TransferReason HumanAI::GetLeavingReason(System.UInt32 citizenID, Citizen& data) IL_04F0: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_04F5: br => Label54 IL_04FA: Label53 IL_04FA: ldloc.s 14 (System.Int32) IL_04FC: ldc.i4.2 IL_04FD: bne.un => Label55 IL_0502: ldarg.0 IL_0503: ldarg.1 IL_0504: ldc.i4.0 IL_0505: ldarg.0 IL_0506: call TransferReason TouristAI::GetShoppingReason() IL_050B: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_0510: br => Label56 IL_0515: Label55 IL_0515: ldloc.s 14 (System.Int32) IL_0517: ldc.i4.3 IL_0518: bne.un => Label57 IL_051D: ldarg.0 IL_051E: ldarg.1 IL_051F: ldc.i4.0 IL_0520: ldarg.0 IL_0521: call TransferReason TouristAI::GetEntertainmentReason() IL_0526: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_052B: // end original IL_052B: Label8 IL_052B: Label47 IL_052B: Label50 IL_052B: Label51 IL_052B: Label52 IL_052B: Label54 IL_052B: Label56 IL_052B: Label57 IL_052B: Label58 IL_052B: Label59 IL_052B: Label60 IL_052B: Label61 IL_052B: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: System.Void TransferManager::AddOutgoingOffer(TransferReason material, TransferOffer offer) ### Replacement: static System.Void TransferManager::TransferManager.AddOutgoingOffer_Patch0(TransferManager this, TransferReason material, TransferOffer offer) IL_0000: Local var 0: System.Byte IL_0000: Local var 1: DistrictPark/PedestrianZoneTransferReason IL_0000: Local var 2: Building[] IL_0000: Local var 3: System.Boolean IL_0000: Local var 4: System.UInt16 IL_0000: Local var 5: Notification/ProblemStruct IL_0000: Local var 6: System.Int32 IL_0000: Local var 7: System.Int32 IL_0000: Local var 8: System.Int32 IL_0000: Local var 9: System.Int32 IL_0000: // start original IL_0000: ldarga.s 2 IL_0002: call System.UInt16 TransferOffer::get_Building() IL_0007: brfalse => Label0 IL_000C: call static DistrictManager ColossalFramework.Singleton`1::get_instance() IL_0011: ldarga.s 2 IL_0013: call UnityEngine.Vector3 TransferOffer::get_Position() IL_0018: callvirt System.Byte DistrictManager::GetPark(UnityEngine.Vector3 worldPos) IL_001D: stloc.0 IL_001E: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0023: ldfld Array16`1 BuildingManager::m_buildings IL_0028: ldfld Building[] Array16`1::m_buffer IL_002D: stloc.2 IL_002E: ldloc.0 IL_002F: brfalse => Label1 IL_0034: call static DistrictManager ColossalFramework.Singleton`1::get_instance() IL_0039: ldfld Array8`1 DistrictManager::m_parks IL_003E: ldfld DistrictPark[] Array8`1::m_buffer IL_0043: ldloc.0 IL_0044: ldelema DistrictPark IL_0049: call System.Boolean DistrictPark::get_IsPedestrianZone() IL_004E: brfalse => Label2 IL_0053: ldloc.2 IL_0054: ldarga.s 2 IL_0056: call System.UInt16 TransferOffer::get_Building() IL_005B: ldelema Building IL_0060: call BuildingInfo Building::get_Info() IL_0065: ldfld BuildingAI BuildingInfo::m_buildingAI IL_006A: ldarga.s 2 IL_006C: call System.UInt16 TransferOffer::get_Building() IL_0071: ldloc.2 IL_0072: ldarga.s 2 IL_0074: call System.UInt16 TransferOffer::get_Building() IL_0079: ldelema Building IL_007E: callvirt virtual System.Boolean BuildingAI::GetUseServicePoint(System.UInt16 buildingAI, Building& data) IL_0083: brfalse => Label3 IL_0088: ldarg.1 IL_0089: ldloca.s 1 (DistrictPark+PedestrianZoneTransferReason) IL_008B: call static System.Boolean DistrictPark::TryGetPedestrianReason(TransferReason material, PedestrianZoneTransferReason& reason) IL_0090: brfalse => Label4 IL_0095: ldc.i4.0 IL_0096: stloc.3 IL_0097: call static DistrictManager ColossalFramework.Singleton`1::get_instance() IL_009C: ldfld Array8`1 DistrictManager::m_parks IL_00A1: ldfld DistrictPark[] Array8`1::m_buffer IL_00A6: ldloc.0 IL_00A7: ldelema DistrictPark IL_00AC: ldfld Park DistrictPark::m_parkPolicies IL_00B1: ldc.i4 16777216 IL_00B6: and IL_00B7: brfalse => Label5 IL_00BC: ldc.i4.1 IL_00BD: stloc.3 IL_00BE: Label5 IL_00BE: ldloc.3 IL_00BF: brtrue => Label6 IL_00C4: ldloc.2 IL_00C5: ldarga.s 2 IL_00C7: call System.UInt16 TransferOffer::get_Building() IL_00CC: ldelema Building IL_00D1: ldfld System.UInt16 Building::m_accessSegment IL_00D6: stloc.s 4 (System.UInt16) IL_00D8: ldloc.s 4 (System.UInt16) IL_00DA: brtrue => Label7 IL_00DF: ldloc.2 IL_00E0: ldarga.s 2 IL_00E2: call System.UInt16 TransferOffer::get_Building() IL_00E7: ldelema Building IL_00EC: ldfld ProblemStruct Building::m_problems IL_00F1: ldc.i4 4096 IL_00F6: conv.i8 IL_00F7: ldc.i4.1 IL_00F8: conv.i8 IL_00F9: newobj System.Void ProblemStruct::.ctor(Problem1 problem1, Problem2 problem2) IL_00FE: call static ProblemStruct ProblemStruct::op_BitwiseAnd(ProblemStruct a, ProblemStruct b) IL_0103: stloc.s 5 (Notification+ProblemStruct) IL_0105: ldloca.s 5 (Notification+ProblemStruct) IL_0107: call System.Boolean ProblemStruct::get_IsNone() IL_010C: brfalse => Label8 IL_0111: ldloc.2 IL_0112: ldarga.s 2 IL_0114: call System.UInt16 TransferOffer::get_Building() IL_0119: ldelema Building IL_011E: call BuildingInfo Building::get_Info() IL_0123: ldfld BuildingAI BuildingInfo::m_buildingAI IL_0128: ldarga.s 2 IL_012A: call System.UInt16 TransferOffer::get_Building() IL_012F: ldloc.2 IL_0130: ldarga.s 2 IL_0132: call System.UInt16 TransferOffer::get_Building() IL_0137: ldelema Building IL_013C: callvirt virtual System.Void BuildingAI::CheckRoadAccess(System.UInt16 buildingID, Building& data) IL_0141: ldloc.2 IL_0142: ldarga.s 2 IL_0144: call System.UInt16 TransferOffer::get_Building() IL_0149: ldelema Building IL_014E: ldfld System.UInt16 Building::m_accessSegment IL_0153: stloc.s 4 (System.UInt16) IL_0155: Label7 IL_0155: Label8 IL_0155: ldloc.s 4 (System.UInt16) IL_0157: brfalse => Label9 IL_015C: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0161: ldfld Array16`1 NetManager::m_segments IL_0166: ldfld NetSegment[] Array16`1::m_buffer IL_016B: ldloc.s 4 (System.UInt16) IL_016D: ldelema NetSegment IL_0172: call NetInfo NetSegment::get_Info() IL_0177: ldfld VehicleCategory NetInfo::m_vehicleCategories IL_017C: ldloca.s 1 (DistrictPark+PedestrianZoneTransferReason) IL_017E: ldfld VehicleCategory PedestrianZoneTransferReason::m_vehicleCategory IL_0183: and IL_0184: ldc.i4.0 IL_0185: conv.i8 IL_0186: bne.un => Label10 IL_018B: ldc.i4.1 IL_018C: stloc.3 IL_018D: Label6 IL_018D: Label9 IL_018D: Label10 IL_018D: ldloc.3 IL_018E: brfalse => Label11 IL_0193: ldarga.s 2 IL_0195: ldloc.0 IL_0196: stfld System.Byte TransferOffer::m_isLocalPark IL_019B: call static DistrictManager ColossalFramework.Singleton`1::get_instance() IL_01A0: ldfld Array8`1 DistrictManager::m_parks IL_01A5: ldfld DistrictPark[] Array8`1::m_buffer IL_01AA: ldloc.0 IL_01AB: ldelema DistrictPark IL_01B0: ldarga.s 2 IL_01B2: call System.UInt16 TransferOffer::get_Building() IL_01B7: ldarg.1 IL_01B8: call System.Void DistrictPark::AddMaterialSuggestion(System.UInt16 buildingID, TransferReason material) IL_01BD: Label0 IL_01BD: Label1 IL_01BD: Label2 IL_01BD: Label3 IL_01BD: Label4 IL_01BD: Label11 IL_01BD: ldarga.s 2 IL_01BF: call System.Int32 TransferOffer::get_Priority() IL_01C4: stloc.s 6 (System.Int32) IL_01C6: br => Label12 IL_01CB: Label14 IL_01CB: ldarg.1 IL_01CC: ldc.i4.8 IL_01CD: mul IL_01CE: ldloc.s 6 (System.Int32) IL_01D0: add IL_01D1: stloc.s 7 (System.Int32) IL_01D3: ldarg.0 IL_01D4: ldfld System.UInt16[] TransferManager::m_outgoingCount IL_01D9: ldloc.s 7 (System.Int32) IL_01DB: ldelem.u2 IL_01DC: stloc.s 8 (System.Int32) IL_01DE: ldloc.s 8 (System.Int32) IL_01E0: ldc.i4 256 IL_01E5: bge => Label13 IL_01EA: ldloc.s 7 (System.Int32) IL_01EC: ldc.i4 256 IL_01F1: mul IL_01F2: ldloc.s 8 (System.Int32) IL_01F4: add IL_01F5: stloc.s 9 (System.Int32) IL_01F7: ldarg.0 IL_01F8: ldfld TransferOffer[] TransferManager::m_outgoingOffers IL_01FD: ldloc.s 9 (System.Int32) IL_01FF: ldelema TransferManager+TransferOffer IL_0204: ldarg.2 IL_0205: stobj TransferManager+TransferOffer IL_020A: ldarg.0 IL_020B: ldfld System.UInt16[] TransferManager::m_outgoingCount IL_0210: ldloc.s 7 (System.Int32) IL_0212: ldloc.s 8 (System.Int32) IL_0214: ldc.i4.1 IL_0215: add IL_0216: conv.u2 IL_0217: stelem.i2 IL_0218: ldarg.0 IL_0219: ldfld System.Int32[] TransferManager::m_outgoingAmount IL_021E: ldarg.1 IL_021F: ldelema System.Int32 IL_0224: dup IL_0225: ldind.i4 IL_0226: ldarga.s 2 IL_0228: call System.Int32 TransferOffer::get_Amount() IL_022D: add IL_022E: stind.i4 IL_022F: br => Label15 IL_0234: Label13 IL_0234: ldloc.s 6 (System.Int32) IL_0236: ldc.i4.1 IL_0237: sub IL_0238: stloc.s 6 (System.Int32) IL_023A: Label12 IL_023A: ldloc.s 6 (System.Int32) IL_023C: ldc.i4.0 IL_023D: bge => Label14 IL_0242: // end original IL_0242: Label15 IL_0242: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: virtual System.Void WorldInfoPanel::UpdateBindings() ### Replacement: static System.Void WorldInfoPanel::WorldInfoPanel.UpdateBindings_Patch0(WorldInfoPanel this) IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldfld ColossalFramework.UI.UIMultiStateButton WorldInfoPanel::m_LocationMarker IL_0006: ldnull IL_0007: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_000C: brfalse => Label0 IL_0011: ldarg.0 IL_0012: ldfld ColossalFramework.UI.UIMultiStateButton WorldInfoPanel::m_LocationMarker IL_0017: call static CameraController ToolsModifierControl::get_cameraController() IL_001C: ldarg.0 IL_001D: ldfld InstanceID WorldInfoPanel::m_InstanceID IL_0022: callvirt System.Boolean CameraController::HasTarget(InstanceID id) IL_0027: brfalse => Label1 IL_002C: ldc.i4.1 IL_002D: br => Label2 IL_0032: Label1 IL_0032: ldc.i4.0 IL_0033: Label2 IL_0033: callvirt System.Void ColossalFramework.UI.UIMultiStateButton::set_activeStateIndex(System.Int32 value) IL_0038: Label0 IL_0038: ldarg.0 IL_0039: ldfld ColossalFramework.UI.UIMultiStateButton WorldInfoPanel::m_ShowHideRoutesButton IL_003E: ldnull IL_003F: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_0044: brfalse => Label3 IL_0049: ldarg.0 IL_004A: ldfld ColossalFramework.UI.UIMultiStateButton WorldInfoPanel::m_ShowHideRoutesButton IL_004F: ldarg.0 IL_0050: call System.Boolean WorldInfoPanel::get_isRoutesViewOn() IL_0055: brfalse => Label4 IL_005A: ldc.i4.1 IL_005B: br => Label5 IL_0060: Label4 IL_0060: ldc.i4.0 IL_0061: Label5 IL_0061: callvirt System.Void ColossalFramework.UI.UIMultiStateButton::set_activeStateIndex(System.Int32 value) IL_0066: // end original IL_0066: Label3 IL_0066: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: System.Int32 ColossalFramework.UI.UIGraph::GetMinDataPoints() ### Replacement: static System.Int32 ColossalFramework.UI.UIGraph::ColossalFramework.UI.UIGraph.GetMinDataPoints_Patch0(ColossalFramework.UI.UIGraph this) IL_0000: Local var 0: System.DateTime IL_0000: Local var 1: System.Int64 IL_0000: Local var 2: System.Int64 IL_0000: Local var 3: System.Int32 IL_0000: Local var 4: System.DateTime IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_0006: callvirt virtual System.Int32 System.Collections.Generic.List`1::get_Count() IL_000B: ldc.i4.1 IL_000C: blt => Label0 IL_0011: ldarg.0 IL_0012: ldfld System.DateTime ColossalFramework.UI.UIGraph::m_StartTime IL_0017: ldarg.0 IL_0018: ldfld System.DateTime ColossalFramework.UI.UIGraph::m_EndTime IL_001D: call static System.Boolean System.DateTime::op_Equality(System.DateTime d1, System.DateTime d2) IL_0022: brtrue => Label1 IL_0027: ldarg.0 IL_0028: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_002D: ldarg.0 IL_002E: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_0033: callvirt virtual System.Int32 System.Collections.Generic.List`1::get_Count() IL_0038: ldc.i4.1 IL_0039: sub IL_003A: callvirt virtual ColossalFramework.UI.CurveSettings System.Collections.Generic.List`1::get_Item(System.Int32 index) IL_003F: callvirt System.Single[] ColossalFramework.UI.CurveSettings::get_data() IL_0044: ldlen IL_0045: conv.i4 IL_0046: ldc.i4.2 IL_0047: bge => Label2 IL_004C: Label0 IL_004C: Label1 IL_004C: ldsfld System.Int32 ColossalFramework.UI.UIGraph::MIN_DATA IL_0051: br => Label3 IL_0056: Label2 IL_0056: ldarg.0 IL_0057: ldflda System.DateTime ColossalFramework.UI.UIGraph::m_StartTime IL_005C: ldsfld System.Int32 ColossalFramework.UI.UIGraph::MIN_YEARS IL_0061: call System.DateTime System.DateTime::AddYears(System.Int32 value) IL_0066: stloc.s 4 (System.DateTime) IL_0068: ldloca.s 4 (System.DateTime) IL_006A: ldsfld System.Int32 ColossalFramework.UI.UIGraph::MIN_MONTHS IL_006F: call System.DateTime System.DateTime::AddMonths(System.Int32 months) IL_0074: stloc.0 IL_0075: ldloca.s 0 (System.DateTime) IL_0077: call System.Int64 System.DateTime::get_Ticks() IL_007C: ldarg.0 IL_007D: ldflda System.DateTime ColossalFramework.UI.UIGraph::m_StartTime IL_0082: call System.Int64 System.DateTime::get_Ticks() IL_0087: sub IL_0088: stloc.1 IL_0089: ldarg.0 IL_008A: ldflda System.DateTime ColossalFramework.UI.UIGraph::m_EndTime IL_008F: call System.Int64 System.DateTime::get_Ticks() IL_0094: ldarg.0 IL_0095: ldflda System.DateTime ColossalFramework.UI.UIGraph::m_StartTime IL_009A: call System.Int64 System.DateTime::get_Ticks() IL_009F: sub IL_00A0: ldarg.0 IL_00A1: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_00A6: ldarg.0 IL_00A7: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_00AC: callvirt virtual System.Int32 System.Collections.Generic.List`1::get_Count() IL_00B1: ldc.i4.1 IL_00B2: sub IL_00B3: callvirt virtual ColossalFramework.UI.CurveSettings System.Collections.Generic.List`1::get_Item(System.Int32 index) IL_00B8: callvirt System.Single[] ColossalFramework.UI.CurveSettings::get_data() IL_00BD: ldlen IL_00BE: conv.i4 IL_00BF: ldc.i4.1 IL_00C0: sub IL_00C1: conv.i8 IL_00C2: div IL_00C3: stloc.2 IL_00C4: ldloc.1 IL_00C5: conv.r4 IL_00C6: ldloc.2 IL_00C7: conv.r4 IL_00C8: div IL_00C9: call static System.Int32 UnityEngine.Mathf::CeilToInt(System.Single f) IL_00CE: stloc.3 IL_00CF: ldsfld System.Int32 ColossalFramework.UI.UIGraph::MIN_DATA IL_00D4: ldloc.3 IL_00D5: call static System.Int32 System.Math::Max(System.Int32 val1, System.Int32 val2) IL_00DA: // end original IL_00DA: Label3 IL_00DA: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: System.DateTime ColossalFramework.UI.UIGraph::GetVisibleEndTime() ### Replacement: static System.DateTime ColossalFramework.UI.UIGraph::ColossalFramework.UI.UIGraph.GetVisibleEndTime_Patch0(ColossalFramework.UI.UIGraph this) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: System.Int64 IL_0000: Local var 2: System.DateTime IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_0006: callvirt virtual System.Int32 System.Collections.Generic.List`1::get_Count() IL_000B: ldc.i4.1 IL_000C: blt => Label0 IL_0011: ldarg.0 IL_0012: ldfld System.DateTime ColossalFramework.UI.UIGraph::m_StartTime IL_0017: ldarg.0 IL_0018: ldfld System.DateTime ColossalFramework.UI.UIGraph::m_EndTime IL_001D: call static System.Boolean System.DateTime::op_Equality(System.DateTime d1, System.DateTime d2) IL_0022: brtrue => Label1 IL_0027: ldarg.0 IL_0028: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_002D: ldarg.0 IL_002E: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_0033: callvirt virtual System.Int32 System.Collections.Generic.List`1::get_Count() IL_0038: ldc.i4.1 IL_0039: sub IL_003A: callvirt virtual ColossalFramework.UI.CurveSettings System.Collections.Generic.List`1::get_Item(System.Int32 index) IL_003F: callvirt System.Single[] ColossalFramework.UI.CurveSettings::get_data() IL_0044: ldlen IL_0045: conv.i4 IL_0046: ldc.i4.2 IL_0047: bge => Label2 IL_004C: Label0 IL_004C: Label1 IL_004C: ldc.i4.1 IL_004D: ldc.i4.1 IL_004E: ldc.i4.1 IL_004F: newobj System.Void System.DateTime::.ctor(System.Int32 year, System.Int32 month, System.Int32 day) IL_0054: br => Label3 IL_0059: Label2 IL_0059: ldarg.0 IL_005A: call System.Int32 ColossalFramework.UI.UIGraph::GetMinDataPoints() IL_005F: ldarg.0 IL_0060: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_0065: ldarg.0 IL_0066: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_006B: callvirt virtual System.Int32 System.Collections.Generic.List`1::get_Count() IL_0070: ldc.i4.1 IL_0071: sub IL_0072: callvirt virtual ColossalFramework.UI.CurveSettings System.Collections.Generic.List`1::get_Item(System.Int32 index) IL_0077: callvirt System.Single[] ColossalFramework.UI.CurveSettings::get_data() IL_007C: ldlen IL_007D: conv.i4 IL_007E: call static System.Int32 System.Math::Max(System.Int32 val1, System.Int32 val2) IL_0083: stloc.0 IL_0084: ldarg.0 IL_0085: ldflda System.DateTime ColossalFramework.UI.UIGraph::m_StartTime IL_008A: ldsfld System.Int32 ColossalFramework.UI.UIGraph::MIN_YEARS IL_008F: call System.DateTime System.DateTime::AddYears(System.Int32 value) IL_0094: stloc.2 IL_0095: ldloca.s 2 (System.DateTime) IL_0097: ldsfld System.Int32 ColossalFramework.UI.UIGraph::MIN_MONTHS IL_009C: call System.DateTime System.DateTime::AddMonths(System.Int32 months) IL_00A1: pop IL_00A2: ldarg.0 IL_00A3: ldflda System.DateTime ColossalFramework.UI.UIGraph::m_EndTime IL_00A8: call System.Int64 System.DateTime::get_Ticks() IL_00AD: ldarg.0 IL_00AE: ldflda System.DateTime ColossalFramework.UI.UIGraph::m_StartTime IL_00B3: call System.Int64 System.DateTime::get_Ticks() IL_00B8: sub IL_00B9: ldarg.0 IL_00BA: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_00BF: ldarg.0 IL_00C0: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_00C5: callvirt virtual System.Int32 System.Collections.Generic.List`1::get_Count() IL_00CA: ldc.i4.1 IL_00CB: sub IL_00CC: callvirt virtual ColossalFramework.UI.CurveSettings System.Collections.Generic.List`1::get_Item(System.Int32 index) IL_00D1: callvirt System.Single[] ColossalFramework.UI.CurveSettings::get_data() IL_00D6: ldlen IL_00D7: conv.i4 IL_00D8: ldc.i4.1 IL_00D9: sub IL_00DA: conv.i8 IL_00DB: div IL_00DC: stloc.1 IL_00DD: ldarg.0 IL_00DE: ldflda System.DateTime ColossalFramework.UI.UIGraph::m_StartTime IL_00E3: call System.Int64 System.DateTime::get_Ticks() IL_00E8: ldloc.0 IL_00E9: ldc.i4.1 IL_00EA: sub IL_00EB: conv.i8 IL_00EC: ldloc.1 IL_00ED: mul IL_00EE: add IL_00EF: newobj System.Void System.DateTime::.ctor(System.Int64 ticks) IL_00F4: // end original IL_00F4: Label3 IL_00F4: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: System.Void ColossalFramework.UI.UIGraph::BuildLabels(ColossalFramework.PoolList`1 vertices, ColossalFramework.PoolList`1 indices, ColossalFramework.PoolList`1 uvs, ColossalFramework.PoolList`1 colors) ### Replacement: static System.Void ColossalFramework.UI.UIGraph::ColossalFramework.UI.UIGraph.BuildLabels_Patch0(ColossalFramework.UI.UIGraph this, ColossalFramework.PoolList`1 vertices, ColossalFramework.PoolList`1 indices, ColossalFramework.PoolList`1 uvs, ColossalFramework.PoolList`1 colors) IL_0000: Local var 0: UnityEngine.Vector3 IL_0000: Local var 1: System.Single IL_0000: Local var 2: UnityEngine.Vector2 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: System.Single IL_0000: Local var 6: UnityEngine.Vector2 IL_0000: Local var 7: UnityEngine.Vector2 IL_0000: Local var 8: ColossalFramework.UI.UIFontRenderer IL_0000: Local var 9: System.Int32 IL_0000: Local var 10: System.Single IL_0000: Local var 11: System.String IL_0000: Local var 12: System.Single IL_0000: Local var 13: System.Single IL_0000: Local var 14: System.Single IL_0000: Local var 15: System.Single IL_0000: Local var 16: System.DateTime IL_0000: Local var 17: System.Single IL_0000: Local var 18: System.DateTime IL_0000: Local var 19: System.Int64 IL_0000: Local var 20: System.Int64 IL_0000: Local var 21: System.Single IL_0000: Local var 22: System.Single IL_0000: Local var 23: System.Int32 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.DateTime IL_0000: Local var 26: System.Single IL_0000: Local var 27: System.Single IL_0000: Local var 28: System.String IL_0000: Local var 29: System.Single IL_0000: Local var 30: System.DateTime IL_0000: Local var 31: System.DateTime IL_0000: Local var 32: System.DateTime IL_0000: Local var 33: System.DateTime IL_0000: Local var 34: System.DateTime IL_0000: Local var 35: System.DateTime IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_0006: callvirt virtual System.Int32 System.Collections.Generic.List`1::get_Count() IL_000B: ldc.i4.1 IL_000C: bge => Label0 IL_0011: br => Label11 IL_0016: Label0 IL_0016: ldarg.0 IL_0017: ldarg.0 IL_0018: call System.Single ColossalFramework.UI.UIGraph::get_min() IL_001D: ldarg.0 IL_001E: call System.Single ColossalFramework.UI.UIGraph::get_max() IL_0023: call UnityEngine.Vector3 ColossalFramework.UI.UIGraph::CalculateViewRange(System.Single themin, System.Single themax) IL_0028: stloc.0 IL_0029: ldarg.0 IL_002A: call System.Single ColossalFramework.UI.UIComponent::PixelsToUnits() IL_002F: stloc.1 IL_0030: ldloca.s 2 (UnityEngine.Vector2) IL_0032: ldarg.0 IL_0033: call UnityEngine.Vector2 ColossalFramework.UI.UIComponent::get_size() IL_0038: ldfld System.Single UnityEngine.Vector2::x IL_003D: ldarg.0 IL_003E: call UnityEngine.Vector2 ColossalFramework.UI.UIComponent::get_size() IL_0043: ldfld System.Single UnityEngine.Vector2::y IL_0048: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_004D: ldarg.0 IL_004E: call ColossalFramework.UI.UIPivotPoint ColossalFramework.UI.UIComponent::get_pivot() IL_0053: ldarg.0 IL_0054: call UnityEngine.Vector2 ColossalFramework.UI.UIComponent::get_size() IL_0059: ldarg.0 IL_005A: call UnityEngine.Vector2 ColossalFramework.UI.UIComponent::get_arbitraryPivotOffset() IL_005F: call static UnityEngine.Vector3 ColossalFramework.UI.UIPivotExtensions::TransformToCenter(ColossalFramework.UI.UIPivotPoint pivot, UnityEngine.Vector2 size, UnityEngine.Vector2 offset) IL_0064: ldloc.1 IL_0065: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_006A: stloc.3 IL_006B: ldloc.1 IL_006C: ldarg.0 IL_006D: call UnityEngine.Vector2 ColossalFramework.UI.UIComponent::get_size() IL_0072: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_0077: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_007C: stloc.s 4 (UnityEngine.Vector3) IL_007E: ldarg.0 IL_007F: call UnityEngine.Vector2 ColossalFramework.UI.UIComponent::get_size() IL_0084: ldfld System.Single UnityEngine.Vector2::x IL_0089: ldarg.0 IL_008A: call UnityEngine.Vector2 ColossalFramework.UI.UIComponent::get_size() IL_008F: ldfld System.Single UnityEngine.Vector2::y IL_0094: div IL_0095: stloc.s 5 (System.Single) IL_0097: ldloca.s 6 (UnityEngine.Vector2) IL_0099: ldc.r4 -0.5 IL_009E: ldarg.0 IL_009F: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_00A4: call System.Single UnityEngine.Rect::get_xMin() IL_00A9: add IL_00AA: ldloc.s 5 (System.Single) IL_00AC: ldloc.1 IL_00AD: mul IL_00AE: ldarg.0 IL_00AF: ldfld System.Single ColossalFramework.UI.UIGraph::AxesWidth IL_00B4: mul IL_00B5: sub IL_00B6: ldc.r4 -0.5 IL_00BB: ldarg.0 IL_00BC: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_00C1: call System.Single UnityEngine.Rect::get_yMin() IL_00C6: add IL_00C7: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_00CC: ldloca.s 7 (UnityEngine.Vector2) IL_00CE: ldc.r4 -0.5 IL_00D3: ldarg.0 IL_00D4: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_00D9: call System.Single UnityEngine.Rect::get_xMin() IL_00DE: add IL_00DF: ldloc.s 5 (System.Single) IL_00E1: ldloc.1 IL_00E2: mul IL_00E3: ldarg.0 IL_00E4: ldfld System.Single ColossalFramework.UI.UIGraph::AxesWidth IL_00E9: mul IL_00EA: add IL_00EB: ldloca.s 6 (UnityEngine.Vector2) IL_00ED: ldfld System.Single UnityEngine.Vector2::y IL_00F2: ldarg.0 IL_00F3: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_00F8: call System.Single UnityEngine.Rect::get_height() IL_00FD: add IL_00FE: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_0103: ldarg.0 IL_0104: ldloc.s 6 (UnityEngine.Vector2) IL_0106: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_010B: ldloc.s 4 (UnityEngine.Vector3) IL_010D: call static UnityEngine.Vector3 UnityEngine.Vector3::Scale(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0112: ldloc.3 IL_0113: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0118: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector3 v) IL_011D: ldloc.s 7 (UnityEngine.Vector2) IL_011F: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0124: ldloc.s 4 (UnityEngine.Vector3) IL_0126: call static UnityEngine.Vector3 UnityEngine.Vector3::Scale(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_012B: ldloc.3 IL_012C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0131: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector3 v) IL_0136: ldarg.0 IL_0137: ldfld UnityEngine.Color32 ColossalFramework.UI.UIGraph::AxesColor IL_013C: ldarg.1 IL_013D: ldarg.2 IL_013E: ldarg.3 IL_013F: ldarg.s 4 IL_0141: call System.Void ColossalFramework.UI.UIGraph::AddSolidQuad(UnityEngine.Vector2 corner1, UnityEngine.Vector2 corner2, UnityEngine.Color32 col, ColossalFramework.PoolList`1 vertices, ColossalFramework.PoolList`1 indices, ColossalFramework.PoolList`1 uvs, ColossalFramework.PoolList`1 colors) IL_0146: ldloca.s 6 (UnityEngine.Vector2) IL_0148: ldc.r4 -0.5 IL_014D: ldarg.0 IL_014E: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_0153: call System.Single UnityEngine.Rect::get_xMin() IL_0158: add IL_0159: ldc.r4 -0.5 IL_015E: ldarg.0 IL_015F: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_0164: call System.Single UnityEngine.Rect::get_yMin() IL_0169: add IL_016A: ldloc.1 IL_016B: ldarg.0 IL_016C: ldfld System.Single ColossalFramework.UI.UIGraph::AxesWidth IL_0171: mul IL_0172: sub IL_0173: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_0178: ldloca.s 7 (UnityEngine.Vector2) IL_017A: ldloca.s 6 (UnityEngine.Vector2) IL_017C: ldfld System.Single UnityEngine.Vector2::x IL_0181: ldarg.0 IL_0182: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_0187: call System.Single UnityEngine.Rect::get_width() IL_018C: add IL_018D: ldc.r4 -0.5 IL_0192: ldarg.0 IL_0193: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_0198: call System.Single UnityEngine.Rect::get_yMin() IL_019D: add IL_019E: ldloc.1 IL_019F: ldarg.0 IL_01A0: ldfld System.Single ColossalFramework.UI.UIGraph::AxesWidth IL_01A5: mul IL_01A6: add IL_01A7: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_01AC: ldarg.0 IL_01AD: ldloc.s 6 (UnityEngine.Vector2) IL_01AF: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_01B4: ldloc.s 4 (UnityEngine.Vector3) IL_01B6: call static UnityEngine.Vector3 UnityEngine.Vector3::Scale(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_01BB: ldloc.3 IL_01BC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_01C1: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector3 v) IL_01C6: ldloc.s 7 (UnityEngine.Vector2) IL_01C8: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_01CD: ldloc.s 4 (UnityEngine.Vector3) IL_01CF: call static UnityEngine.Vector3 UnityEngine.Vector3::Scale(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_01D4: ldloc.3 IL_01D5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_01DA: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector3 v) IL_01DF: ldarg.0 IL_01E0: ldfld UnityEngine.Color32 ColossalFramework.UI.UIGraph::AxesColor IL_01E5: ldarg.1 IL_01E6: ldarg.2 IL_01E7: ldarg.3 IL_01E8: ldarg.s 4 IL_01EA: call System.Void ColossalFramework.UI.UIGraph::AddSolidQuad(UnityEngine.Vector2 corner1, UnityEngine.Vector2 corner2, UnityEngine.Color32 col, ColossalFramework.PoolList`1 vertices, ColossalFramework.PoolList`1 indices, ColossalFramework.PoolList`1 uvs, ColossalFramework.PoolList`1 colors) IL_01EF: ldarg.0 IL_01F0: call ColossalFramework.UI.UIFont ColossalFramework.UI.UIGraph::get_font() IL_01F5: callvirt abstract virtual ColossalFramework.UI.UIFontRenderer ColossalFramework.UI.UIFont::ObtainRenderer() IL_01FA: stloc.s 8 (ColossalFramework.UI.UIFontRenderer) .try { IL_01FC: ldloca.s 0 (UnityEngine.Vector3) IL_01FE: ldfld System.Single UnityEngine.Vector3::z IL_0203: ldc.r4 0 IL_0208: ble.un => Label1 IL_020D: ldc.i4.0 IL_020E: ldc.r4 1 IL_0213: ldloca.s 0 (UnityEngine.Vector3) IL_0215: ldfld System.Single UnityEngine.Vector3::z IL_021A: div IL_021B: call static System.Single UnityEngine.Mathf::Log10(System.Single f) IL_0220: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_0225: call static System.Int32 System.Math::Max(System.Int32 val1, System.Int32 val2) IL_022A: stloc.s 9 (System.Int32) IL_022C: br => Label2 IL_0231: Label1 IL_0231: ldc.i4.0 IL_0232: stloc.s 9 (System.Int32) IL_0234: Label2 IL_0234: ldloca.s 0 (UnityEngine.Vector3) IL_0236: ldfld System.Single UnityEngine.Vector3::x IL_023B: stloc.s 10 (System.Single) IL_023D: br => Label3 IL_0242: Label4 IL_0242: ldloca.s 10 (System.Single) IL_0244: ldstr "N" IL_0249: ldloc.s 9 (System.Int32) IL_024B: box System.Int32 IL_0250: call static System.String System.String::Concat(System.Object arg0, System.Object arg1) IL_0255: call System.String System.Single::ToString(System.String format) IL_025A: stloc.s 11 (System.String) IL_025C: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_025E: ldc.r4 1 IL_0263: callvirt System.Void ColossalFramework.UI.UIFontRenderer::set_textScale(System.Single value) IL_0268: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_026A: ldc.r4 0 IL_026F: ldarg.0 IL_0270: call System.Single ColossalFramework.UI.UIComponent::get_height() IL_0275: neg IL_0276: ldloc.1 IL_0277: mul IL_0278: ldc.r4 0.5 IL_027D: ldarg.0 IL_027E: ldloc.s 10 (System.Single) IL_0280: ldloca.s 0 (UnityEngine.Vector3) IL_0282: ldfld System.Single UnityEngine.Vector3::x IL_0287: ldloca.s 0 (UnityEngine.Vector3) IL_0289: ldfld System.Single UnityEngine.Vector3::y IL_028E: call System.Single ColossalFramework.UI.UIGraph::NormalizeY(System.Single y, System.Single min, System.Single max) IL_0293: sub IL_0294: mul IL_0295: ldloc.1 IL_0296: ldc.r4 8 IL_029B: mul IL_029C: add IL_029D: ldc.r4 0 IL_02A2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02A7: callvirt System.Void ColossalFramework.UI.UIFontRenderer::set_vectorOffset(UnityEngine.Vector3 value) IL_02AC: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_02AE: ldloc.1 IL_02AF: callvirt System.Void ColossalFramework.UI.UIFontRenderer::set_pixelRatio(System.Single value) IL_02B4: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_02B6: ldloc.2 IL_02B7: callvirt System.Void ColossalFramework.UI.UIFontRenderer::set_maxSize(UnityEngine.Vector2 value) IL_02BC: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_02BE: ldarg.0 IL_02BF: ldfld UnityEngine.Color32 ColossalFramework.UI.UIGraph::TextColor IL_02C4: callvirt System.Void ColossalFramework.UI.UIFontRenderer::set_defaultColor(UnityEngine.Color32 value) IL_02C9: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_02CB: ldloc.s 11 (System.String) IL_02CD: ldarg.0 IL_02CE: call ColossalFramework.UI.UIRenderData ColossalFramework.UI.UIGraph::get_textRenderData() IL_02D3: callvirt abstract virtual System.Void ColossalFramework.UI.UIFontRenderer::Render(System.String text, ColossalFramework.UI.UIRenderData destination) IL_02D8: ldc.r4 -0.5 IL_02DD: ldarg.0 IL_02DE: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_02E3: call System.Single UnityEngine.Rect::get_xMin() IL_02E8: add IL_02E9: ldarg.0 IL_02EA: ldloc.s 10 (System.Single) IL_02EC: ldloca.s 0 (UnityEngine.Vector3) IL_02EE: ldfld System.Single UnityEngine.Vector3::x IL_02F3: ldloca.s 0 (UnityEngine.Vector3) IL_02F5: ldfld System.Single UnityEngine.Vector3::y IL_02FA: call System.Single ColossalFramework.UI.UIGraph::NormalizeY(System.Single y, System.Single min, System.Single max) IL_02FF: ldloc.1 IL_0300: ldarg.0 IL_0301: ldfld System.Single ColossalFramework.UI.UIGraph::HelpAxesWidth IL_0306: mul IL_0307: sub IL_0308: newobj System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_030D: stloc.s 6 (UnityEngine.Vector2) IL_030F: ldloca.s 6 (UnityEngine.Vector2) IL_0311: ldfld System.Single UnityEngine.Vector2::x IL_0316: ldarg.0 IL_0317: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_031C: call System.Single UnityEngine.Rect::get_width() IL_0321: add IL_0322: ldarg.0 IL_0323: ldloc.s 10 (System.Single) IL_0325: ldloca.s 0 (UnityEngine.Vector3) IL_0327: ldfld System.Single UnityEngine.Vector3::x IL_032C: ldloca.s 0 (UnityEngine.Vector3) IL_032E: ldfld System.Single UnityEngine.Vector3::y IL_0333: call System.Single ColossalFramework.UI.UIGraph::NormalizeY(System.Single y, System.Single min, System.Single max) IL_0338: ldloc.1 IL_0339: ldarg.0 IL_033A: ldfld System.Single ColossalFramework.UI.UIGraph::HelpAxesWidth IL_033F: mul IL_0340: add IL_0341: newobj System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_0346: stloc.s 7 (UnityEngine.Vector2) IL_0348: ldarg.0 IL_0349: ldloc.s 6 (UnityEngine.Vector2) IL_034B: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0350: ldloc.s 4 (UnityEngine.Vector3) IL_0352: call static UnityEngine.Vector3 UnityEngine.Vector3::Scale(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0357: ldloc.3 IL_0358: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_035D: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector3 v) IL_0362: ldloc.s 7 (UnityEngine.Vector2) IL_0364: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0369: ldloc.s 4 (UnityEngine.Vector3) IL_036B: call static UnityEngine.Vector3 UnityEngine.Vector3::Scale(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0370: ldloc.3 IL_0371: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0376: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector3 v) IL_037B: ldarg.0 IL_037C: ldfld UnityEngine.Color32 ColossalFramework.UI.UIGraph::HelpAxesColor IL_0381: ldarg.1 IL_0382: ldarg.2 IL_0383: ldarg.3 IL_0384: ldarg.s 4 IL_0386: call System.Void ColossalFramework.UI.UIGraph::AddSolidQuad(UnityEngine.Vector2 corner1, UnityEngine.Vector2 corner2, UnityEngine.Color32 col, ColossalFramework.PoolList`1 vertices, ColossalFramework.PoolList`1 indices, ColossalFramework.PoolList`1 uvs, ColossalFramework.PoolList`1 colors) IL_038B: ldloc.s 10 (System.Single) IL_038D: ldloca.s 0 (UnityEngine.Vector3) IL_038F: ldfld System.Single UnityEngine.Vector3::z IL_0394: add IL_0395: stloc.s 10 (System.Single) IL_0397: Label3 IL_0397: ldloc.s 10 (System.Single) IL_0399: ldloca.s 0 (UnityEngine.Vector3) IL_039B: ldfld System.Single UnityEngine.Vector3::y IL_03A0: ble => Label4 IL_03A5: ldarg.0 IL_03A6: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_03AB: call System.Single UnityEngine.Rect::get_width() IL_03B0: ldarg.0 IL_03B1: call System.Int32 ColossalFramework.UI.UIGraph::GetMinDataPoints() IL_03B6: ldarg.0 IL_03B7: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_03BC: ldc.i4.0 IL_03BD: callvirt virtual ColossalFramework.UI.CurveSettings System.Collections.Generic.List`1::get_Item(System.Int32 index) IL_03C2: callvirt System.Single[] ColossalFramework.UI.CurveSettings::get_data() IL_03C7: ldlen IL_03C8: conv.i4 IL_03C9: call static System.Int32 System.Math::Max(System.Int32 val1, System.Int32 val2) IL_03CE: ldc.i4.1 IL_03CF: sub IL_03D0: conv.r4 IL_03D1: div IL_03D2: pop IL_03D3: ldloc.1 IL_03D4: ldarg.0 IL_03D5: call System.Single ColossalFramework.UI.UIComponent::get_width() IL_03DA: mul IL_03DB: ldc.r4 -0.5 IL_03E0: ldarg.0 IL_03E1: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_03E6: call System.Single UnityEngine.Rect::get_xMin() IL_03EB: add IL_03EC: mul IL_03ED: stloc.s 12 (System.Single) IL_03EF: ldloc.1 IL_03F0: ldarg.0 IL_03F1: call System.Single ColossalFramework.UI.UIComponent::get_width() IL_03F6: mul IL_03F7: ldc.r4 -0.5 IL_03FC: ldarg.0 IL_03FD: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_0402: call System.Single UnityEngine.Rect::get_xMax() IL_0407: add IL_0408: mul IL_0409: stloc.s 13 (System.Single) IL_040B: ldc.r4 64 IL_0410: ldloc.1 IL_0411: mul IL_0412: stloc.s 14 (System.Single) IL_0414: ldarg.0 IL_0415: call System.DateTime ColossalFramework.UI.UIGraph::get_StartTime() IL_041A: stloc.s 30 (System.DateTime) IL_041C: ldloca.s 30 (System.DateTime) IL_041E: call System.Int64 System.DateTime::get_Ticks() IL_0423: conv.r4 IL_0424: stloc.s 15 (System.Single) IL_0426: ldarg.0 IL_0427: call System.DateTime ColossalFramework.UI.UIGraph::GetVisibleEndTime() IL_042C: stloc.s 16 (System.DateTime) IL_042E: ldloca.s 16 (System.DateTime) IL_0430: call System.Int64 System.DateTime::get_Ticks() IL_0435: conv.r4 IL_0436: stloc.s 17 (System.Single) IL_0438: ldarg.0 IL_0439: call System.DateTime ColossalFramework.UI.UIGraph::get_StartTime() IL_043E: stloc.s 31 (System.DateTime) IL_0440: ldloca.s 31 (System.DateTime) IL_0442: ldc.i4.1 IL_0443: call System.DateTime System.DateTime::AddYears(System.Int32 value) IL_0448: stloc.s 18 (System.DateTime) IL_044A: ldloca.s 18 (System.DateTime) IL_044C: call System.Int64 System.DateTime::get_Ticks() IL_0451: ldarg.0 IL_0452: call System.DateTime ColossalFramework.UI.UIGraph::get_StartTime() IL_0457: stloc.s 32 (System.DateTime) IL_0459: ldloca.s 32 (System.DateTime) IL_045B: call System.Int64 System.DateTime::get_Ticks() IL_0460: sub IL_0461: stloc.s 19 (System.Int64) IL_0463: ldarg.0 IL_0464: call System.DateTime ColossalFramework.UI.UIGraph::get_EndTime() IL_0469: stloc.s 33 (System.DateTime) IL_046B: ldloca.s 33 (System.DateTime) IL_046D: call System.Int64 System.DateTime::get_Ticks() IL_0472: ldarg.0 IL_0473: call System.DateTime ColossalFramework.UI.UIGraph::get_StartTime() IL_0478: stloc.s 34 (System.DateTime) IL_047A: ldloca.s 34 (System.DateTime) IL_047C: call System.Int64 System.DateTime::get_Ticks() IL_0481: sub IL_0482: stloc.s 20 (System.Int64) IL_0484: ldloc.s 19 (System.Int64) IL_0486: conv.r8 IL_0487: ldloc.s 20 (System.Int64) IL_0489: conv.r8 IL_048A: div IL_048B: conv.r4 IL_048C: stloc.s 21 (System.Single) IL_048E: ldloc.s 12 (System.Single) IL_0490: ldloc.s 13 (System.Single) IL_0492: ldloc.s 21 (System.Single) IL_0494: call static System.Single UnityEngine.Mathf::Lerp(System.Single a, System.Single b, System.Single t) IL_0499: ldloc.s 12 (System.Single) IL_049B: sub IL_049C: stloc.s 22 (System.Single) IL_049E: ldloc.s 22 (System.Single) IL_04A0: conv.r8 IL_04A1: ldc.r8 0.0001 IL_04AA: ble.un => Label5 IL_04AF: ldloc.s 14 (System.Single) IL_04B1: ldloc.s 22 (System.Single) IL_04B3: div IL_04B4: call static System.Int32 UnityEngine.Mathf::CeilToInt(System.Single f) IL_04B9: stloc.s 23 (System.Int32) IL_04BB: br => Label6 IL_04C0: Label5 IL_04C0: ldc.i4 10000 IL_04C5: stloc.s 23 (System.Int32) IL_04C7: Label6 IL_04C7: ldarg.0 IL_04C8: call System.DateTime ColossalFramework.UI.UIGraph::get_StartTime() IL_04CD: stloc.s 35 (System.DateTime) IL_04CF: ldloca.s 35 (System.DateTime) IL_04D1: call System.Int32 System.DateTime::get_Year() IL_04D6: ldc.i4.1 IL_04D7: add IL_04D8: stloc.s 24 (System.Int32) IL_04DA: br => Label7 IL_04DF: Label8 IL_04DF: ldloca.s 25 (System.DateTime) IL_04E1: ldloc.s 24 (System.Int32) IL_04E3: ldc.i4.1 IL_04E4: ldc.i4.1 IL_04E5: call System.Void System.DateTime::.ctor(System.Int32 year, System.Int32 month, System.Int32 day) IL_04EA: ldloca.s 25 (System.DateTime) IL_04EC: call System.Int64 System.DateTime::get_Ticks() IL_04F1: conv.r4 IL_04F2: stloc.s 26 (System.Single) IL_04F4: ldloc.s 12 (System.Single) IL_04F6: ldloc.s 13 (System.Single) IL_04F8: ldloc.s 26 (System.Single) IL_04FA: ldloc.s 15 (System.Single) IL_04FC: sub IL_04FD: ldloc.s 17 (System.Single) IL_04FF: ldloc.s 15 (System.Single) IL_0501: sub IL_0502: div IL_0503: call static System.Single UnityEngine.Mathf::Lerp(System.Single a, System.Single b, System.Single t) IL_0508: stloc.s 27 (System.Single) IL_050A: ldloca.s 24 (System.Int32) IL_050C: call virtual System.String System.Int32::ToString() IL_0511: stloc.s 28 (System.String) IL_0513: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_0515: ldc.r4 1 IL_051A: callvirt System.Void ColossalFramework.UI.UIFontRenderer::set_textScale(System.Single value) IL_051F: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_0521: ldloc.s 27 (System.Single) IL_0523: ldarg.0 IL_0524: call System.Single ColossalFramework.UI.UIComponent::get_height() IL_0529: ldloc.1 IL_052A: mul IL_052B: ldc.r4 -0.95 IL_0530: mul IL_0531: ldc.r4 0 IL_0536: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_053B: callvirt System.Void ColossalFramework.UI.UIFontRenderer::set_vectorOffset(UnityEngine.Vector3 value) IL_0540: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_0542: ldloc.1 IL_0543: callvirt System.Void ColossalFramework.UI.UIFontRenderer::set_pixelRatio(System.Single value) IL_0548: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_054A: ldloc.2 IL_054B: callvirt System.Void ColossalFramework.UI.UIFontRenderer::set_maxSize(UnityEngine.Vector2 value) IL_0550: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_0552: ldc.i4.1 IL_0553: callvirt System.Void ColossalFramework.UI.UIFontRenderer::set_textAlign(ColossalFramework.UI.UIHorizontalAlignment value) IL_0558: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_055A: ldarg.0 IL_055B: ldfld UnityEngine.Color32 ColossalFramework.UI.UIGraph::TextColor IL_0560: callvirt System.Void ColossalFramework.UI.UIFontRenderer::set_defaultColor(UnityEngine.Color32 value) IL_0565: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_0567: ldloc.s 28 (System.String) IL_0569: ldarg.0 IL_056A: call ColossalFramework.UI.UIRenderData ColossalFramework.UI.UIGraph::get_textRenderData() IL_056F: callvirt abstract virtual System.Void ColossalFramework.UI.UIFontRenderer::Render(System.String text, ColossalFramework.UI.UIRenderData destination) IL_0574: ldc.r4 -0.5 IL_0579: ldarg.0 IL_057A: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_057F: call System.Single UnityEngine.Rect::get_xMin() IL_0584: add IL_0585: ldc.r4 -0.5 IL_058A: ldarg.0 IL_058B: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_0590: call System.Single UnityEngine.Rect::get_xMax() IL_0595: add IL_0596: ldloc.s 26 (System.Single) IL_0598: ldloc.s 15 (System.Single) IL_059A: sub IL_059B: ldloc.s 17 (System.Single) IL_059D: ldloc.s 15 (System.Single) IL_059F: sub IL_05A0: div IL_05A1: call static System.Single UnityEngine.Mathf::Lerp(System.Single a, System.Single b, System.Single t) IL_05A6: stloc.s 29 (System.Single) IL_05A8: ldloc.s 29 (System.Single) IL_05AA: ldloc.1 IL_05AB: ldarg.0 IL_05AC: ldfld System.Single ColossalFramework.UI.UIGraph::HelpAxesWidth IL_05B1: mul IL_05B2: ldloc.s 5 (System.Single) IL_05B4: mul IL_05B5: sub IL_05B6: ldc.r4 -0.5 IL_05BB: ldarg.0 IL_05BC: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_05C1: call System.Single UnityEngine.Rect::get_yMin() IL_05C6: add IL_05C7: newobj System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_05CC: stloc.s 6 (UnityEngine.Vector2) IL_05CE: ldloc.s 29 (System.Single) IL_05D0: ldloc.1 IL_05D1: ldarg.0 IL_05D2: ldfld System.Single ColossalFramework.UI.UIGraph::HelpAxesWidth IL_05D7: mul IL_05D8: ldloc.s 5 (System.Single) IL_05DA: mul IL_05DB: add IL_05DC: ldloca.s 6 (UnityEngine.Vector2) IL_05DE: ldfld System.Single UnityEngine.Vector2::y IL_05E3: ldarg.0 IL_05E4: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_05E9: call System.Single UnityEngine.Rect::get_height() IL_05EE: add IL_05EF: newobj System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_05F4: stloc.s 7 (UnityEngine.Vector2) IL_05F6: ldarg.0 IL_05F7: ldloc.s 6 (UnityEngine.Vector2) IL_05F9: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_05FE: ldloc.s 4 (UnityEngine.Vector3) IL_0600: call static UnityEngine.Vector3 UnityEngine.Vector3::Scale(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0605: ldloc.3 IL_0606: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_060B: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector3 v) IL_0610: ldloc.s 7 (UnityEngine.Vector2) IL_0612: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0617: ldloc.s 4 (UnityEngine.Vector3) IL_0619: call static UnityEngine.Vector3 UnityEngine.Vector3::Scale(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061E: ldloc.3 IL_061F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0624: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector3 v) IL_0629: ldarg.0 IL_062A: ldfld UnityEngine.Color32 ColossalFramework.UI.UIGraph::HelpAxesColor IL_062F: ldarg.1 IL_0630: ldarg.2 IL_0631: ldarg.3 IL_0632: ldarg.s 4 IL_0634: call System.Void ColossalFramework.UI.UIGraph::AddSolidQuad(UnityEngine.Vector2 corner1, UnityEngine.Vector2 corner2, UnityEngine.Color32 col, ColossalFramework.PoolList`1 vertices, ColossalFramework.PoolList`1 indices, ColossalFramework.PoolList`1 uvs, ColossalFramework.PoolList`1 colors) IL_0639: ldloc.s 24 (System.Int32) IL_063B: ldloc.s 23 (System.Int32) IL_063D: add IL_063E: stloc.s 24 (System.Int32) IL_0640: Label7 IL_0640: ldloc.s 24 (System.Int32) IL_0642: ldloca.s 16 (System.DateTime) IL_0644: call System.Int32 System.DateTime::get_Year() IL_0649: ble => Label8 IL_064E: leave => Label9 IL_0653: leave => (autogenerated) } // end try .finally { IL_0658: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_065A: brfalse => Label10 IL_065F: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_0661: callvirt abstract virtual System.Void System.IDisposable::Dispose() IL_0666: Label10 IL_0666: endfinally IL_0667: leave => (autogenerated) } // end handler IL_0668: // end original IL_0668: Label9 IL_0668: Label11 IL_0668: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: virtual System.Void WeatherManager::SimulationStepImpl(System.Int32 subStep) ### Replacement: static System.Void WeatherManager::WeatherManager.SimulationStepImpl_Patch0(WeatherManager this, System.Int32 subStep) IL_0000: Local var 0: SimulationManager IL_0000: Local var 1: System.Single IL_0000: Local var 2: System.Single IL_0000: Local var 3: ItemClass/Availability IL_0000: Local var 4: System.Single IL_0000: Local var 5: System.Int32 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Int32 IL_0000: Local var 8: System.Int32 IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Single IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Int32 IL_0000: Local var 13: System.Int32 IL_0000: Local var 14: System.Single IL_0000: Local var 15: System.Single IL_0000: Local var 16: System.Single IL_0000: Local var 17: System.Int32 IL_0000: Local var 18: System.UInt32 IL_0000: Local var 19: InstanceID IL_0000: Local var 20: System.Single IL_0000: Local var 21: System.Int32 IL_0000: // start original IL_0000: ldarg.1 IL_0001: brfalse => Label0 IL_0006: ldarg.1 IL_0007: ldc.i4 1000 IL_000C: beq => Label1 IL_0011: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0016: stloc.0 IL_0017: ldarg.0 IL_0018: ldfld System.Single WeatherManager::m_targetDirection IL_001D: ldarg.0 IL_001E: ldfld System.Single WeatherManager::m_windDirection IL_0023: call static System.Single UnityEngine.Mathf::DeltaAngle(System.Single current, System.Single target) IL_0028: ldc.r4 0.001 IL_002D: mul IL_002E: call static System.Single UnityEngine.Mathf::Abs(System.Single f) IL_0033: stloc.1 IL_0034: ldarg.0 IL_0035: ldarg.0 IL_0036: ldfld System.Single WeatherManager::m_directionSpeed IL_003B: ldc.r4 0.001 IL_0040: add IL_0041: ldloc.1 IL_0042: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0047: stfld System.Single WeatherManager::m_directionSpeed IL_004C: ldarg.0 IL_004D: ldarg.0 IL_004E: ldfld System.Single WeatherManager::m_windDirection IL_0053: ldarg.0 IL_0054: ldfld System.Single WeatherManager::m_targetDirection IL_0059: ldarg.0 IL_005A: ldfld System.Single WeatherManager::m_directionSpeed IL_005F: call static System.Single UnityEngine.Mathf::MoveTowardsAngle(System.Single current, System.Single target, System.Single maxDelta) IL_0064: stfld System.Single WeatherManager::m_windDirection IL_0069: ldarg.0 IL_006A: ldc.r4 0 IL_006F: ldarg.0 IL_0070: ldfld System.Single WeatherManager::m_windDirection IL_0075: call static System.Single UnityEngine.Mathf::DeltaAngle(System.Single current, System.Single target) IL_007A: stfld System.Single WeatherManager::m_windDirection IL_007F: ldloc.1 IL_0080: ldc.r4 0.0002 IL_0085: bge.un => Label2 IL_008A: ldarg.0 IL_008B: ldloc.0 IL_008C: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0091: ldc.i4 10000 IL_0096: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_009B: conv.r4 IL_009C: ldc.r4 0.036 IL_00A1: mul IL_00A2: stfld System.Single WeatherManager::m_targetDirection IL_00A7: Label2 IL_00A7: ldarg.0 IL_00A8: ldfld System.Boolean WeatherManager::m_enableWeather IL_00AD: brfalse => Label3 IL_00B2: ldc.r4 1 IL_00B7: br => Label4 IL_00BC: Label3 IL_00BC: ldc.r4 0 IL_00C1: Label4 IL_00C1: stloc.2 IL_00C2: ldarg.0 IL_00C3: ldfld System.Single WeatherManager::m_forceWeatherOn IL_00C8: ldc.r4 0 IL_00CD: beq => Label5 IL_00D2: ldarg.0 IL_00D3: ldc.r4 0 IL_00D8: ldarg.0 IL_00D9: ldfld System.Single WeatherManager::m_forceWeatherOn IL_00DE: ldc.r4 0.001 IL_00E3: sub IL_00E4: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00E9: stfld System.Single WeatherManager::m_forceWeatherOn IL_00EE: ldloc.2 IL_00EF: ldarg.0 IL_00F0: ldfld System.Single WeatherManager::m_forceWeatherOn IL_00F5: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00FA: stloc.2 IL_00FB: Label5 IL_00FB: ldloc.2 IL_00FC: ldc.r4 1 IL_0101: blt.un => Label6 IL_0106: call static ToolManager ColossalFramework.Singleton`1::get_instance() IL_010B: ldfld ToolController SimulationManagerBase`2::m_properties IL_0110: ldfld Availability ToolController::m_mode IL_0115: stloc.3 IL_0116: ldloc.3 IL_0117: ldc.i4.1 IL_0118: and IL_0119: brfalse => Label7 IL_011E: ldarg.0 IL_011F: ldfld System.Single WeatherManager::m_targetRain IL_0124: ldarg.0 IL_0125: ldfld System.Single WeatherManager::m_currentRain IL_012A: ble.un => Label8 IL_012F: ldarg.0 IL_0130: ldfld System.Single WeatherManager::m_currentRain IL_0135: stloc.s 4 (System.Single) IL_0137: ldarg.0 IL_0138: ldarg.0 IL_0139: ldfld System.Single WeatherManager::m_targetRain IL_013E: ldarg.0 IL_013F: ldfld System.Single WeatherManager::m_currentRain IL_0144: ldc.r4 0.0002 IL_0149: add IL_014A: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_014F: stfld System.Single WeatherManager::m_currentRain IL_0154: ldarg.0 IL_0155: ldfld System.Single WeatherManager::m_currentRain IL_015A: ldc.r4 0.2 IL_015F: blt.un => Label9 IL_0164: ldloc.s 4 (System.Single) IL_0166: ldc.r4 0.2 IL_016B: bge.un => Label10 IL_0170: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0175: ldfld SimulationMetaData SimulationManager::m_metaData IL_017A: ldfld MetaBool SimulationMetaData::m_disableAchievements IL_017F: ldc.i4.2 IL_0180: beq => Label11 IL_0185: ldarg.0 IL_0186: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_018B: ldfld System.Boolean WeatherProperties::m_rainIsSnow IL_0190: brfalse => Label12 IL_0195: call static ColossalFramework.Threading.Dispatcher ColossalFramework.Threading.ThreadHelper::get_dispatcher() IL_019A: ldsfld System.Action WeatherManager::<>f__am$cache0 IL_019F: brtrue => Label13 IL_01A4: ldnull IL_01A5: ldftn static System.Void WeatherManager::m__0() IL_01AB: newobj System.Void System.Action::.ctor(System.Object object, System.IntPtr method) IL_01B0: stsfld System.Action WeatherManager::<>f__am$cache0 IL_01B5: Label13 IL_01B5: ldsfld System.Action WeatherManager::<>f__am$cache0 IL_01BA: callvirt ColossalFramework.Threading.Task ColossalFramework.Threading.DispatcherBase::Dispatch(System.Action action) IL_01BF: pop IL_01C0: br => Label14 IL_01C5: Label12 IL_01C5: call static ColossalFramework.Threading.Dispatcher ColossalFramework.Threading.ThreadHelper::get_dispatcher() IL_01CA: ldsfld System.Action WeatherManager::<>f__am$cache1 IL_01CF: brtrue => Label15 IL_01D4: ldnull IL_01D5: ldftn static System.Void WeatherManager::m__1() IL_01DB: newobj System.Void System.Action::.ctor(System.Object object, System.IntPtr method) IL_01E0: stsfld System.Action WeatherManager::<>f__am$cache1 IL_01E5: Label15 IL_01E5: ldsfld System.Action WeatherManager::<>f__am$cache1 IL_01EA: callvirt ColossalFramework.Threading.Task ColossalFramework.Threading.DispatcherBase::Dispatch(System.Action action) IL_01EF: pop IL_01F0: Label9 IL_01F0: Label10 IL_01F0: Label11 IL_01F0: Label14 IL_01F0: br => Label16 IL_01F5: Label8 IL_01F5: ldarg.0 IL_01F6: ldfld System.Single WeatherManager::m_targetRain IL_01FB: ldarg.0 IL_01FC: ldfld System.Single WeatherManager::m_currentRain IL_0201: bge.un => Label17 IL_0206: ldarg.0 IL_0207: ldarg.0 IL_0208: ldfld System.Single WeatherManager::m_targetRain IL_020D: ldarg.0 IL_020E: ldfld System.Single WeatherManager::m_currentRain IL_0213: ldc.r4 0.0002 IL_0218: sub IL_0219: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_021E: stfld System.Single WeatherManager::m_currentRain IL_0223: br => Label18 IL_0228: Label17 IL_0228: ldloc.0 IL_0229: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_022E: ldc.i4 20000 IL_0233: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0238: brtrue => Label19 IL_023D: ldarg.0 IL_023E: ldfld System.Single WeatherManager::m_currentFog IL_0243: ldc.r4 0 IL_0248: bne.un => Label20 IL_024D: ldarg.0 IL_024E: ldfld System.Single WeatherManager::m_targetFog IL_0253: ldc.r4 0 IL_0258: bne.un => Label21 IL_025D: ldloc.0 IL_025E: ldfld System.Boolean SimulationManager::m_isNightTime IL_0263: brfalse => Label22 IL_0268: ldarg.0 IL_0269: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_026E: ldfld System.Int32 WeatherProperties::m_rainProbabilityNight IL_0273: br => Label23 IL_0278: Label22 IL_0278: ldarg.0 IL_0279: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_027E: ldfld System.Int32 WeatherProperties::m_rainProbabilityDay IL_0283: Label23 IL_0283: stloc.s 5 (System.Int32) IL_0285: ldloc.0 IL_0286: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_028B: ldc.i4.s 100 IL_028D: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0292: ldloc.s 5 (System.Int32) IL_0294: bge => Label24 IL_0299: ldarg.0 IL_029A: ldloc.0 IL_029B: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_02A0: ldc.i4 2500 IL_02A5: ldc.i4 10000 IL_02AA: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max) IL_02AF: conv.r4 IL_02B0: ldc.r4 0.0001 IL_02B5: mul IL_02B6: stfld System.Single WeatherManager::m_targetRain IL_02BB: br => Label25 IL_02C0: Label24 IL_02C0: ldarg.0 IL_02C1: ldc.r4 0 IL_02C6: stfld System.Single WeatherManager::m_targetRain IL_02CB: Label25 IL_02CB: br => Label26 IL_02D0: Label20 IL_02D0: Label21 IL_02D0: ldarg.0 IL_02D1: ldc.r4 0 IL_02D6: stfld System.Single WeatherManager::m_targetRain IL_02DB: Label16 IL_02DB: Label18 IL_02DB: Label19 IL_02DB: Label26 IL_02DB: ldarg.0 IL_02DC: ldfld System.Single WeatherManager::m_targetFog IL_02E1: ldarg.0 IL_02E2: ldfld System.Single WeatherManager::m_currentFog IL_02E7: ble.un => Label27 IL_02EC: ldarg.0 IL_02ED: ldfld System.Single WeatherManager::m_currentFog IL_02F2: stloc.s 6 (System.Single) IL_02F4: ldarg.0 IL_02F5: ldarg.0 IL_02F6: ldfld System.Single WeatherManager::m_targetFog IL_02FB: ldarg.0 IL_02FC: ldfld System.Single WeatherManager::m_currentFog IL_0301: ldc.r4 0.0002 IL_0306: add IL_0307: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_030C: stfld System.Single WeatherManager::m_currentFog IL_0311: ldarg.0 IL_0312: ldfld System.Single WeatherManager::m_currentFog IL_0317: ldc.r4 0.2 IL_031C: blt.un => Label28 IL_0321: ldloc.s 6 (System.Single) IL_0323: ldc.r4 0.2 IL_0328: bge.un => Label29 IL_032D: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0332: ldfld SimulationMetaData SimulationManager::m_metaData IL_0337: ldfld MetaBool SimulationMetaData::m_disableAchievements IL_033C: ldc.i4.2 IL_033D: beq => Label30 IL_0342: call static ColossalFramework.Threading.Dispatcher ColossalFramework.Threading.ThreadHelper::get_dispatcher() IL_0347: ldsfld System.Action WeatherManager::<>f__am$cache2 IL_034C: brtrue => Label31 IL_0351: ldnull IL_0352: ldftn static System.Void WeatherManager::m__2() IL_0358: newobj System.Void System.Action::.ctor(System.Object object, System.IntPtr method) IL_035D: stsfld System.Action WeatherManager::<>f__am$cache2 IL_0362: Label31 IL_0362: ldsfld System.Action WeatherManager::<>f__am$cache2 IL_0367: callvirt ColossalFramework.Threading.Task ColossalFramework.Threading.DispatcherBase::Dispatch(System.Action action) IL_036C: pop IL_036D: Label28 IL_036D: Label29 IL_036D: Label30 IL_036D: br => Label32 IL_0372: Label27 IL_0372: ldarg.0 IL_0373: ldfld System.Single WeatherManager::m_targetFog IL_0378: ldarg.0 IL_0379: ldfld System.Single WeatherManager::m_currentFog IL_037E: bge.un => Label33 IL_0383: ldarg.0 IL_0384: ldarg.0 IL_0385: ldfld System.Single WeatherManager::m_targetFog IL_038A: ldarg.0 IL_038B: ldfld System.Single WeatherManager::m_currentFog IL_0390: ldc.r4 0.0002 IL_0395: sub IL_0396: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_039B: stfld System.Single WeatherManager::m_currentFog IL_03A0: br => Label34 IL_03A5: Label33 IL_03A5: ldloc.0 IL_03A6: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_03AB: ldc.i4 20000 IL_03B0: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_03B5: brtrue => Label35 IL_03BA: ldarg.0 IL_03BB: ldfld System.Single WeatherManager::m_currentRain IL_03C0: ldc.r4 0 IL_03C5: bne.un => Label36 IL_03CA: ldarg.0 IL_03CB: ldfld System.Single WeatherManager::m_targetRain IL_03D0: ldc.r4 0 IL_03D5: bne.un => Label37 IL_03DA: ldloc.0 IL_03DB: ldfld System.Boolean SimulationManager::m_isNightTime IL_03E0: brfalse => Label38 IL_03E5: ldarg.0 IL_03E6: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_03EB: ldfld System.Int32 WeatherProperties::m_fogProbabilityNight IL_03F0: br => Label39 IL_03F5: Label38 IL_03F5: ldarg.0 IL_03F6: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_03FB: ldfld System.Int32 WeatherProperties::m_fogProbabilityDay IL_0400: Label39 IL_0400: stloc.s 7 (System.Int32) IL_0402: ldloc.0 IL_0403: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0408: ldc.i4.s 100 IL_040A: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_040F: ldloc.s 7 (System.Int32) IL_0411: bge => Label40 IL_0416: ldarg.0 IL_0417: ldloc.0 IL_0418: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_041D: ldc.i4 2500 IL_0422: ldc.i4 10000 IL_0427: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max) IL_042C: conv.r4 IL_042D: ldc.r4 0.0001 IL_0432: mul IL_0433: stfld System.Single WeatherManager::m_targetFog IL_0438: br => Label41 IL_043D: Label40 IL_043D: ldarg.0 IL_043E: ldc.r4 0 IL_0443: stfld System.Single WeatherManager::m_targetFog IL_0448: Label41 IL_0448: br => Label42 IL_044D: Label36 IL_044D: Label37 IL_044D: ldarg.0 IL_044E: ldc.r4 0 IL_0453: stfld System.Single WeatherManager::m_targetFog IL_0458: Label32 IL_0458: Label34 IL_0458: Label35 IL_0458: Label42 IL_0458: ldarg.0 IL_0459: ldfld System.Single WeatherManager::m_targetCloud IL_045E: ldarg.0 IL_045F: ldfld System.Single WeatherManager::m_currentCloud IL_0464: ble.un => Label43 IL_0469: ldarg.0 IL_046A: ldarg.0 IL_046B: ldfld System.Single WeatherManager::m_targetCloud IL_0470: ldarg.0 IL_0471: ldfld System.Single WeatherManager::m_currentCloud IL_0476: ldc.r4 0.0008 IL_047B: add IL_047C: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0481: stfld System.Single WeatherManager::m_currentCloud IL_0486: br => Label44 IL_048B: Label43 IL_048B: ldarg.0 IL_048C: ldfld System.Single WeatherManager::m_targetCloud IL_0491: ldarg.0 IL_0492: ldfld System.Single WeatherManager::m_currentCloud IL_0497: bge.un => Label45 IL_049C: ldarg.0 IL_049D: ldarg.0 IL_049E: ldfld System.Single WeatherManager::m_targetCloud IL_04A3: ldarg.0 IL_04A4: ldfld System.Single WeatherManager::m_currentCloud IL_04A9: ldc.r4 0.0008 IL_04AE: sub IL_04AF: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_04B4: stfld System.Single WeatherManager::m_currentCloud IL_04B9: br => Label46 IL_04BE: Label45 IL_04BE: ldloc.0 IL_04BF: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_04C4: ldc.i4 20000 IL_04C9: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_04CE: brtrue => Label47 IL_04D3: ldloc.0 IL_04D4: ldfld System.Boolean SimulationManager::m_isNightTime IL_04D9: brfalse => Label48 IL_04DE: ldarg.0 IL_04DF: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_04E4: ldfld System.Int32 WeatherProperties::m_cloudProbabilityNight IL_04E9: br => Label49 IL_04EE: Label48 IL_04EE: ldarg.0 IL_04EF: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_04F4: ldfld System.Int32 WeatherProperties::m_cloudProbabilityDay IL_04F9: Label49 IL_04F9: stloc.s 8 (System.Int32) IL_04FB: ldloc.0 IL_04FC: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0501: ldc.i4.s 100 IL_0503: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0508: ldloc.s 8 (System.Int32) IL_050A: bge => Label50 IL_050F: ldarg.0 IL_0510: ldloc.0 IL_0511: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0516: ldc.i4 2500 IL_051B: ldc.i4 10000 IL_0520: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max) IL_0525: conv.r4 IL_0526: ldc.r4 0.0001 IL_052B: mul IL_052C: stfld System.Single WeatherManager::m_targetCloud IL_0531: br => Label51 IL_0536: Label50 IL_0536: ldarg.0 IL_0537: ldc.r4 0 IL_053C: stfld System.Single WeatherManager::m_targetCloud IL_0541: Label7 IL_0541: Label44 IL_0541: Label46 IL_0541: Label47 IL_0541: Label51 IL_0541: br => Label52 IL_0546: Label6 IL_0546: ldarg.0 IL_0547: ldc.r4 0 IL_054C: stfld System.Single WeatherManager::m_targetRain IL_0551: ldarg.0 IL_0552: ldarg.0 IL_0553: ldfld System.Single WeatherManager::m_currentRain IL_0558: ldloc.2 IL_0559: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_055E: stfld System.Single WeatherManager::m_currentRain IL_0563: ldarg.0 IL_0564: ldc.r4 0 IL_0569: stfld System.Single WeatherManager::m_targetFog IL_056E: ldarg.0 IL_056F: ldarg.0 IL_0570: ldfld System.Single WeatherManager::m_currentFog IL_0575: ldloc.2 IL_0576: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_057B: stfld System.Single WeatherManager::m_currentFog IL_0580: ldarg.0 IL_0581: ldc.r4 0 IL_0586: stfld System.Single WeatherManager::m_targetCloud IL_058B: ldarg.0 IL_058C: ldarg.0 IL_058D: ldfld System.Single WeatherManager::m_currentCloud IL_0592: ldloc.2 IL_0593: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0598: stfld System.Single WeatherManager::m_currentCloud IL_059D: Label52 IL_059D: ldarg.0 IL_059E: ldfld System.Single WeatherManager::m_groundWetness IL_05A3: ldc.r4 0 IL_05A8: bne.un => Label53 IL_05AD: ldarg.0 IL_05AE: ldfld System.Single WeatherManager::m_currentRain IL_05B3: ldc.r4 0 IL_05B8: beq => Label54 IL_05BD: ldarg.0 IL_05BE: ldloc.0 IL_05BF: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_05C4: ldc.i4.s 100 IL_05C6: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_05CB: ldarg.0 IL_05CC: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_05D1: ldfld System.Int32 WeatherProperties::m_rainbowProbability IL_05D6: bge => Label55 IL_05DB: ldc.r4 1 IL_05E0: br => Label56 IL_05E5: Label55 IL_05E5: ldc.r4 0 IL_05EA: Label56 IL_05EA: stfld System.Single WeatherManager::m_targetRainbow IL_05EF: Label53 IL_05EF: Label54 IL_05EF: ldarg.0 IL_05F0: ldfld System.Single WeatherManager::m_groundWetness IL_05F5: stloc.s 9 (System.Single) IL_05F7: ldloc.s 9 (System.Single) IL_05F9: ldloc.s 9 (System.Single) IL_05FB: ldc.r4 0.00013 IL_0600: mul IL_0601: ldc.r4 1E-05 IL_0606: add IL_0607: sub IL_0608: stloc.s 9 (System.Single) IL_060A: ldloc.s 9 (System.Single) IL_060C: ldarg.0 IL_060D: ldfld System.Single WeatherManager::m_currentRain IL_0612: ldc.r4 0.25 IL_0617: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_061C: ldc.r4 0.00061 IL_0621: mul IL_0622: add IL_0623: stloc.s 9 (System.Single) IL_0625: ldarg.0 IL_0626: ldloc.s 9 (System.Single) IL_0628: call static System.Single UnityEngine.Mathf::Clamp01(System.Single value) IL_062D: stfld System.Single WeatherManager::m_groundWetness IL_0632: ldc.r4 1 IL_0637: ldarg.0 IL_0638: ldfld System.Single WeatherManager::m_currentRain IL_063D: ldc.r4 4 IL_0642: mul IL_0643: sub IL_0644: ldarg.0 IL_0645: ldfld System.Single WeatherManager::m_groundWetness IL_064A: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_064F: stloc.s 10 (System.Single) IL_0651: ldloc.s 10 (System.Single) IL_0653: ldarg.0 IL_0654: ldfld System.Single WeatherManager::m_targetRainbow IL_0659: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_065E: call static System.Single UnityEngine.Mathf::Clamp01(System.Single value) IL_0663: stloc.s 10 (System.Single) IL_0665: ldloc.s 10 (System.Single) IL_0667: ldarg.0 IL_0668: ldfld System.Single WeatherManager::m_currentRainbow IL_066D: ble.un => Label57 IL_0672: ldarg.0 IL_0673: ldloc.s 10 (System.Single) IL_0675: ldarg.0 IL_0676: ldfld System.Single WeatherManager::m_currentRainbow IL_067B: ldc.r4 0.0002 IL_0680: add IL_0681: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0686: stfld System.Single WeatherManager::m_currentRainbow IL_068B: br => Label58 IL_0690: Label57 IL_0690: ldloc.s 10 (System.Single) IL_0692: ldarg.0 IL_0693: ldfld System.Single WeatherManager::m_currentRainbow IL_0698: bge.un => Label59 IL_069D: ldarg.0 IL_069E: ldloc.s 10 (System.Single) IL_06A0: ldarg.0 IL_06A1: ldfld System.Single WeatherManager::m_currentRainbow IL_06A6: ldc.r4 0.0002 IL_06AB: sub IL_06AC: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_06B1: stfld System.Single WeatherManager::m_currentRainbow IL_06B6: Label58 IL_06B6: Label59 IL_06B6: ldarg.0 IL_06B7: ldfld System.Single WeatherManager::m_targetNorthernLights IL_06BC: ldarg.0 IL_06BD: ldfld System.Single WeatherManager::m_currentNorthernLights IL_06C2: ble.un => Label60 IL_06C7: ldarg.0 IL_06C8: ldarg.0 IL_06C9: ldfld System.Single WeatherManager::m_targetNorthernLights IL_06CE: ldarg.0 IL_06CF: ldfld System.Single WeatherManager::m_currentNorthernLights IL_06D4: ldc.r4 0.0002 IL_06D9: add IL_06DA: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_06DF: stfld System.Single WeatherManager::m_currentNorthernLights IL_06E4: br => Label61 IL_06E9: Label60 IL_06E9: ldarg.0 IL_06EA: ldfld System.Single WeatherManager::m_targetNorthernLights IL_06EF: ldarg.0 IL_06F0: ldfld System.Single WeatherManager::m_currentRain IL_06F5: bge.un => Label62 IL_06FA: ldarg.0 IL_06FB: ldarg.0 IL_06FC: ldfld System.Single WeatherManager::m_targetNorthernLights IL_0701: ldarg.0 IL_0702: ldfld System.Single WeatherManager::m_currentNorthernLights IL_0707: ldc.r4 0.0002 IL_070C: sub IL_070D: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0712: stfld System.Single WeatherManager::m_currentNorthernLights IL_0717: br => Label63 IL_071C: Label62 IL_071C: ldloc.0 IL_071D: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0722: ldc.i4 10000 IL_0727: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_072C: brtrue => Label64 IL_0731: ldloc.0 IL_0732: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0737: ldc.i4.s 100 IL_0739: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_073E: ldarg.0 IL_073F: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_0744: ldfld System.Int32 WeatherProperties::m_northernLightsProbability IL_0749: bge => Label65 IL_074E: ldarg.0 IL_074F: ldloc.0 IL_0750: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0755: ldc.i4 5000 IL_075A: ldc.i4 10000 IL_075F: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max) IL_0764: conv.r4 IL_0765: ldc.r4 0.0001 IL_076A: mul IL_076B: stfld System.Single WeatherManager::m_targetNorthernLights IL_0770: br => Label66 IL_0775: Label65 IL_0775: ldarg.0 IL_0776: ldc.r4 0 IL_077B: stfld System.Single WeatherManager::m_targetNorthernLights IL_0780: Label61 IL_0780: Label63 IL_0780: Label64 IL_0780: Label66 IL_0780: ldarg.0 IL_0781: ldfld System.Single WeatherManager::m_targetTemperature IL_0786: ldarg.0 IL_0787: ldfld System.Single WeatherManager::m_currentTemperature IL_078C: sub IL_078D: ldc.r4 0.001 IL_0792: mul IL_0793: call static System.Single UnityEngine.Mathf::Abs(System.Single f) IL_0798: stloc.s 11 (System.Single) IL_079A: ldarg.0 IL_079B: ldarg.0 IL_079C: ldfld System.Single WeatherManager::m_temperatureSpeed IL_07A1: ldc.r4 0.0001 IL_07A6: add IL_07A7: ldloc.s 11 (System.Single) IL_07A9: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_07AE: stfld System.Single WeatherManager::m_temperatureSpeed IL_07B3: ldarg.0 IL_07B4: ldarg.0 IL_07B5: ldfld System.Single WeatherManager::m_currentTemperature IL_07BA: ldarg.0 IL_07BB: ldfld System.Single WeatherManager::m_targetTemperature IL_07C0: ldarg.0 IL_07C1: ldfld System.Single WeatherManager::m_temperatureSpeed IL_07C6: call static System.Single UnityEngine.Mathf::MoveTowards(System.Single current, System.Single target, System.Single maxDelta) IL_07CB: stfld System.Single WeatherManager::m_currentTemperature IL_07D0: ldloc.0 IL_07D1: ldfld System.UInt32 SimulationManager::m_dayTimeFrame IL_07D6: stloc.s 12 (System.Int32) IL_07D8: ldsfld System.UInt32 SimulationManager::DAYTIME_FRAMES IL_07DD: stloc.s 13 (System.Int32) IL_07DF: ldloc.s 12 (System.Int32) IL_07E1: conv.r4 IL_07E2: ldloc.s 13 (System.Int32) IL_07E4: conv.r4 IL_07E5: div IL_07E6: ldc.r4 0.5 IL_07EB: sub IL_07EC: call static System.Single UnityEngine.Mathf::Abs(System.Single f) IL_07F1: ldc.r4 2 IL_07F6: mul IL_07F7: stloc.s 14 (System.Single) IL_07F9: ldarg.0 IL_07FA: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_07FF: ldfld System.Single WeatherProperties::m_minTemperatureDay IL_0804: ldarg.0 IL_0805: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_080A: ldfld System.Single WeatherProperties::m_minTemperatureNight IL_080F: ldloc.s 14 (System.Single) IL_0811: call static System.Single UnityEngine.Mathf::Lerp(System.Single a, System.Single b, System.Single t) IL_0816: stloc.s 15 (System.Single) IL_0818: ldarg.0 IL_0819: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_081E: ldfld System.Single WeatherProperties::m_maxTemperatureDay IL_0823: ldarg.0 IL_0824: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_0829: ldfld System.Single WeatherProperties::m_maxTemperatureNight IL_082E: ldloc.s 14 (System.Single) IL_0830: call static System.Single UnityEngine.Mathf::Lerp(System.Single a, System.Single b, System.Single t) IL_0835: stloc.s 16 (System.Single) IL_0837: ldloc.s 15 (System.Single) IL_0839: ldarg.0 IL_083A: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_083F: ldfld System.Single WeatherProperties::m_minTemperatureRain IL_0844: ldarg.0 IL_0845: ldfld System.Single WeatherManager::m_currentRain IL_084A: call static System.Single UnityEngine.Mathf::Lerp(System.Single a, System.Single b, System.Single t) IL_084F: stloc.s 15 (System.Single) IL_0851: ldloc.s 16 (System.Single) IL_0853: ldarg.0 IL_0854: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_0859: ldfld System.Single WeatherProperties::m_maxTemperatureRain IL_085E: ldarg.0 IL_085F: ldfld System.Single WeatherManager::m_currentRain IL_0864: call static System.Single UnityEngine.Mathf::Lerp(System.Single a, System.Single b, System.Single t) IL_0869: stloc.s 16 (System.Single) IL_086B: ldloc.s 15 (System.Single) IL_086D: ldarg.0 IL_086E: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_0873: ldfld System.Single WeatherProperties::m_minTemperatureFog IL_0878: ldarg.0 IL_0879: ldfld System.Single WeatherManager::m_currentFog IL_087E: call static System.Single UnityEngine.Mathf::Lerp(System.Single a, System.Single b, System.Single t) IL_0883: stloc.s 15 (System.Single) IL_0885: ldloc.s 16 (System.Single) IL_0887: ldarg.0 IL_0888: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_088D: ldfld System.Single WeatherProperties::m_maxTemperatureFog IL_0892: ldarg.0 IL_0893: ldfld System.Single WeatherManager::m_currentFog IL_0898: call static System.Single UnityEngine.Mathf::Lerp(System.Single a, System.Single b, System.Single t) IL_089D: stloc.s 16 (System.Single) IL_089F: ldloc.s 11 (System.Single) IL_08A1: ldc.r4 2E-05 IL_08A6: blt => Label67 IL_08AB: ldarg.0 IL_08AC: ldfld System.Single WeatherManager::m_targetTemperature IL_08B1: ldloc.s 15 (System.Single) IL_08B3: blt => Label68 IL_08B8: ldarg.0 IL_08B9: ldfld System.Single WeatherManager::m_targetTemperature IL_08BE: ldloc.s 16 (System.Single) IL_08C0: ble.un => Label69 IL_08C5: Label67 IL_08C5: Label68 IL_08C5: ldarg.0 IL_08C6: ldloc.0 IL_08C7: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_08CC: ldc.i4.0 IL_08CD: ldc.i4 10000 IL_08D2: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max) IL_08D7: conv.r4 IL_08D8: ldloc.s 16 (System.Single) IL_08DA: ldloc.s 15 (System.Single) IL_08DC: sub IL_08DD: mul IL_08DE: ldc.r4 10000 IL_08E3: div IL_08E4: ldloc.s 15 (System.Single) IL_08E6: add IL_08E7: stfld System.Single WeatherManager::m_targetTemperature IL_08EC: Label69 IL_08EC: ldc.i4.0 IL_08ED: stloc.s 17 (System.Int32) IL_08EF: br => Label70 IL_08F4: Label75 IL_08F4: ldarg.0 IL_08F5: ldfld FastList`1 WeatherManager::m_lightningQueue IL_08FA: ldfld LightningStrike[] FastList`1::m_buffer IL_08FF: ldloc.s 17 (System.Int32) IL_0901: ldelema WeatherManager+LightningStrike IL_0906: ldfld System.UInt32 LightningStrike::m_startFrame IL_090B: stloc.s 18 (System.UInt32) IL_090D: ldloc.s 18 (System.UInt32) IL_090F: brfalse => Label71 IL_0914: ldloc.s 18 (System.UInt32) IL_0916: ldloc.0 IL_0917: ldfld System.UInt32 SimulationManager::m_currentFrameIndex IL_091C: bne.un => Label72 IL_0921: ldarg.0 IL_0922: ldloc.s 17 (System.Int32) IL_0924: call System.Boolean WeatherManager::StrikeNow(System.Int32 lightningIndex) IL_0929: pop IL_092A: br => Label73 IL_092F: Label72 IL_092F: ldloc.s 18 (System.UInt32) IL_0931: ldc.i4.s 45 IL_0933: add IL_0934: ldloc.0 IL_0935: ldfld System.UInt32 SimulationManager::m_currentFrameIndex IL_093A: bge.un => Label74 IL_093F: ldsfld InstanceID InstanceID::Empty IL_0944: stloc.s 19 (InstanceID) IL_0946: ldloca.s 19 (InstanceID) IL_0948: ldloc.s 17 (System.Int32) IL_094A: conv.u1 IL_094B: call System.Void InstanceID::set_Lightning(System.Byte value) IL_0950: call static InstanceManager ColossalFramework.Singleton`1::get_instance() IL_0955: ldloc.s 19 (InstanceID) IL_0957: callvirt System.Void InstanceManager::ReleaseInstance(InstanceID id) IL_095C: ldarg.0 IL_095D: ldfld FastList`1 WeatherManager::m_lightningQueue IL_0962: ldfld LightningStrike[] FastList`1::m_buffer IL_0967: ldloc.s 17 (System.Int32) IL_0969: ldelema WeatherManager+LightningStrike IL_096E: ldc.i4.0 IL_096F: stfld System.UInt32 LightningStrike::m_startFrame IL_0974: Label71 IL_0974: Label73 IL_0974: Label74 IL_0974: ldloc.s 17 (System.Int32) IL_0976: ldc.i4.1 IL_0977: add IL_0978: stloc.s 17 (System.Int32) IL_097A: Label70 IL_097A: ldloc.s 17 (System.Int32) IL_097C: ldarg.0 IL_097D: ldfld FastList`1 WeatherManager::m_lightningQueue IL_0982: ldfld System.Int32 FastList`1::m_size IL_0987: blt => Label75 IL_098C: br => Label76 IL_0991: Label78 IL_0991: ldarg.0 IL_0992: ldfld FastList`1 WeatherManager::m_lightningQueue IL_0997: dup IL_0998: ldfld System.Int32 FastList`1::m_size IL_099D: ldc.i4.1 IL_099E: sub IL_099F: stfld System.Int32 FastList`1::m_size IL_09A4: Label76 IL_09A4: ldarg.0 IL_09A5: ldfld FastList`1 WeatherManager::m_lightningQueue IL_09AA: ldfld System.Int32 FastList`1::m_size IL_09AF: ldc.i4.0 IL_09B0: ble => Label77 IL_09B5: ldarg.0 IL_09B6: ldfld FastList`1 WeatherManager::m_lightningQueue IL_09BB: ldfld LightningStrike[] FastList`1::m_buffer IL_09C0: ldarg.0 IL_09C1: ldfld FastList`1 WeatherManager::m_lightningQueue IL_09C6: ldfld System.Int32 FastList`1::m_size IL_09CB: ldc.i4.1 IL_09CC: sub IL_09CD: ldelema WeatherManager+LightningStrike IL_09D2: ldfld System.UInt32 LightningStrike::m_startFrame IL_09D7: brfalse => Label78 IL_09DC: Label77 IL_09DC: ldarg.0 IL_09DD: ldfld System.Single WeatherManager::m_currentRain IL_09E2: ldc.r4 0.8 IL_09E7: ble.un => Label79 IL_09EC: ldarg.0 IL_09ED: ldfld FastList`1 WeatherManager::m_lightningQueue IL_09F2: ldfld System.Int32 FastList`1::m_size IL_09F7: brtrue => Label80 IL_09FC: ldarg.0 IL_09FD: ldfld System.Single WeatherManager::m_currentRain IL_0A02: ldc.r4 5 IL_0A07: mul IL_0A08: ldc.r4 4 IL_0A0D: sub IL_0A0E: stloc.s 20 (System.Single) IL_0A10: ldc.i4 5000 IL_0A15: ldloc.s 20 (System.Single) IL_0A17: ldc.r4 4000 IL_0A1C: mul IL_0A1D: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_0A22: sub IL_0A23: stloc.s 21 (System.Int32) IL_0A25: ldarg.0 IL_0A26: ldloc.0 IL_0A27: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0A2C: ldloc.s 21 (System.Int32) IL_0A2E: call System.UInt32 ColossalFramework.Math.Randomizer::UInt32(System.UInt32 range) IL_0A33: call System.Boolean WeatherManager::QueueLightningStrike(System.UInt32 delay) IL_0A38: pop IL_0A39: // end original IL_0A39: Label0 IL_0A39: Label1 IL_0A39: Label79 IL_0A39: Label80 IL_0A39: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: System.Void DistrictPark::SimulationStep(System.Byte parkID) ### Replacement: static System.Void DistrictPark::DistrictPark.SimulationStep_Patch0(DistrictPark& this, System.Byte parkID) IL_0000: Local var 0: DistrictPark/ParkType IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldfld ParkType DistrictPark::m_parkType IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: switch => Labels0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 IL_004D: br => Label16 IL_0052: Label0 IL_0052: ldarg.0 IL_0053: ldarg.1 IL_0054: call System.Void DistrictPark::BaseSimulationStep(System.Byte parkID) IL_0059: br => Label17 IL_005E: Label1 IL_005E: Label2 IL_005E: Label3 IL_005E: Label4 IL_005E: ldarg.0 IL_005F: ldarg.1 IL_0060: call System.Void DistrictPark::ParkSimulationStep(System.Byte parkID) IL_0065: ldarg.0 IL_0066: ldarg.1 IL_0067: call System.Void DistrictPark::CheckPolicies(System.Byte parkID) IL_006C: br => Label18 IL_0071: Label5 IL_0071: Label6 IL_0071: Label7 IL_0071: Label8 IL_0071: Label9 IL_0071: ldarg.0 IL_0072: ldarg.1 IL_0073: call System.Void DistrictPark::IndustrySimulationStep(System.Byte parkID) IL_0078: ldarg.0 IL_0079: ldarg.1 IL_007A: call System.Void DistrictPark::CheckPolicies(System.Byte parkID) IL_007F: br => Label19 IL_0084: Label10 IL_0084: Label11 IL_0084: Label12 IL_0084: Label13 IL_0084: ldarg.0 IL_0085: ldarg.1 IL_0086: call System.Void DistrictPark::CampusSimulationStep(System.Byte parkID) IL_008B: ldarg.0 IL_008C: ldarg.1 IL_008D: call System.Void DistrictPark::CheckPolicies(System.Byte parkID) IL_0092: br => Label20 IL_0097: Label14 IL_0097: ldarg.0 IL_0098: ldarg.1 IL_0099: call System.Void DistrictPark::AirportSimulationStep(System.Byte parkID) IL_009E: ldarg.0 IL_009F: ldarg.1 IL_00A0: call System.Void DistrictPark::CheckPolicies(System.Byte parkID) IL_00A5: br => Label21 IL_00AA: Label15 IL_00AA: ldarg.0 IL_00AB: ldarg.1 IL_00AC: call System.Void DistrictPark::PedestrianZoneSimulationStep(System.Byte parkID) IL_00B1: ldarg.0 IL_00B2: ldarg.1 IL_00B3: call System.Void DistrictPark::CheckPolicies(System.Byte parkID) IL_00B8: br => Label22 IL_00BD: // end original IL_00BD: Label16 IL_00BD: Label17 IL_00BD: Label18 IL_00BD: Label19 IL_00BD: Label20 IL_00BD: Label21 IL_00BD: Label22 IL_00BD: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: static System.Int32 OutsideConnectionAI::DummyTrafficProbability() ### Replacement: static System.Int32 OutsideConnectionAI::OutsideConnectionAI.DummyTrafficProbability_Patch0() IL_0000: Local var 0: System.UInt32 IL_0000: Local var 1: System.UInt32 IL_0000: // start original IL_0000: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_0005: ldfld System.Int32 VehicleManager::m_vehicleCount IL_000A: stloc.0 IL_000B: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0010: ldfld System.Int32 CitizenManager::m_instanceCount IL_0015: stloc.1 IL_0016: ldloc.0 IL_0017: ldc.i4 65536 IL_001C: mul IL_001D: ldloc.1 IL_001E: ldc.i4 16384 IL_0023: mul IL_0024: ble.un => Label0 IL_0029: ldc.i4 2048000 IL_002E: ldc.i4 16384 IL_0033: ldloc.0 IL_0034: ldc.i4.4 IL_0035: mul IL_0036: add IL_0037: div IL_0038: ldc.i4.s 25 IL_003A: sub IL_003B: br => Label1 IL_0040: Label0 IL_0040: ldc.i4 8192000 IL_0045: ldc.i4 65536 IL_004A: ldloc.1 IL_004B: ldc.i4.4 IL_004C: mul IL_004D: add IL_004E: div IL_004F: ldc.i4.s 25 IL_0051: sub IL_0052: // end original IL_0052: Label1 IL_0052: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: virtual BuildingInfo PrivateBuildingAI::GetUpgradeInfo(System.UInt16 buildingID, Building& data) ### Replacement: static BuildingInfo PrivateBuildingAI::PrivateBuildingAI.GetUpgradeInfo_Patch0(PrivateBuildingAI this, System.UInt16 buildingID, Building& data) IL_0000: Local var 0: ColossalFramework.Math.Randomizer IL_0000: Local var 1: System.Int32 IL_0000: Local var 2: ItemClass/Level IL_0000: Local var 3: DistrictManager IL_0000: Local var 4: System.Byte IL_0000: Local var 5: System.UInt16 IL_0000: // start original IL_0000: ldarg.2 IL_0001: ldfld System.Byte Building::m_level IL_0006: ldc.i4.4 IL_0007: bne.un => Label0 IL_000C: ldnull IL_000D: br => Label3 IL_0012: Label0 IL_0012: ldloca.s 0 (ColossalFramework.Math.Randomizer) IL_0014: ldarg.1 IL_0015: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_001A: ldc.i4.0 IL_001B: stloc.1 IL_001C: br => Label1 IL_0021: Label2 IL_0021: ldloca.s 0 (ColossalFramework.Math.Randomizer) IL_0023: ldc.i4 1000 IL_0028: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_002D: pop IL_002E: ldloc.1 IL_002F: ldc.i4.1 IL_0030: add IL_0031: stloc.1 IL_0032: Label1 IL_0032: ldloc.1 IL_0033: ldarg.2 IL_0034: ldfld System.Byte Building::m_level IL_0039: ble => Label2 IL_003E: ldarg.2 IL_003F: ldfld System.Byte Building::m_level IL_0044: ldc.i4.1 IL_0045: add IL_0046: stloc.2 IL_0047: call static DistrictManager ColossalFramework.Singleton`1::get_instance() IL_004C: stloc.3 IL_004D: ldloc.3 IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 Building::m_position IL_0054: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3 worldPos) IL_0059: stloc.s 4 (System.Byte) IL_005B: ldloc.3 IL_005C: ldfld Array8`1 DistrictManager::m_districts IL_0061: ldfld District[] Array8`1::m_buffer IL_0066: ldloc.s 4 (System.Byte) IL_0068: ldelema District IL_006D: ldfld System.UInt16 District::m_Style IL_0072: stloc.s 5 (System.UInt16) IL_0074: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0079: ldloca.s 0 (ColossalFramework.Math.Randomizer) IL_007B: ldarg.0 IL_007C: ldfld BuildingInfo BuildingAI::m_info IL_0081: ldfld ItemClass BuildingInfo::m_class IL_0086: ldfld Service ItemClass::m_service IL_008B: ldarg.0 IL_008C: ldfld BuildingInfo BuildingAI::m_info IL_0091: ldfld ItemClass BuildingInfo::m_class IL_0096: ldfld SubService ItemClass::m_subService IL_009B: ldloc.2 IL_009C: ldarg.2 IL_009D: call System.Int32 Building::get_Width() IL_00A2: ldarg.2 IL_00A3: call System.Int32 Building::get_Length() IL_00A8: ldarg.0 IL_00A9: ldfld BuildingInfo BuildingAI::m_info IL_00AE: ldfld ZoningMode BuildingInfo::m_zoningMode IL_00B3: ldloc.s 5 (System.UInt16) IL_00B5: callvirt BuildingInfo BuildingManager::GetRandomBuildingInfo(ColossalFramework.Math.Randomizer& r, Service service, SubService subService, Level level, System.Int32 width, System.Int32 length, ZoningMode zoningMode, System.Int32 style) IL_00BA: // end original IL_00BA: Label3 IL_00BA: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: System.Boolean BuildingManager::CreateBuilding(System.UInt16& building, ColossalFramework.Math.Randomizer& randomizer, BuildingInfo info, UnityEngine.Vector3 position, System.Single angle, System.Int32 length, System.UInt32 buildIndex) ### Replacement: static System.Boolean BuildingManager::BuildingManager.CreateBuilding_Patch0(BuildingManager this, System.UInt16& building, ColossalFramework.Math.Randomizer& randomizer, BuildingInfo info, UnityEngine.Vector3 position, System.Single angle, System.Int32 length, System.UInt32 buildIndex) IL_0000: Local var 0: System.UInt16 IL_0000: Local var 1: Building/Frame IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldfld Array16`1 BuildingManager::m_buildings IL_0006: ldloca.s 0 (System.UInt16) IL_0008: ldarg.2 IL_0009: callvirt System.Boolean Array16`1::CreateItem(System.UInt16& item, ColossalFramework.Math.Randomizer& r) IL_000E: brfalse => Label0 IL_0013: ldarg.s 6 IL_0015: ldc.i4.0 IL_0016: bgt => Label1 IL_001B: ldarg.3 IL_001C: ldfld System.Int32 BuildingInfo::m_cellLength IL_0021: starg.s 6 IL_0023: Label1 IL_0023: ldarg.1 IL_0024: ldloc.0 IL_0025: stind.i2 IL_0026: ldarg.0 IL_0027: ldfld Array16`1 BuildingManager::m_buildings IL_002C: ldfld Building[] Array16`1::m_buffer IL_0031: ldarg.1 IL_0032: ldind.u2 IL_0033: ldelema Building IL_0038: ldc.i4.1 IL_0039: stfld Flags Building::m_flags IL_003E: ldarg.0 IL_003F: ldfld Array16`1 BuildingManager::m_buildings IL_0044: ldfld Building[] Array16`1::m_buffer IL_0049: ldarg.1 IL_004A: ldind.u2 IL_004B: ldelema Building IL_0050: ldarg.3 IL_0051: call System.Void Building::set_Info(BuildingInfo value) IL_0056: ldarg.0 IL_0057: ldfld Array16`1 BuildingManager::m_buildings IL_005C: ldfld Building[] Array16`1::m_buffer IL_0061: ldarg.1 IL_0062: ldind.u2 IL_0063: ldelema Building IL_0068: ldarg.3 IL_0069: ldfld System.Int32 BuildingInfo::m_cellWidth IL_006E: call System.Void Building::set_Width(System.Int32 value) IL_0073: ldarg.0 IL_0074: ldfld Array16`1 BuildingManager::m_buildings IL_0079: ldfld Building[] Array16`1::m_buffer IL_007E: ldarg.1 IL_007F: ldind.u2 IL_0080: ldelema Building IL_0085: ldarg.s 6 IL_0087: call System.Void Building::set_Length(System.Int32 value) IL_008C: ldarg.0 IL_008D: ldfld Array16`1 BuildingManager::m_buildings IL_0092: ldfld Building[] Array16`1::m_buffer IL_0097: ldarg.1 IL_0098: ldind.u2 IL_0099: ldelema Building IL_009E: ldloca.s 1 (Building+Frame) IL_00A0: initobj Building+Frame IL_00A6: ldloc.1 IL_00A7: stfld Frame Building::m_frame0 IL_00AC: ldarg.0 IL_00AD: ldfld Array16`1 BuildingManager::m_buildings IL_00B2: ldfld Building[] Array16`1::m_buffer IL_00B7: ldarg.1 IL_00B8: ldind.u2 IL_00B9: ldelema Building IL_00BE: ldarg.s 7 IL_00C0: stfld System.UInt32 Building::m_buildIndex IL_00C5: ldarg.0 IL_00C6: ldfld Array16`1 BuildingManager::m_buildings IL_00CB: ldfld Building[] Array16`1::m_buffer IL_00D0: ldarg.1 IL_00D1: ldind.u2 IL_00D2: ldelema Building IL_00D7: ldarg.s 5 IL_00D9: stfld System.Single Building::m_angle IL_00DE: ldarg.0 IL_00DF: ldfld Array16`1 BuildingManager::m_buildings IL_00E4: ldfld Building[] Array16`1::m_buffer IL_00E9: ldarg.1 IL_00EA: ldind.u2 IL_00EB: ldelema Building IL_00F0: ldarg.s 4 IL_00F2: stfld UnityEngine.Vector3 Building::m_position IL_00F7: ldarg.0 IL_00F8: ldfld Array16`1 BuildingManager::m_buildings IL_00FD: ldfld Building[] Array16`1::m_buffer IL_0102: ldarg.1 IL_0103: ldind.u2 IL_0104: ldelema Building IL_0109: ldc.i4.0 IL_010A: stfld System.Byte Building::m_baseHeight IL_010F: ldarg.0 IL_0110: ldfld Array16`1 BuildingManager::m_buildings IL_0115: ldfld Building[] Array16`1::m_buffer IL_011A: ldarg.1 IL_011B: ldind.u2 IL_011C: ldelema Building IL_0121: ldc.i4.0 IL_0122: stfld System.UInt16 Building::m_ownVehicles IL_0127: ldarg.0 IL_0128: ldfld Array16`1 BuildingManager::m_buildings IL_012D: ldfld Building[] Array16`1::m_buffer IL_0132: ldarg.1 IL_0133: ldind.u2 IL_0134: ldelema Building IL_0139: ldc.i4.0 IL_013A: stfld System.UInt16 Building::m_guestVehicles IL_013F: ldarg.0 IL_0140: ldfld Array16`1 BuildingManager::m_buildings IL_0145: ldfld Building[] Array16`1::m_buffer IL_014A: ldarg.1 IL_014B: ldind.u2 IL_014C: ldelema Building IL_0151: ldc.i4.0 IL_0152: stfld System.UInt16 Building::m_sourceCitizens IL_0157: ldarg.0 IL_0158: ldfld Array16`1 BuildingManager::m_buildings IL_015D: ldfld Building[] Array16`1::m_buffer IL_0162: ldarg.1 IL_0163: ldind.u2 IL_0164: ldelema Building IL_0169: ldc.i4.0 IL_016A: stfld System.UInt16 Building::m_targetCitizens IL_016F: ldarg.0 IL_0170: ldfld Array16`1 BuildingManager::m_buildings IL_0175: ldfld Building[] Array16`1::m_buffer IL_017A: ldarg.1 IL_017B: ldind.u2 IL_017C: ldelema Building IL_0181: ldc.i4.0 IL_0182: stfld System.UInt32 Building::m_citizenUnits IL_0187: ldarg.0 IL_0188: ldfld Array16`1 BuildingManager::m_buildings IL_018D: ldfld Building[] Array16`1::m_buffer IL_0192: ldarg.1 IL_0193: ldind.u2 IL_0194: ldelema Building IL_0199: ldc.i4.0 IL_019A: stfld System.UInt16 Building::m_netNode IL_019F: ldarg.0 IL_01A0: ldfld Array16`1 BuildingManager::m_buildings IL_01A5: ldfld Building[] Array16`1::m_buffer IL_01AA: ldarg.1 IL_01AB: ldind.u2 IL_01AC: ldelema Building IL_01B1: ldc.i4.0 IL_01B2: stfld System.UInt16 Building::m_subBuilding IL_01B7: ldarg.0 IL_01B8: ldfld Array16`1 BuildingManager::m_buildings IL_01BD: ldfld Building[] Array16`1::m_buffer IL_01C2: ldarg.1 IL_01C3: ldind.u2 IL_01C4: ldelema Building IL_01C9: ldc.i4.0 IL_01CA: stfld System.UInt16 Building::m_parentBuilding IL_01CF: ldarg.0 IL_01D0: ldfld Array16`1 BuildingManager::m_buildings IL_01D5: ldfld Building[] Array16`1::m_buffer IL_01DA: ldarg.1 IL_01DB: ldind.u2 IL_01DC: ldelema Building IL_01E1: ldc.i4.0 IL_01E2: stfld System.UInt16 Building::m_waterSource IL_01E7: ldarg.0 IL_01E8: ldfld Array16`1 BuildingManager::m_buildings IL_01ED: ldfld Building[] Array16`1::m_buffer IL_01F2: ldarg.1 IL_01F3: ldind.u2 IL_01F4: ldelema Building IL_01F9: ldc.i4.0 IL_01FA: stfld System.UInt16 Building::m_eventIndex IL_01FF: ldarg.0 IL_0200: ldfld Array16`1 BuildingManager::m_buildings IL_0205: ldfld Building[] Array16`1::m_buffer IL_020A: ldarg.1 IL_020B: ldind.u2 IL_020C: ldelema Building IL_0211: ldc.i4.0 IL_0212: stfld System.UInt16 Building::m_nextGridBuilding IL_0217: ldarg.0 IL_0218: ldfld Array16`1 BuildingManager::m_buildings IL_021D: ldfld Building[] Array16`1::m_buffer IL_0222: ldarg.1 IL_0223: ldind.u2 IL_0224: ldelema Building IL_0229: ldc.i4.0 IL_022A: stfld System.UInt16 Building::m_nextGridBuilding2 IL_022F: ldarg.0 IL_0230: ldfld Array16`1 BuildingManager::m_buildings IL_0235: ldfld Building[] Array16`1::m_buffer IL_023A: ldarg.1 IL_023B: ldind.u2 IL_023C: ldelema Building IL_0241: ldc.i4.0 IL_0242: stfld System.UInt16 Building::m_electricityBuffer IL_0247: ldarg.0 IL_0248: ldfld Array16`1 BuildingManager::m_buildings IL_024D: ldfld Building[] Array16`1::m_buffer IL_0252: ldarg.1 IL_0253: ldind.u2 IL_0254: ldelema Building IL_0259: ldc.i4.0 IL_025A: stfld System.UInt16 Building::m_waterBuffer IL_025F: ldarg.0 IL_0260: ldfld Array16`1 BuildingManager::m_buildings IL_0265: ldfld Building[] Array16`1::m_buffer IL_026A: ldarg.1 IL_026B: ldind.u2 IL_026C: ldelema Building IL_0271: ldc.i4.0 IL_0272: stfld System.UInt16 Building::m_sewageBuffer IL_0277: ldarg.0 IL_0278: ldfld Array16`1 BuildingManager::m_buildings IL_027D: ldfld Building[] Array16`1::m_buffer IL_0282: ldarg.1 IL_0283: ldind.u2 IL_0284: ldelema Building IL_0289: ldc.i4.0 IL_028A: stfld System.UInt16 Building::m_heatingBuffer IL_028F: ldarg.0 IL_0290: ldfld Array16`1 BuildingManager::m_buildings IL_0295: ldfld Building[] Array16`1::m_buffer IL_029A: ldarg.1 IL_029B: ldind.u2 IL_029C: ldelema Building IL_02A1: ldc.i4.0 IL_02A2: stfld System.UInt16 Building::m_garbageBuffer IL_02A7: ldarg.0 IL_02A8: ldfld Array16`1 BuildingManager::m_buildings IL_02AD: ldfld Building[] Array16`1::m_buffer IL_02B2: ldarg.1 IL_02B3: ldind.u2 IL_02B4: ldelema Building IL_02B9: ldc.i4.0 IL_02BA: stfld System.UInt16 Building::m_crimeBuffer IL_02BF: ldarg.0 IL_02C0: ldfld Array16`1 BuildingManager::m_buildings IL_02C5: ldfld Building[] Array16`1::m_buffer IL_02CA: ldarg.1 IL_02CB: ldind.u2 IL_02CC: ldelema Building IL_02D1: ldc.i4.0 IL_02D2: stfld System.UInt16 Building::m_mailBuffer IL_02D7: ldarg.0 IL_02D8: ldfld Array16`1 BuildingManager::m_buildings IL_02DD: ldfld Building[] Array16`1::m_buffer IL_02E2: ldarg.1 IL_02E3: ldind.u2 IL_02E4: ldelema Building IL_02E9: ldc.i4.0 IL_02EA: stfld System.UInt16 Building::m_customBuffer1 IL_02EF: ldarg.0 IL_02F0: ldfld Array16`1 BuildingManager::m_buildings IL_02F5: ldfld Building[] Array16`1::m_buffer IL_02FA: ldarg.1 IL_02FB: ldind.u2 IL_02FC: ldelema Building IL_0301: ldc.i4.0 IL_0302: stfld System.UInt16 Building::m_customBuffer2 IL_0307: ldarg.0 IL_0308: ldfld Array16`1 BuildingManager::m_buildings IL_030D: ldfld Building[] Array16`1::m_buffer IL_0312: ldarg.1 IL_0313: ldind.u2 IL_0314: ldelema Building IL_0319: ldc.i4.0 IL_031A: stfld System.UInt16 Building::m_buildWaterHeight IL_031F: ldarg.0 IL_0320: ldfld Array16`1 BuildingManager::m_buildings IL_0325: ldfld Building[] Array16`1::m_buffer IL_032A: ldarg.1 IL_032B: ldind.u2 IL_032C: ldelema Building IL_0331: ldc.i4.0 IL_0332: stfld System.Byte Building::m_productionRate IL_0337: ldarg.0 IL_0338: ldfld Array16`1 BuildingManager::m_buildings IL_033D: ldfld Building[] Array16`1::m_buffer IL_0342: ldarg.1 IL_0343: ldind.u2 IL_0344: ldelema Building IL_0349: ldc.i4.0 IL_034A: stfld System.Byte Building::m_waterPollution IL_034F: ldarg.0 IL_0350: ldfld Array16`1 BuildingManager::m_buildings IL_0355: ldfld Building[] Array16`1::m_buffer IL_035A: ldarg.1 IL_035B: ldind.u2 IL_035C: ldelema Building IL_0361: ldc.i4.0 IL_0362: stfld System.Byte Building::m_fireIntensity IL_0367: ldarg.0 IL_0368: ldfld Array16`1 BuildingManager::m_buildings IL_036D: ldfld Building[] Array16`1::m_buffer IL_0372: ldarg.1 IL_0373: ldind.u2 IL_0374: ldelema Building IL_0379: call static ProblemStruct ProblemStruct::get_None() IL_037E: stfld ProblemStruct Building::m_problems IL_0383: ldarg.0 IL_0384: ldfld Array16`1 BuildingManager::m_buildings IL_0389: ldfld Building[] Array16`1::m_buffer IL_038E: ldarg.1 IL_038F: ldind.u2 IL_0390: ldelema Building IL_0395: ldc.i4.0 IL_0396: stfld System.Byte Building::m_lastFrame IL_039B: ldarg.0 IL_039C: ldfld Array16`1 BuildingManager::m_buildings IL_03A1: ldfld Building[] Array16`1::m_buffer IL_03A6: ldarg.1 IL_03A7: ldind.u2 IL_03A8: ldelema Building IL_03AD: ldc.i4.0 IL_03AE: stfld System.Byte Building::m_tempImport IL_03B3: ldarg.0 IL_03B4: ldfld Array16`1 BuildingManager::m_buildings IL_03B9: ldfld Building[] Array16`1::m_buffer IL_03BE: ldarg.1 IL_03BF: ldind.u2 IL_03C0: ldelema Building IL_03C5: ldc.i4.0 IL_03C6: stfld System.Byte Building::m_tempExport IL_03CB: ldarg.0 IL_03CC: ldfld Array16`1 BuildingManager::m_buildings IL_03D1: ldfld Building[] Array16`1::m_buffer IL_03D6: ldarg.1 IL_03D7: ldind.u2 IL_03D8: ldelema Building IL_03DD: ldc.i4.0 IL_03DE: stfld System.Byte Building::m_finalImport IL_03E3: ldarg.0 IL_03E4: ldfld Array16`1 BuildingManager::m_buildings IL_03E9: ldfld Building[] Array16`1::m_buffer IL_03EE: ldarg.1 IL_03EF: ldind.u2 IL_03F0: ldelema Building IL_03F5: ldc.i4.0 IL_03F6: stfld System.Byte Building::m_finalExport IL_03FB: ldarg.0 IL_03FC: ldfld Array16`1 BuildingManager::m_buildings IL_0401: ldfld Building[] Array16`1::m_buffer IL_0406: ldarg.1 IL_0407: ldind.u2 IL_0408: ldelema Building IL_040D: ldc.i4.0 IL_040E: stfld System.Byte Building::m_education1 IL_0413: ldarg.0 IL_0414: ldfld Array16`1 BuildingManager::m_buildings IL_0419: ldfld Building[] Array16`1::m_buffer IL_041E: ldarg.1 IL_041F: ldind.u2 IL_0420: ldelema Building IL_0425: ldc.i4.0 IL_0426: stfld System.Byte Building::m_education2 IL_042B: ldarg.0 IL_042C: ldfld Array16`1 BuildingManager::m_buildings IL_0431: ldfld Building[] Array16`1::m_buffer IL_0436: ldarg.1 IL_0437: ldind.u2 IL_0438: ldelema Building IL_043D: ldc.i4.0 IL_043E: stfld System.Byte Building::m_education3 IL_0443: ldarg.0 IL_0444: ldfld Array16`1 BuildingManager::m_buildings IL_0449: ldfld Building[] Array16`1::m_buffer IL_044E: ldarg.1 IL_044F: ldind.u2 IL_0450: ldelema Building IL_0455: ldc.i4.0 IL_0456: stfld System.Byte Building::m_children IL_045B: ldarg.0 IL_045C: ldfld Array16`1 BuildingManager::m_buildings IL_0461: ldfld Building[] Array16`1::m_buffer IL_0466: ldarg.1 IL_0467: ldind.u2 IL_0468: ldelema Building IL_046D: ldc.i4.0 IL_046E: stfld System.Byte Building::m_teens IL_0473: ldarg.0 IL_0474: ldfld Array16`1 BuildingManager::m_buildings IL_0479: ldfld Building[] Array16`1::m_buffer IL_047E: ldarg.1 IL_047F: ldind.u2 IL_0480: ldelema Building IL_0485: ldc.i4.0 IL_0486: stfld System.Byte Building::m_youngs IL_048B: ldarg.0 IL_048C: ldfld Array16`1 BuildingManager::m_buildings IL_0491: ldfld Building[] Array16`1::m_buffer IL_0496: ldarg.1 IL_0497: ldind.u2 IL_0498: ldelema Building IL_049D: ldc.i4.0 IL_049E: stfld System.Byte Building::m_adults IL_04A3: ldarg.0 IL_04A4: ldfld Array16`1 BuildingManager::m_buildings IL_04A9: ldfld Building[] Array16`1::m_buffer IL_04AE: ldarg.1 IL_04AF: ldind.u2 IL_04B0: ldelema Building IL_04B5: ldc.i4.0 IL_04B6: stfld System.Byte Building::m_seniors IL_04BB: ldarg.0 IL_04BC: ldfld Array16`1 BuildingManager::m_buildings IL_04C1: ldfld Building[] Array16`1::m_buffer IL_04C6: ldarg.1 IL_04C7: ldind.u2 IL_04C8: ldelema Building IL_04CD: ldc.i4.0 IL_04CE: stfld System.Byte Building::m_fireHazard IL_04D3: ldarg.0 IL_04D4: ldfld Array16`1 BuildingManager::m_buildings IL_04D9: ldfld Building[] Array16`1::m_buffer IL_04DE: ldarg.1 IL_04DF: ldind.u2 IL_04E0: ldelema Building IL_04E5: ldc.i4.0 IL_04E6: stfld System.Byte Building::m_electricityProblemTimer IL_04EB: ldarg.0 IL_04EC: ldfld Array16`1 BuildingManager::m_buildings IL_04F1: ldfld Building[] Array16`1::m_buffer IL_04F6: ldarg.1 IL_04F7: ldind.u2 IL_04F8: ldelema Building IL_04FD: ldc.i4.0 IL_04FE: stfld System.Byte Building::m_heatingProblemTimer IL_0503: ldarg.0 IL_0504: ldfld Array16`1 BuildingManager::m_buildings IL_0509: ldfld Building[] Array16`1::m_buffer IL_050E: ldarg.1 IL_050F: ldind.u2 IL_0510: ldelema Building IL_0515: ldc.i4.0 IL_0516: stfld System.Byte Building::m_waterProblemTimer IL_051B: ldarg.0 IL_051C: ldfld Array16`1 BuildingManager::m_buildings IL_0521: ldfld Building[] Array16`1::m_buffer IL_0526: ldarg.1 IL_0527: ldind.u2 IL_0528: ldelema Building IL_052D: ldc.i4.0 IL_052E: stfld System.Byte Building::m_workerProblemTimer IL_0533: ldarg.0 IL_0534: ldfld Array16`1 BuildingManager::m_buildings IL_0539: ldfld Building[] Array16`1::m_buffer IL_053E: ldarg.1 IL_053F: ldind.u2 IL_0540: ldelema Building IL_0545: ldc.i4.0 IL_0546: stfld System.Byte Building::m_incomingProblemTimer IL_054B: ldarg.0 IL_054C: ldfld Array16`1 BuildingManager::m_buildings IL_0551: ldfld Building[] Array16`1::m_buffer IL_0556: ldarg.1 IL_0557: ldind.u2 IL_0558: ldelema Building IL_055D: ldc.i4.0 IL_055E: stfld System.Byte Building::m_outgoingProblemTimer IL_0563: ldarg.0 IL_0564: ldfld Array16`1 BuildingManager::m_buildings IL_0569: ldfld Building[] Array16`1::m_buffer IL_056E: ldarg.1 IL_056F: ldind.u2 IL_0570: ldelema Building IL_0575: ldc.i4.0 IL_0576: stfld System.Byte Building::m_healthProblemTimer IL_057B: ldarg.0 IL_057C: ldfld Array16`1 BuildingManager::m_buildings IL_0581: ldfld Building[] Array16`1::m_buffer IL_0586: ldarg.1 IL_0587: ldind.u2 IL_0588: ldelema Building IL_058D: ldc.i4.0 IL_058E: stfld System.Byte Building::m_deathProblemTimer IL_0593: ldarg.0 IL_0594: ldfld Array16`1 BuildingManager::m_buildings IL_0599: ldfld Building[] Array16`1::m_buffer IL_059E: ldarg.1 IL_059F: ldind.u2 IL_05A0: ldelema Building IL_05A5: ldc.i4.0 IL_05A6: stfld System.Byte Building::m_serviceProblemTimer IL_05AB: ldarg.0 IL_05AC: ldfld Array16`1 BuildingManager::m_buildings IL_05B1: ldfld Building[] Array16`1::m_buffer IL_05B6: ldarg.1 IL_05B7: ldind.u2 IL_05B8: ldelema Building IL_05BD: ldc.i4.0 IL_05BE: stfld System.Byte Building::m_taxProblemTimer IL_05C3: ldarg.0 IL_05C4: ldfld Array16`1 BuildingManager::m_buildings IL_05C9: ldfld Building[] Array16`1::m_buffer IL_05CE: ldarg.1 IL_05CF: ldind.u2 IL_05D0: ldelema Building IL_05D5: ldc.i4.0 IL_05D6: stfld System.Byte Building::m_majorProblemTimer IL_05DB: ldarg.0 IL_05DC: ldfld Array16`1 BuildingManager::m_buildings IL_05E1: ldfld Building[] Array16`1::m_buffer IL_05E6: ldarg.1 IL_05E7: ldind.u2 IL_05E8: ldelema Building IL_05ED: ldc.i4.0 IL_05EE: stfld System.Byte Building::m_levelUpProgress IL_05F3: ldarg.0 IL_05F4: ldfld Array16`1 BuildingManager::m_buildings IL_05F9: ldfld Building[] Array16`1::m_buffer IL_05FE: ldarg.1 IL_05FF: ldind.u2 IL_0600: ldelema Building IL_0605: ldc.i4.0 IL_0606: stfld System.Byte Building::m_level IL_060B: ldarg.3 IL_060C: ldfld BuildingAI BuildingInfo::m_buildingAI IL_0611: ldarg.1 IL_0612: ldind.u2 IL_0613: ldarg.0 IL_0614: ldfld Array16`1 BuildingManager::m_buildings IL_0619: ldfld Building[] Array16`1::m_buffer IL_061E: ldarg.1 IL_061F: ldind.u2 IL_0620: ldelema Building IL_0625: callvirt virtual System.Void BuildingAI::CreateBuilding(System.UInt16 buildingID, Building& data) IL_062A: ldarg.0 IL_062B: ldfld Array16`1 BuildingManager::m_buildings IL_0630: ldfld Building[] Array16`1::m_buffer IL_0635: ldarg.1 IL_0636: ldind.u2 IL_0637: ldelema Building IL_063C: ldarg.0 IL_063D: ldfld Array16`1 BuildingManager::m_buildings IL_0642: ldfld Building[] Array16`1::m_buffer IL_0647: ldarg.1 IL_0648: ldind.u2 IL_0649: ldelema Building IL_064E: ldfld Frame Building::m_frame0 IL_0653: stfld Frame Building::m_frame1 IL_0658: ldarg.0 IL_0659: ldfld Array16`1 BuildingManager::m_buildings IL_065E: ldfld Building[] Array16`1::m_buffer IL_0663: ldarg.1 IL_0664: ldind.u2 IL_0665: ldelema Building IL_066A: ldarg.0 IL_066B: ldfld Array16`1 BuildingManager::m_buildings IL_0670: ldfld Building[] Array16`1::m_buffer IL_0675: ldarg.1 IL_0676: ldind.u2 IL_0677: ldelema Building IL_067C: ldfld Frame Building::m_frame0 IL_0681: stfld Frame Building::m_frame2 IL_0686: ldarg.0 IL_0687: ldfld Array16`1 BuildingManager::m_buildings IL_068C: ldfld Building[] Array16`1::m_buffer IL_0691: ldarg.1 IL_0692: ldind.u2 IL_0693: ldelema Building IL_0698: ldarg.0 IL_0699: ldfld Array16`1 BuildingManager::m_buildings IL_069E: ldfld Building[] Array16`1::m_buffer IL_06A3: ldarg.1 IL_06A4: ldind.u2 IL_06A5: ldelema Building IL_06AA: ldfld Frame Building::m_frame0 IL_06AF: stfld Frame Building::m_frame3 IL_06B4: ldarg.0 IL_06B5: ldarg.1 IL_06B6: ldind.u2 IL_06B7: ldarg.0 IL_06B8: ldfld Array16`1 BuildingManager::m_buildings IL_06BD: ldfld Building[] Array16`1::m_buffer IL_06C2: ldarg.1 IL_06C3: ldind.u2 IL_06C4: ldelema Building IL_06C9: call System.Void BuildingManager::InitializeBuilding(System.UInt16 building, Building& data) IL_06CE: ldarg.0 IL_06CF: ldarg.1 IL_06D0: ldind.u2 IL_06D1: call System.Void BuildingManager::UpdateBuilding(System.UInt16 building) IL_06D6: ldarg.0 IL_06D7: ldarg.1 IL_06D8: ldind.u2 IL_06D9: call System.Void BuildingManager::UpdateBuildingColors(System.UInt16 building) IL_06DE: ldarg.0 IL_06DF: ldarg.0 IL_06E0: ldfld Array16`1 BuildingManager::m_buildings IL_06E5: callvirt System.UInt32 Array16`1::ItemCount() IL_06EA: ldc.i4.1 IL_06EB: sub IL_06EC: stfld System.Int32 BuildingManager::m_buildingCount IL_06F1: ldarg.0 IL_06F2: ldfld BuildingCreatedHandler BuildingManager::EventBuildingCreated IL_06F7: brfalse => Label2 IL_06FC: ldarg.0 IL_06FD: ldfld BuildingCreatedHandler BuildingManager::EventBuildingCreated IL_0702: ldarg.1 IL_0703: ldind.u2 IL_0704: callvirt virtual System.Void BuildingCreatedHandler::Invoke(System.UInt16 building) IL_0709: Label2 IL_0709: ldc.i4.1 IL_070A: br => Label3 IL_070F: Label0 IL_070F: ldarg.1 IL_0710: ldc.i4.0 IL_0711: stind.i2 IL_0712: ldc.i4.0 IL_0713: // end original IL_0713: Label3 IL_0713: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: virtual System.Int32 PrivateBuildingAI::GetConstructionTime() ### Replacement: static System.Int32 PrivateBuildingAI::PrivateBuildingAI.GetConstructionTime_Patch1(PrivateBuildingAI this) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 0 (System.Int32) IL_0009: ldc.i4 0 IL_000E: stloc 1 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 1 (System.Boolean) IL_0017: ldloc 1 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldloca 0 (System.Int32) IL_0024: call static System.Boolean RealTime.GameConnection.Patches.PrivateBuildingAI_GetConstructionTime::Prefix(System.Int32& __result) IL_0029: stloc 1 (System.Boolean) IL_002D: Label1 IL_002D: nop IL_002E: ldloc 1 (System.Boolean) IL_0032: brfalse => Label0 IL_0037: // start original IL_0037: call static ToolManager ColossalFramework.Singleton`1::get_instance() IL_003C: ldfld ToolController SimulationManagerBase`2::m_properties IL_0041: ldfld Availability ToolController::m_mode IL_0046: ldc.i4.4 IL_0047: and IL_0048: brfalse => Label2 IL_004D: ldc.i4.0 IL_004E: br => Label3 IL_0053: Label2 IL_0053: ldarg.0 IL_0054: ldfld System.Int32 PrivateBuildingAI::m_constructionTime IL_0059: // end original IL_0059: Label3 IL_0059: stloc 0 (System.Int32) IL_005D: Label0 IL_005D: ldloc 0 (System.Int32) IL_0061: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: System.Int32 PrivateBuildingAI::HandleWorkers(System.UInt16 buildingID, Building& buildingData, BehaviourData& behaviour, System.Int32& aliveWorkerCount, System.Int32& totalWorkerCount, System.Int32& workPlaceCount) ### Replacement: static System.Int32 PrivateBuildingAI::PrivateBuildingAI.HandleWorkers_Patch2(PrivateBuildingAI this, System.UInt16 buildingID, Building& buildingData, BehaviourData& behaviour, System.Int32& aliveWorkerCount, System.Int32& totalWorkerCount, System.Int32& workPlaceCount) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: System.Int32 IL_0000: Local var 2: System.Int32 IL_0000: Local var 3: System.Int32 IL_0000: Local var 4: System.Int32 IL_0000: Local var 5: System.Int32 IL_0000: Local var 6: Notification/ProblemStruct IL_0000: Local var 7: System.Int32 IL_0000: Local var 8: System.Int32 IL_0000: Local var 9: System.Int32 IL_0000: Local var 10: System.Boolean IL_0000: Local var 11: System.Byte IL_0000: ldc.i4 0 IL_0005: stloc 9 (System.Int32) IL_0009: ldc.i4 0 IL_000E: stloc 10 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 10 (System.Boolean) IL_0017: ldc.i4 0 IL_001C: stloc 11 (System.Byte) IL_0020: ldloc 10 (System.Boolean) IL_0024: brfalse => Label1 IL_0029: ldarg 2 IL_002D: ldloca 11 (System.Byte) IL_0031: call static System.Boolean RealTime.GameConnection.Patches.PrivateBuildingAI_HandleWorkers::Prefix(Building& buildingData, System.Byte& __state) IL_0036: stloc 10 (System.Boolean) IL_003A: Label1 IL_003A: nop IL_003B: ldloc 10 (System.Boolean) IL_003F: brfalse => Label0 IL_0044: // start original IL_0044: ldc.i4.0 IL_0045: stloc.0 IL_0046: ldarg.0 IL_0047: ldarg.1 IL_0048: ldarg.2 IL_0049: ldarg.3 IL_004A: ldarg.s 4 IL_004C: ldarg.s 5 IL_004E: call System.Void CommonBuildingAI::GetWorkBehaviour(System.UInt16 buildingID, Building& buildingData, BehaviourData& behaviour, System.Int32& aliveCount, System.Int32& totalCount) IL_0053: ldarg.0 IL_0054: ldarg.2 IL_0055: ldfld System.Byte Building::m_level IL_005A: ldarg.1 IL_005B: newobj System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0060: ldarg.2 IL_0061: call System.Int32 Building::get_Width() IL_0066: ldarg.2 IL_0067: call System.Int32 Building::get_Length() IL_006C: ldloca.s 1 (System.Int32) IL_006E: ldloca.s 2 (System.Int32) IL_0070: ldloca.s 3 (System.Int32) IL_0072: ldloca.s 4 (System.Int32) IL_0074: callvirt virtual System.Void PrivateBuildingAI::CalculateWorkplaceCount(Level level, ColossalFramework.Math.Randomizer r, System.Int32 width, System.Int32 length, System.Int32& level0, System.Int32& level1, System.Int32& level2, System.Int32& level3) IL_0079: ldarg.0 IL_007A: ldarg.1 IL_007B: ldarg.2 IL_007C: ldloca.s 1 (System.Int32) IL_007E: ldloca.s 2 (System.Int32) IL_0080: ldloca.s 3 (System.Int32) IL_0082: ldloca.s 4 (System.Int32) IL_0084: call System.Void PrivateBuildingAI::AdjustWorkplaceCount(System.UInt16 buildingID, Building& data, System.Int32& workPlaceCount0, System.Int32& workPlaceCount1, System.Int32& workPlaceCount2, System.Int32& workPlaceCount3) IL_0089: ldarg.s 6 IL_008B: ldloc.1 IL_008C: ldloc.2 IL_008D: add IL_008E: ldloc.3 IL_008F: add IL_0090: ldloc.s 4 (System.Int32) IL_0092: add IL_0093: stind.i4 IL_0094: ldarg.2 IL_0095: ldfld System.Byte Building::m_fireIntensity IL_009A: brtrue => Label2 IL_009F: ldarg.0 IL_00A0: ldarg.1 IL_00A1: ldarg.2 IL_00A2: ldloc.1 IL_00A3: ldloc.2 IL_00A4: ldloc.3 IL_00A5: ldloc.s 4 (System.Int32) IL_00A7: ldarg.3 IL_00A8: ldarg.s 4 IL_00AA: ldind.i4 IL_00AB: ldarg.s 5 IL_00AD: ldind.i4 IL_00AE: call System.Void CommonBuildingAI::HandleWorkPlaces(System.UInt16 buildingID, Building& data, System.Int32 workPlaces0, System.Int32 workPlaces1, System.Int32 workPlaces2, System.Int32 workPlaces3, BehaviourData& behaviour, System.Int32 aliveWorkerCount, System.Int32 totalWorkerCount) IL_00B3: ldarg.s 4 IL_00B5: ldind.i4 IL_00B6: brfalse => Label3 IL_00BB: ldarg.s 6 IL_00BD: ldind.i4 IL_00BE: brfalse => Label4 IL_00C3: ldarg.3 IL_00C4: ldfld System.Int32 BehaviourData::m_efficiencyAccumulation IL_00C9: ldarg.s 4 IL_00CB: ldind.i4 IL_00CC: add IL_00CD: ldc.i4.1 IL_00CE: sub IL_00CF: ldarg.s 4 IL_00D1: ldind.i4 IL_00D2: div IL_00D3: stloc.s 5 (System.Int32) IL_00D5: ldc.i4.2 IL_00D6: ldloc.s 5 (System.Int32) IL_00D8: mul IL_00D9: ldc.i4 200 IL_00DE: ldloc.s 5 (System.Int32) IL_00E0: mul IL_00E1: ldc.i4.s 100 IL_00E3: ldarg.s 4 IL_00E5: ldind.i4 IL_00E6: mul IL_00E7: ldarg.s 6 IL_00E9: ldind.i4 IL_00EA: add IL_00EB: ldc.i4.1 IL_00EC: sub IL_00ED: ldarg.s 6 IL_00EF: ldind.i4 IL_00F0: div IL_00F1: ldc.i4.s 100 IL_00F3: add IL_00F4: div IL_00F5: sub IL_00F6: stloc.0 IL_00F7: ldarg.0 IL_00F8: ldarg.1 IL_00F9: ldloca.s 0 (System.Int32) IL_00FB: call System.Void PrivateBuildingAI::AdjustProductionRate(System.UInt16 buildingID, System.Int32& productionRate) IL_0100: Label2 IL_0100: Label3 IL_0100: Label4 IL_0100: ldarg.2 IL_0101: ldfld ProblemStruct Building::m_problems IL_0106: ldc.i4 12582912 IL_010B: conv.i8 IL_010C: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0111: call static ProblemStruct Notification::RemoveProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0116: stloc.s 6 (Notification+ProblemStruct) IL_0118: ldloc.s 4 (System.Int32) IL_011A: ldc.i4 300 IL_011F: mul IL_0120: ldloc.3 IL_0121: ldc.i4 200 IL_0126: mul IL_0127: add IL_0128: ldloc.2 IL_0129: ldc.i4.s 100 IL_012B: mul IL_012C: add IL_012D: ldarg.s 6 IL_012F: ldind.i4 IL_0130: ldc.i4.1 IL_0131: add IL_0132: div IL_0133: stloc.s 7 (System.Int32) IL_0135: ldarg.3 IL_0136: ldfld System.Int32 BehaviourData::m_educated3Count IL_013B: ldc.i4 300 IL_0140: mul IL_0141: ldarg.3 IL_0142: ldfld System.Int32 BehaviourData::m_educated2Count IL_0147: ldc.i4 200 IL_014C: mul IL_014D: add IL_014E: ldarg.3 IL_014F: ldfld System.Int32 BehaviourData::m_educated1Count IL_0154: ldc.i4.s 100 IL_0156: mul IL_0157: add IL_0158: ldarg.s 4 IL_015A: ldind.i4 IL_015B: ldc.i4.1 IL_015C: add IL_015D: div IL_015E: stloc.s 8 (System.Int32) IL_0160: ldarg.s 4 IL_0162: ldind.i4 IL_0163: ldarg.s 6 IL_0165: ldind.i4 IL_0166: ldc.i4.1 IL_0167: shr IL_0168: bge => Label5 IL_016D: ldarg.2 IL_016E: ldc.i4 255 IL_0173: ldarg.2 IL_0174: ldfld System.Byte Building::m_workerProblemTimer IL_0179: ldc.i4.1 IL_017A: add IL_017B: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0180: conv.u1 IL_0181: stfld System.Byte Building::m_workerProblemTimer IL_0186: ldarg.2 IL_0187: ldfld System.Byte Building::m_workerProblemTimer IL_018C: ldc.i4 128 IL_0191: blt => Label6 IL_0196: ldloc.s 6 (Notification+ProblemStruct) IL_0198: ldc.i8 4611686018431582208 IL_01A1: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_01A6: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_01AB: stloc.s 6 (Notification+ProblemStruct) IL_01AD: br => Label7 IL_01B2: Label6 IL_01B2: ldarg.2 IL_01B3: ldfld System.Byte Building::m_workerProblemTimer IL_01B8: ldc.i4.s 64 IL_01BA: blt => Label8 IL_01BF: ldloc.s 6 (Notification+ProblemStruct) IL_01C1: ldc.i4 4194304 IL_01C6: conv.i8 IL_01C7: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_01CC: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_01D1: stloc.s 6 (Notification+ProblemStruct) IL_01D3: Label7 IL_01D3: Label8 IL_01D3: br => Label9 IL_01D8: Label5 IL_01D8: ldloc.s 8 (System.Int32) IL_01DA: ldloc.s 7 (System.Int32) IL_01DC: ldc.i4.s 50 IL_01DE: sub IL_01DF: bge => Label10 IL_01E4: ldarg.2 IL_01E5: ldc.i4 255 IL_01EA: ldarg.2 IL_01EB: ldfld System.Byte Building::m_workerProblemTimer IL_01F0: ldc.i4.1 IL_01F1: add IL_01F2: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_01F7: conv.u1 IL_01F8: stfld System.Byte Building::m_workerProblemTimer IL_01FD: ldarg.2 IL_01FE: ldfld System.Byte Building::m_workerProblemTimer IL_0203: ldc.i4 128 IL_0208: blt => Label11 IL_020D: ldloc.s 6 (Notification+ProblemStruct) IL_020F: ldc.i8 4611686018435776512 IL_0218: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_021D: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0222: stloc.s 6 (Notification+ProblemStruct) IL_0224: br => Label12 IL_0229: Label11 IL_0229: ldarg.2 IL_022A: ldfld System.Byte Building::m_workerProblemTimer IL_022F: ldc.i4.s 64 IL_0231: blt => Label13 IL_0236: ldloc.s 6 (Notification+ProblemStruct) IL_0238: ldc.i4 8388608 IL_023D: conv.i8 IL_023E: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0243: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0248: stloc.s 6 (Notification+ProblemStruct) IL_024A: Label12 IL_024A: Label13 IL_024A: br => Label14 IL_024F: Label10 IL_024F: ldarg.2 IL_0250: ldc.i4.0 IL_0251: stfld System.Byte Building::m_workerProblemTimer IL_0256: Label9 IL_0256: Label14 IL_0256: ldarg.2 IL_0257: ldloc.s 6 (Notification+ProblemStruct) IL_0259: stfld ProblemStruct Building::m_problems IL_025E: ldc.i4.1 IL_025F: ldloc.0 IL_0260: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0265: // end original IL_0265: stloc 9 (System.Int32) IL_0269: Label0 IL_0269: ldarg 1 IL_026D: ldarg 2 IL_0271: ldloc 11 (System.Byte) IL_0275: call static System.Void RealTime.GameConnection.Patches.PrivateBuildingAI_HandleWorkers::Postfix(System.UInt16 buildingID, Building& buildingData, System.Byte __state) IL_027A: ldloc 9 (System.Int32) IL_027E: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: virtual System.Void CommercialBuildingAI::SimulationStepActive(System.UInt16 buildingID, Building& buildingData, Frame& frameData) ### Replacement: static System.Void CommercialBuildingAI::CommercialBuildingAI.SimulationStepActive_Patch2(CommercialBuildingAI this, System.UInt16 buildingID, Building& buildingData, Frame& frameData) IL_0000: Local var 0: DistrictManager IL_0000: Local var 1: System.Byte IL_0000: Local var 2: System.Byte IL_0000: Local var 3: DistrictPolicies/Services IL_0000: Local var 4: DistrictPolicies/Taxation IL_0000: Local var 5: DistrictPolicies/CityPlanning IL_0000: Local var 6: Citizen/BehaviourData IL_0000: Local var 7: System.Int32 IL_0000: Local var 8: System.Int32 IL_0000: Local var 9: System.Int32 IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Int32 IL_0000: Local var 12: System.Int32 IL_0000: Local var 13: System.Int32 IL_0000: Local var 14: System.Int32 IL_0000: Local var 15: System.Int32 IL_0000: Local var 16: System.Int32 IL_0000: Local var 17: System.Int32 IL_0000: Local var 18: System.Int32 IL_0000: Local var 19: System.Int32 IL_0000: Local var 20: System.Int32 IL_0000: Local var 21: TransferManager/TransferReason IL_0000: Local var 22: TransferManager/TransferReason IL_0000: Local var 23: System.Int32 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Int32 IL_0000: Local var 26: System.Int32 IL_0000: Local var 27: System.Int32 IL_0000: Local var 28: System.Int32 IL_0000: Local var 29: System.Int32 IL_0000: Local var 30: System.Int32 IL_0000: Local var 31: System.Int32 IL_0000: Local var 32: System.Int32 IL_0000: Local var 33: System.Int32 IL_0000: Local var 34: System.Int32 IL_0000: Local var 35: System.Int32 IL_0000: Local var 36: System.Int32 IL_0000: Local var 37: System.Int32 IL_0000: Local var 38: System.Int32 IL_0000: Local var 39: System.Int32 IL_0000: Local var 40: UnityEngine.Vector3 IL_0000: Local var 41: System.Int32 IL_0000: Local var 42: System.Int32 IL_0000: Local var 43: System.Int32 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Int32 IL_0000: Local var 46: System.Int32 IL_0000: Local var 47: System.Single IL_0000: Local var 48: System.Int32 IL_0000: Local var 49: System.Int32 IL_0000: Local var 50: Notification/ProblemStruct IL_0000: Local var 51: System.Int32 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Int32 IL_0000: Local var 56: System.Int32 IL_0000: Local var 57: System.Int32 IL_0000: Local var 58: System.Int32 IL_0000: Local var 59: System.Int32 IL_0000: Local var 60: System.Int32 IL_0000: Local var 61: System.Int32 IL_0000: Local var 62: System.Int32 IL_0000: Local var 63: SimulationManager IL_0000: Local var 64: System.UInt32 IL_0000: Local var 65: Notification/ProblemStruct IL_0000: Local var 66: System.Int32 IL_0000: Local var 67: TransferManager/TransferOffer IL_0000: Local var 68: System.Int32 IL_0000: Local var 69: TransferManager/TransferOffer IL_0000: Local var 70: System.Boolean IL_0000: Local var 71: System.Byte IL_0000: ldc.i4 0 IL_0005: stloc 70 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 70 (System.Boolean) IL_000E: ldc.i4 0 IL_0013: stloc 71 (System.Byte) IL_0017: ldloc 70 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldarg 2 IL_0024: ldloca 71 (System.Byte) IL_0028: call static System.Boolean RealTime.GameConnection.Patches.CommercialBuildingAI_SimulationStepActive::Prefix(Building& buildingData, System.Byte& __state) IL_002D: stloc 70 (System.Boolean) IL_0031: Label1 IL_0031: nop IL_0032: ldloc 70 (System.Boolean) IL_0036: brfalse => Label0 IL_003B: // start original IL_003B: call static DistrictManager ColossalFramework.Singleton`1::get_instance() IL_0040: stloc.0 IL_0041: ldloc.0 IL_0042: ldarg.2 IL_0043: ldfld UnityEngine.Vector3 Building::m_position IL_0048: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3 worldPos) IL_004D: stloc.1 IL_004E: ldloc.0 IL_004F: ldarg.2 IL_0050: ldfld UnityEngine.Vector3 Building::m_position IL_0055: callvirt System.Byte DistrictManager::GetPark(UnityEngine.Vector3 worldPos) IL_005A: stloc.2 IL_005B: ldloc.0 IL_005C: ldfld Array8`1 DistrictManager::m_districts IL_0061: ldfld District[] Array8`1::m_buffer IL_0066: ldloc.1 IL_0067: ldelema District IL_006C: ldfld Services District::m_servicePolicies IL_0071: stloc.3 IL_0072: ldloc.0 IL_0073: ldfld Array8`1 DistrictManager::m_districts IL_0078: ldfld District[] Array8`1::m_buffer IL_007D: ldloc.1 IL_007E: ldelema District IL_0083: ldfld Taxation District::m_taxationPolicies IL_0088: stloc.s 4 (DistrictPolicies+Taxation) IL_008A: ldloc.0 IL_008B: ldfld Array8`1 DistrictManager::m_districts IL_0090: ldfld District[] Array8`1::m_buffer IL_0095: ldloc.1 IL_0096: ldelema District IL_009B: ldfld CityPlanning District::m_cityPlanningPolicies IL_00A0: stloc.s 5 (DistrictPolicies+CityPlanning) IL_00A2: ldloc.0 IL_00A3: ldfld Array8`1 DistrictManager::m_districts IL_00A8: ldfld District[] Array8`1::m_buffer IL_00AD: ldloc.1 IL_00AE: ldelema District IL_00B3: dup IL_00B4: ldfld Services District::m_servicePoliciesEffect IL_00B9: ldloc.3 IL_00BA: ldc.i4 8417575 IL_00BF: and IL_00C0: or IL_00C1: stfld Services District::m_servicePoliciesEffect IL_00C6: ldarg.0 IL_00C7: ldfld BuildingInfo BuildingAI::m_info IL_00CC: ldfld ItemClass BuildingInfo::m_class IL_00D1: callvirt System.Boolean ItemClass::get_isCommercialLowGeneric() IL_00D6: brfalse => Label2 IL_00DB: ldloc.s 4 (DistrictPolicies+Taxation) IL_00DD: ldc.i4 132 IL_00E2: and IL_00E3: ldc.i4 132 IL_00E8: beq => Label3 IL_00ED: ldloc.0 IL_00EE: ldfld Array8`1 DistrictManager::m_districts IL_00F3: ldfld District[] Array8`1::m_buffer IL_00F8: ldloc.1 IL_00F9: ldelema District IL_00FE: dup IL_00FF: ldfld Taxation District::m_taxationPoliciesEffect IL_0104: ldloc.s 4 (DistrictPolicies+Taxation) IL_0106: ldc.i4 132 IL_010B: and IL_010C: or IL_010D: stfld Taxation District::m_taxationPoliciesEffect IL_0112: Label3 IL_0112: ldloc.0 IL_0113: ldfld Array8`1 DistrictManager::m_districts IL_0118: ldfld District[] Array8`1::m_buffer IL_011D: ldloc.1 IL_011E: ldelema District IL_0123: dup IL_0124: ldfld CityPlanning District::m_cityPlanningPoliciesEffect IL_0129: ldloc.s 5 (DistrictPolicies+CityPlanning) IL_012B: ldc.i4 4097 IL_0130: and IL_0131: or IL_0132: stfld CityPlanning District::m_cityPlanningPoliciesEffect IL_0137: br => Label4 IL_013C: Label2 IL_013C: ldarg.0 IL_013D: ldfld BuildingInfo BuildingAI::m_info IL_0142: ldfld ItemClass BuildingInfo::m_class IL_0147: callvirt System.Boolean ItemClass::get_isCommercialHighGenegic() IL_014C: brtrue => Label5 IL_0151: ldarg.0 IL_0152: ldfld BuildingInfo BuildingAI::m_info IL_0157: ldfld ItemClass BuildingInfo::m_class IL_015C: callvirt System.Boolean ItemClass::get_isCommercialWallToWall() IL_0161: brfalse => Label6 IL_0166: Label5 IL_0166: ldloc.s 4 (DistrictPolicies+Taxation) IL_0168: ldc.i4 264 IL_016D: and IL_016E: ldc.i4 264 IL_0173: beq => Label7 IL_0178: ldloc.0 IL_0179: ldfld Array8`1 DistrictManager::m_districts IL_017E: ldfld District[] Array8`1::m_buffer IL_0183: ldloc.1 IL_0184: ldelema District IL_0189: dup IL_018A: ldfld Taxation District::m_taxationPoliciesEffect IL_018F: ldloc.s 4 (DistrictPolicies+Taxation) IL_0191: ldc.i4 264 IL_0196: and IL_0197: or IL_0198: stfld Taxation District::m_taxationPoliciesEffect IL_019D: Label7 IL_019D: ldloc.0 IL_019E: ldfld Array8`1 DistrictManager::m_districts IL_01A3: ldfld District[] Array8`1::m_buffer IL_01A8: ldloc.1 IL_01A9: ldelema District IL_01AE: dup IL_01AF: ldfld CityPlanning District::m_cityPlanningPoliciesEffect IL_01B4: ldloc.s 5 (DistrictPolicies+CityPlanning) IL_01B6: ldc.i4 4098 IL_01BB: and IL_01BC: or IL_01BD: stfld CityPlanning District::m_cityPlanningPoliciesEffect IL_01C2: br => Label8 IL_01C7: Label6 IL_01C7: ldarg.0 IL_01C8: ldfld BuildingInfo BuildingAI::m_info IL_01CD: ldfld ItemClass BuildingInfo::m_class IL_01D2: callvirt System.Boolean ItemClass::get_isCommercialLeisure() IL_01D7: brfalse => Label9 IL_01DC: ldloc.0 IL_01DD: ldfld Array8`1 DistrictManager::m_districts IL_01E2: ldfld District[] Array8`1::m_buffer IL_01E7: ldloc.1 IL_01E8: ldelema District IL_01ED: dup IL_01EE: ldfld Taxation District::m_taxationPoliciesEffect IL_01F3: ldloc.s 4 (DistrictPolicies+Taxation) IL_01F5: ldc.i4 1024 IL_01FA: and IL_01FB: or IL_01FC: stfld Taxation District::m_taxationPoliciesEffect IL_0201: ldloc.0 IL_0202: ldfld Array8`1 DistrictManager::m_districts IL_0207: ldfld District[] Array8`1::m_buffer IL_020C: ldloc.1 IL_020D: ldelema District IL_0212: dup IL_0213: ldfld CityPlanning District::m_cityPlanningPoliciesEffect IL_0218: ldloc.s 5 (DistrictPolicies+CityPlanning) IL_021A: ldc.i4 4352 IL_021F: and IL_0220: or IL_0221: stfld CityPlanning District::m_cityPlanningPoliciesEffect IL_0226: br => Label10 IL_022B: Label9 IL_022B: ldarg.0 IL_022C: ldfld BuildingInfo BuildingAI::m_info IL_0231: ldfld ItemClass BuildingInfo::m_class IL_0236: callvirt System.Boolean ItemClass::get_isCommercialTourist() IL_023B: brfalse => Label11 IL_0240: ldloc.0 IL_0241: ldfld Array8`1 DistrictManager::m_districts IL_0246: ldfld District[] Array8`1::m_buffer IL_024B: ldloc.1 IL_024C: ldelema District IL_0251: dup IL_0252: ldfld CityPlanning District::m_cityPlanningPoliciesEffect IL_0257: ldloc.s 5 (DistrictPolicies+CityPlanning) IL_0259: ldc.i4 4096 IL_025E: and IL_025F: or IL_0260: stfld CityPlanning District::m_cityPlanningPoliciesEffect IL_0265: br => Label12 IL_026A: Label11 IL_026A: ldarg.0 IL_026B: ldfld BuildingInfo BuildingAI::m_info IL_0270: ldfld ItemClass BuildingInfo::m_class IL_0275: callvirt System.Boolean ItemClass::get_isCommercialEco() IL_027A: brfalse => Label13 IL_027F: ldloc.0 IL_0280: ldfld Array8`1 DistrictManager::m_districts IL_0285: ldfld District[] Array8`1::m_buffer IL_028A: ldloc.1 IL_028B: ldelema District IL_0290: dup IL_0291: ldfld CityPlanning District::m_cityPlanningPoliciesEffect IL_0296: ldloc.s 5 (DistrictPolicies+CityPlanning) IL_0298: ldc.i4 4096 IL_029D: and IL_029E: or IL_029F: stfld CityPlanning District::m_cityPlanningPoliciesEffect IL_02A4: Label4 IL_02A4: Label8 IL_02A4: Label10 IL_02A4: Label12 IL_02A4: Label13 IL_02A4: ldloca.s 6 (Citizen+BehaviourData) IL_02A6: initobj Citizen+BehaviourData IL_02AC: ldc.i4.0 IL_02AD: stloc.s 7 (System.Int32) IL_02AF: ldc.i4.0 IL_02B0: stloc.s 8 (System.Int32) IL_02B2: ldc.i4.0 IL_02B3: stloc.s 9 (System.Int32) IL_02B5: ldarg.0 IL_02B6: ldarg.1 IL_02B7: ldarg.2 IL_02B8: ldloca.s 6 (Citizen+BehaviourData) IL_02BA: ldloca.s 7 (System.Int32) IL_02BC: ldloca.s 8 (System.Int32) IL_02BE: ldloca.s 9 (System.Int32) IL_02C0: call System.Int32 PrivateBuildingAI::HandleWorkers(System.UInt16 buildingID, Building& buildingData, BehaviourData& behaviour, System.Int32& aliveWorkerCount, System.Int32& totalWorkerCount, System.Int32& workPlaceCount) IL_02C5: stloc.s 10 (System.Int32) IL_02C7: ldarg.2 IL_02C8: ldfld Flags Building::m_flags IL_02CD: ldc.i4 32768 IL_02D2: and IL_02D3: brfalse => Label14 IL_02D8: ldc.i4.0 IL_02D9: stloc.s 10 (System.Int32) IL_02DB: Label14 IL_02DB: ldarg.2 IL_02DC: call System.Int32 Building::get_Width() IL_02E1: stloc.s 11 (System.Int32) IL_02E3: ldarg.2 IL_02E4: call System.Int32 Building::get_Length() IL_02E9: stloc.s 12 (System.Int32) IL_02EB: ldarg.0 IL_02EC: call System.Int32 CommercialBuildingAI::MaxIncomingLoadSize() IL_02F1: stloc.s 13 (System.Int32) IL_02F3: ldc.i4.0 IL_02F4: stloc.s 14 (System.Int32) IL_02F6: ldc.i4.0 IL_02F7: stloc.s 15 (System.Int32) IL_02F9: ldarg.0 IL_02FA: ldarg.1 IL_02FB: ldarg.2 IL_02FC: ldloca.s 6 (Citizen+BehaviourData) IL_02FE: ldloca.s 14 (System.Int32) IL_0300: ldloca.s 15 (System.Int32) IL_0302: call System.Void CommonBuildingAI::GetVisitBehaviour(System.UInt16 buildingID, Building& buildingData, BehaviourData& behaviour, System.Int32& aliveCount, System.Int32& totalCount) IL_0307: ldarg.0 IL_0308: ldarg.2 IL_0309: ldfld System.Byte Building::m_level IL_030E: ldarg.1 IL_030F: newobj System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0314: ldloc.s 11 (System.Int32) IL_0316: ldloc.s 12 (System.Int32) IL_0318: callvirt virtual System.Int32 PrivateBuildingAI::CalculateVisitplaceCount(Level level, ColossalFramework.Math.Randomizer r, System.Int32 width, System.Int32 length) IL_031D: stloc.s 16 (System.Int32) IL_031F: ldc.i4.0 IL_0320: ldloc.s 16 (System.Int32) IL_0322: ldloc.s 15 (System.Int32) IL_0324: sub IL_0325: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_032A: stloc.s 17 (System.Int32) IL_032C: ldloc.s 16 (System.Int32) IL_032E: ldc.i4 500 IL_0333: mul IL_0334: stloc.s 18 (System.Int32) IL_0336: ldloc.s 18 (System.Int32) IL_0338: ldloc.s 13 (System.Int32) IL_033A: ldc.i4.4 IL_033B: mul IL_033C: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0341: ldarg.0 IL_0342: call static System.Int32 RealPop2.GoodsUtils::GetInventoryCap(CommercialBuildingAI ai) IL_0347: call static System.Int32 System.Math::Min(System.Int32 val1, System.Int32 val2) IL_034C: stloc.s 19 (System.Int32) IL_034E: ldarg.0 IL_034F: ldarg.2 IL_0350: ldfld System.Byte Building::m_level IL_0355: ldarg.1 IL_0356: newobj System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_035B: ldloc.s 11 (System.Int32) IL_035D: ldloc.s 12 (System.Int32) IL_035F: callvirt virtual System.Int32 PrivateBuildingAI::CalculateProductionCapacity(Level level, ColossalFramework.Math.Randomizer r, System.Int32 width, System.Int32 length) IL_0364: stloc.s 20 (System.Int32) IL_0366: ldarg.0 IL_0367: call TransferReason CommercialBuildingAI::GetIncomingTransferReason() IL_036C: stloc.s 21 (TransferManager+TransferReason) IL_036E: ldarg.0 IL_036F: ldarg.1 IL_0370: call TransferReason CommercialBuildingAI::GetOutgoingTransferReason(System.UInt16 buildingID) IL_0375: stloc.s 22 (TransferManager+TransferReason) IL_0377: ldloc.s 21 (TransferManager+TransferReason) IL_0379: ldc.i4 255 IL_037E: beq => Label15 IL_0383: ldloc.s 10 (System.Int32) IL_0385: brfalse => Label16 IL_038A: ldloc.s 20 (System.Int32) IL_038C: brfalse => Label17 IL_0391: ldloc.s 19 (System.Int32) IL_0393: ldarg.2 IL_0394: ldfld System.UInt16 Building::m_customBuffer1 IL_0399: sub IL_039A: stloc.s 23 (System.Int32) IL_039C: ldc.i4.0 IL_039D: ldloc.s 10 (System.Int32) IL_039F: ldloc.s 23 (System.Int32) IL_03A1: ldc.i4 200 IL_03A6: mul IL_03A7: ldloc.s 19 (System.Int32) IL_03A9: add IL_03AA: ldc.i4.1 IL_03AB: sub IL_03AC: ldloc.s 19 (System.Int32) IL_03AE: div IL_03AF: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_03B4: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_03B9: stloc.s 24 (System.Int32) IL_03BB: ldloc.s 20 (System.Int32) IL_03BD: ldloc.s 24 (System.Int32) IL_03BF: mul IL_03C0: ldc.i4.s 9 IL_03C2: add IL_03C3: ldc.i4.s 10 IL_03C5: div IL_03C6: stloc.s 25 (System.Int32) IL_03C8: ldc.i4.0 IL_03C9: ldloc.s 25 (System.Int32) IL_03CB: ldloc.s 23 (System.Int32) IL_03CD: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_03D2: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_03D7: stloc.s 25 (System.Int32) IL_03D9: ldarg.2 IL_03DA: dup IL_03DB: ldfld System.UInt16 Building::m_customBuffer1 IL_03E0: ldloc.s 25 (System.Int32) IL_03E2: conv.u2 IL_03E3: add IL_03E4: conv.u2 IL_03E5: stfld System.UInt16 Building::m_customBuffer1 IL_03EA: Label15 IL_03EA: Label16 IL_03EA: Label17 IL_03EA: ldloc.s 10 (System.Int32) IL_03EC: brfalse => Label18 IL_03F1: ldloc.s 19 (System.Int32) IL_03F3: stloc.s 26 (System.Int32) IL_03F5: ldloc.s 21 (TransferManager+TransferReason) IL_03F7: ldc.i4 255 IL_03FC: beq => Label19 IL_0401: ldloc.s 26 (System.Int32) IL_0403: ldarg.2 IL_0404: ldfld System.UInt16 Building::m_customBuffer1 IL_0409: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_040E: stloc.s 26 (System.Int32) IL_0410: Label19 IL_0410: ldloc.s 22 (TransferManager+TransferReason) IL_0412: ldc.i4 255 IL_0417: beq => Label20 IL_041C: ldloc.s 26 (System.Int32) IL_041E: ldloc.s 19 (System.Int32) IL_0420: ldarg.2 IL_0421: ldfld System.UInt16 Building::m_customBuffer2 IL_0426: sub IL_0427: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_042C: stloc.s 26 (System.Int32) IL_042E: Label20 IL_042E: ldc.i4.0 IL_042F: ldloc.s 10 (System.Int32) IL_0431: ldloc.s 26 (System.Int32) IL_0433: ldc.i4 200 IL_0438: mul IL_0439: ldloc.s 19 (System.Int32) IL_043B: add IL_043C: ldc.i4.1 IL_043D: sub IL_043E: ldloc.s 19 (System.Int32) IL_0440: div IL_0441: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0446: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_044B: stloc.s 10 (System.Int32) IL_044D: ldloc.s 16 (System.Int32) IL_044F: ldloc.s 10 (System.Int32) IL_0451: mul IL_0452: ldc.i4.s 9 IL_0454: add IL_0455: ldc.i4.s 10 IL_0457: div IL_0458: stloc.s 27 (System.Int32) IL_045A: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_045F: ldfld System.Boolean SimulationManager::m_isNightTime IL_0464: brfalse => Label21 IL_0469: ldloc.s 27 (System.Int32) IL_046B: ldc.i4.1 IL_046C: add IL_046D: ldc.i4.1 IL_046E: shr IL_046F: stloc.s 27 (System.Int32) IL_0471: Label21 IL_0471: ldc.i4.0 IL_0472: ldloc.s 27 (System.Int32) IL_0474: ldloc.s 26 (System.Int32) IL_0476: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_047B: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0480: stloc.s 27 (System.Int32) IL_0482: ldloc.s 21 (TransferManager+TransferReason) IL_0484: ldc.i4 255 IL_0489: beq => Label22 IL_048E: ldarg.2 IL_048F: dup IL_0490: ldfld System.UInt16 Building::m_customBuffer1 IL_0495: ldloc.s 27 (System.Int32) IL_0497: conv.u2 IL_0498: sub IL_0499: conv.u2 IL_049A: stfld System.UInt16 Building::m_customBuffer1 IL_049F: Label22 IL_049F: ldloc.s 22 (TransferManager+TransferReason) IL_04A1: ldc.i4 255 IL_04A6: beq => Label23 IL_04AB: ldarg.2 IL_04AC: dup IL_04AD: ldfld System.UInt16 Building::m_customBuffer2 IL_04B2: ldloc.s 27 (System.Int32) IL_04B4: conv.u2 IL_04B5: add IL_04B6: conv.u2 IL_04B7: stfld System.UInt16 Building::m_customBuffer2 IL_04BC: Label23 IL_04BC: ldloc.s 27 (System.Int32) IL_04BE: ldc.i4.s 9 IL_04C0: add IL_04C1: ldc.i4.s 10 IL_04C3: div IL_04C4: stloc.s 10 (System.Int32) IL_04C6: Label18 IL_04C6: ldarg.0 IL_04C7: ldarg.2 IL_04C8: ldfld System.Byte Building::m_level IL_04CD: ldarg.1 IL_04CE: newobj System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_04D3: ldloc.s 10 (System.Int32) IL_04D5: ldloca.s 28 (System.Int32) IL_04D7: ldloca.s 29 (System.Int32) IL_04D9: ldloca.s 30 (System.Int32) IL_04DB: ldloca.s 31 (System.Int32) IL_04DD: ldloca.s 32 (System.Int32) IL_04DF: ldloca.s 33 (System.Int32) IL_04E1: callvirt virtual System.Void PrivateBuildingAI::GetConsumptionRates(Level level, ColossalFramework.Math.Randomizer r, System.Int32 productionRate, System.Int32& electricityConsumption, System.Int32& waterConsumption, System.Int32& sewageAccumulation, System.Int32& garbageAccumulation, System.Int32& incomeAccumulation, System.Int32& mailAccumulation) IL_04E6: ldc.i4.0 IL_04E7: stloc.s 34 (System.Int32) IL_04E9: ldloc.s 28 (System.Int32) IL_04EB: brfalse => Label24 IL_04F0: ldloc.0 IL_04F1: ldc.i4.s 44 IL_04F3: callvirt System.Boolean DistrictManager::IsPolicyLoaded(Policies policy) IL_04F8: brfalse => Label25 IL_04FD: ldloc.3 IL_04FE: ldc.i4 4096 IL_0503: and IL_0504: brfalse => Label26 IL_0509: ldc.i4.1 IL_050A: ldloc.s 28 (System.Int32) IL_050C: ldc.i4.3 IL_050D: mul IL_050E: ldc.i4.8 IL_050F: add IL_0510: ldc.i4.4 IL_0511: shr IL_0512: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0517: stloc.s 34 (System.Int32) IL_0519: ldloc.s 32 (System.Int32) IL_051B: ldc.i4.s 95 IL_051D: mul IL_051E: ldc.i4.s 100 IL_0520: div IL_0521: stloc.s 32 (System.Int32) IL_0523: br => Label27 IL_0528: Label26 IL_0528: ldc.i4.1 IL_0529: ldloc.s 28 (System.Int32) IL_052B: ldc.i4.2 IL_052C: add IL_052D: ldc.i4.2 IL_052E: shr IL_052F: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0534: stloc.s 34 (System.Int32) IL_0536: Label24 IL_0536: Label25 IL_0536: Label27 IL_0536: ldloc.s 31 (System.Int32) IL_0538: brfalse => Label28 IL_053D: ldloc.3 IL_053E: ldc.i4.s 32 IL_0540: and IL_0541: brfalse => Label29 IL_0546: ldc.i4.1 IL_0547: ldloc.s 31 (System.Int32) IL_0549: ldc.i4.s 85 IL_054B: mul IL_054C: ldc.i4.s 100 IL_054E: div IL_054F: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0554: stloc.s 31 (System.Int32) IL_0556: ldloc.s 32 (System.Int32) IL_0558: ldc.i4.s 95 IL_055A: mul IL_055B: ldc.i4.s 100 IL_055D: div IL_055E: stloc.s 32 (System.Int32) IL_0560: Label28 IL_0560: Label29 IL_0560: ldarg.0 IL_0561: ldarg.1 IL_0562: ldarg.2 IL_0563: ldloc.s 4 (DistrictPolicies+Taxation) IL_0565: call System.Int32 CommercialBuildingAI::GetTaxRate(System.UInt16 buildingID, Building& buildingData, Taxation taxationPolicies) IL_056A: stloc.s 35 (System.Int32) IL_056C: ldarg.0 IL_056D: ldfld BuildingInfo BuildingAI::m_info IL_0572: ldfld ItemClass BuildingInfo::m_class IL_0577: callvirt System.Boolean ItemClass::get_isCommercialLeisure() IL_057C: brfalse => Label30 IL_0581: ldloc.s 5 (DistrictPolicies+CityPlanning) IL_0583: ldc.i4 256 IL_0588: and IL_0589: brfalse => Label31 IL_058E: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0593: ldfld System.Boolean SimulationManager::m_isNightTime IL_0598: brfalse => Label32 IL_059D: ldloc.s 28 (System.Int32) IL_059F: ldc.i4.1 IL_05A0: add IL_05A1: ldc.i4.1 IL_05A2: shr IL_05A3: stloc.s 28 (System.Int32) IL_05A5: ldloc.s 29 (System.Int32) IL_05A7: ldc.i4.1 IL_05A8: add IL_05A9: ldc.i4.1 IL_05AA: shr IL_05AB: stloc.s 29 (System.Int32) IL_05AD: ldloc.s 30 (System.Int32) IL_05AF: ldc.i4.1 IL_05B0: add IL_05B1: ldc.i4.1 IL_05B2: shr IL_05B3: stloc.s 30 (System.Int32) IL_05B5: ldloc.s 31 (System.Int32) IL_05B7: ldc.i4.1 IL_05B8: add IL_05B9: ldc.i4.1 IL_05BA: shr IL_05BB: stloc.s 31 (System.Int32) IL_05BD: ldloc.s 33 (System.Int32) IL_05BF: ldc.i4.1 IL_05C0: add IL_05C1: ldc.i4.1 IL_05C2: shr IL_05C3: stloc.s 33 (System.Int32) IL_05C5: ldc.i4.0 IL_05C6: stloc.s 32 (System.Int32) IL_05C8: Label30 IL_05C8: Label31 IL_05C8: Label32 IL_05C8: ldloc.s 10 (System.Int32) IL_05CA: brfalse => Label33 IL_05CF: ldloc.s 9 (System.Int32) IL_05D1: ldc.i4.s 50 IL_05D3: mul IL_05D4: stloc.s 36 (System.Int32) IL_05D6: ldarg.0 IL_05D7: ldarg.1 IL_05D8: ldarg.2 IL_05D9: ldarg.3 IL_05DA: ldloca.s 28 (System.Int32) IL_05DC: ldloca.s 34 (System.Int32) IL_05DE: ldloca.s 29 (System.Int32) IL_05E0: ldloca.s 30 (System.Int32) IL_05E2: ldloca.s 31 (System.Int32) IL_05E4: ldloca.s 33 (System.Int32) IL_05E6: ldloc.s 36 (System.Int32) IL_05E8: ldloc.3 IL_05E9: callvirt virtual System.Int32 CommonBuildingAI::HandleCommonConsumption(System.UInt16 buildingID, Building& data, Frame& frameData, System.Int32& electricityConsumption, System.Int32& heatingConsumption, System.Int32& waterConsumption, System.Int32& sewageAccumulation, System.Int32& garbageAccumulation, System.Int32& mailAccumulation, System.Int32 maxMail, Services policies) IL_05EE: stloc.s 37 (System.Int32) IL_05F0: ldloc.s 10 (System.Int32) IL_05F2: ldloc.s 37 (System.Int32) IL_05F4: mul IL_05F5: ldc.i4.s 99 IL_05F7: add IL_05F8: ldc.i4.s 100 IL_05FA: div IL_05FB: stloc.s 10 (System.Int32) IL_05FD: ldloc.s 10 (System.Int32) IL_05FF: brfalse => Label34 IL_0604: ldloc.s 32 (System.Int32) IL_0606: stloc.s 38 (System.Int32) IL_0608: ldloc.s 38 (System.Int32) IL_060A: brfalse => Label35 IL_060F: ldarg.0 IL_0610: ldfld BuildingInfo BuildingAI::m_info IL_0615: ldfld ItemClass BuildingInfo::m_class IL_061A: callvirt System.Boolean ItemClass::get_isCommercialLowGeneric() IL_061F: brfalse => Label36 IL_0624: ldloc.s 5 (DistrictPolicies+CityPlanning) IL_0626: ldc.i4.1 IL_0627: and IL_0628: brfalse => Label37 IL_062D: call static EconomyManager ColossalFramework.Singleton`1::get_instance() IL_0632: ldc.i4.s 9 IL_0634: ldc.i4.s 12 IL_0636: ldarg.0 IL_0637: ldfld BuildingInfo BuildingAI::m_info IL_063C: ldfld ItemClass BuildingInfo::m_class IL_0641: callvirt System.Int32 EconomyManager::FetchResource(Resource resource, System.Int32 amount, ItemClass itemClass) IL_0646: pop IL_0647: ldloc.s 38 (System.Int32) IL_0649: ldc.i4.2 IL_064A: mul IL_064B: stloc.s 38 (System.Int32) IL_064D: Label37 IL_064D: br => Label38 IL_0652: Label36 IL_0652: ldarg.0 IL_0653: ldfld BuildingInfo BuildingAI::m_info IL_0658: ldfld ItemClass BuildingInfo::m_class IL_065D: callvirt System.Boolean ItemClass::get_isCommercialHighGenegic() IL_0662: brtrue => Label39 IL_0667: ldarg.0 IL_0668: ldfld BuildingInfo BuildingAI::m_info IL_066D: ldfld ItemClass BuildingInfo::m_class IL_0672: callvirt System.Boolean ItemClass::get_isCommercialWallToWall() IL_0677: brfalse => Label40 IL_067C: Label39 IL_067C: ldloc.s 5 (DistrictPolicies+CityPlanning) IL_067E: ldc.i4.2 IL_067F: and IL_0680: brfalse => Label41 IL_0685: call static EconomyManager ColossalFramework.Singleton`1::get_instance() IL_068A: ldc.i4.s 9 IL_068C: ldc.i4.s 25 IL_068E: ldarg.0 IL_068F: ldfld BuildingInfo BuildingAI::m_info IL_0694: ldfld ItemClass BuildingInfo::m_class IL_0699: callvirt System.Int32 EconomyManager::FetchResource(Resource resource, System.Int32 amount, ItemClass itemClass) IL_069E: pop IL_069F: ldloc.s 38 (System.Int32) IL_06A1: ldc.i4.3 IL_06A2: mul IL_06A3: stloc.s 38 (System.Int32) IL_06A5: Label38 IL_06A5: Label40 IL_06A5: Label41 IL_06A5: ldloc.3 IL_06A6: ldc.i4 256 IL_06AB: and IL_06AC: brfalse => Label42 IL_06B1: ldloc.s 38 (System.Int32) IL_06B3: ldc.i4.s 105 IL_06B5: mul IL_06B6: ldc.i4.s 99 IL_06B8: add IL_06B9: ldc.i4.s 100 IL_06BB: div IL_06BC: stloc.s 38 (System.Int32) IL_06BE: Label42 IL_06BE: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_06C3: ldfld EffectData[] BuildingManager::m_finalMonumentEffect IL_06C8: ldc.i4.7 IL_06C9: ldelema MonumentAI+EffectData IL_06CE: ldfld System.Int32 EffectData::m_factor IL_06D3: stloc.s 39 (System.Int32) IL_06D5: ldloc.s 39 (System.Int32) IL_06D7: brfalse => Label43 IL_06DC: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_06E1: ldfld EffectData[] BuildingManager::m_finalMonumentEffect IL_06E6: ldc.i4.7 IL_06E7: ldelema MonumentAI+EffectData IL_06EC: ldfld UnityEngine.Vector3 EffectData::m_position IL_06F1: stloc.s 40 (UnityEngine.Vector3) IL_06F3: ldloc.s 40 (UnityEngine.Vector3) IL_06F5: ldarg.2 IL_06F6: ldfld UnityEngine.Vector3 Building::m_position IL_06FB: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0700: call static System.Single ColossalFramework.Math.VectorUtils::LengthSqrXZ(UnityEngine.Vector3 v) IL_0705: ldc.r4 250000 IL_070A: bge.un => Label44 IL_070F: ldloc.s 38 (System.Int32) IL_0711: ldloc.s 38 (System.Int32) IL_0713: ldloc.s 39 (System.Int32) IL_0715: mul IL_0716: ldc.i4.s 50 IL_0718: add IL_0719: ldc.i4.s 100 IL_071B: div IL_071C: add IL_071D: stloc.s 38 (System.Int32) IL_071F: Label43 IL_071F: Label44 IL_071F: call static EconomyManager ColossalFramework.Singleton`1::get_instance() IL_0724: ldloc.s 38 (System.Int32) IL_0726: ldc.i4.2 IL_0727: ldarg.0 IL_0728: ldfld BuildingInfo BuildingAI::m_info IL_072D: ldfld ItemClass BuildingInfo::m_class IL_0732: ldfld SubService ItemClass::m_subService IL_0737: ldarg.2 IL_0738: ldfld System.Byte Building::m_level IL_073D: ldloc.s 35 (System.Int32) IL_073F: callvirt System.Int32 EconomyManager::AddPrivateIncome(System.Int32 amount, Service service, SubService subService, Level level, System.Int32 taxRate) IL_0744: stloc.s 38 (System.Int32) IL_0746: ldloca.s 6 (Citizen+BehaviourData) IL_0748: ldfld System.Int32 BehaviourData::m_touristCount IL_074D: ldloc.s 38 (System.Int32) IL_074F: mul IL_0750: ldloc.s 14 (System.Int32) IL_0752: ldc.i4.1 IL_0753: shr IL_0754: add IL_0755: ldc.i4.1 IL_0756: ldloc.s 14 (System.Int32) IL_0758: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_075D: div IL_075E: stloc.s 41 (System.Int32) IL_0760: ldc.i4.0 IL_0761: ldloc.s 38 (System.Int32) IL_0763: ldloc.s 41 (System.Int32) IL_0765: sub IL_0766: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_076B: stloc.s 42 (System.Int32) IL_076D: ldloc.s 42 (System.Int32) IL_076F: brfalse => Label45 IL_0774: call static EconomyManager ColossalFramework.Singleton`1::get_instance() IL_0779: ldc.i4.5 IL_077A: ldloc.s 42 (System.Int32) IL_077C: ldarg.0 IL_077D: ldfld BuildingInfo BuildingAI::m_info IL_0782: ldfld ItemClass BuildingInfo::m_class IL_0787: callvirt System.Int32 EconomyManager::AddResource(Resource resource, System.Int32 amount, ItemClass itemClass) IL_078C: pop IL_078D: Label45 IL_078D: ldloc.s 41 (System.Int32) IL_078F: brfalse => Label46 IL_0794: call static EconomyManager ColossalFramework.Singleton`1::get_instance() IL_0799: ldc.i4.6 IL_079A: ldloc.s 41 (System.Int32) IL_079C: ldarg.0 IL_079D: ldfld BuildingInfo BuildingAI::m_info IL_07A2: ldfld ItemClass BuildingInfo::m_class IL_07A7: callvirt System.Int32 EconomyManager::AddResource(Resource resource, System.Int32 amount, ItemClass itemClass) IL_07AC: pop IL_07AD: Label35 IL_07AD: Label46 IL_07AD: ldarg.0 IL_07AE: ldarg.2 IL_07AF: ldfld System.Byte Building::m_level IL_07B4: ldloc.s 10 (System.Int32) IL_07B6: ldloc.s 5 (DistrictPolicies+CityPlanning) IL_07B8: ldloca.s 43 (System.Int32) IL_07BA: ldloca.s 44 (System.Int32) IL_07BC: callvirt virtual System.Void PrivateBuildingAI::GetPollutionRates(Level level, System.Int32 productionRate, CityPlanning cityPlanningPolicies, System.Int32& groundPollution, System.Int32& noisePollution) IL_07C1: ldloc.s 43 (System.Int32) IL_07C3: brfalse => Label47 IL_07C8: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_07CD: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_07D2: ldc.i4.3 IL_07D3: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_07D8: brtrue => Label48 IL_07DD: call static NaturalResourceManager ColossalFramework.Singleton`1::get_instance() IL_07E2: ldc.i4.s 10 IL_07E4: ldloc.s 43 (System.Int32) IL_07E6: ldloc.s 43 (System.Int32) IL_07E8: ldarg.2 IL_07E9: ldfld UnityEngine.Vector3 Building::m_position IL_07EE: ldc.r4 60 IL_07F3: callvirt System.Int32 NaturalResourceManager::TryDumpResource(Resource resource, System.Int32 rate, System.Int32 max, UnityEngine.Vector3 position, System.Single radius) IL_07F8: pop IL_07F9: Label47 IL_07F9: Label48 IL_07F9: ldloc.s 44 (System.Int32) IL_07FB: brfalse => Label49 IL_0800: ldloc.2 IL_0801: brfalse => Label50 IL_0806: ldloc.0 IL_0807: ldfld Array8`1 DistrictManager::m_parks IL_080C: ldfld DistrictPark[] Array8`1::m_buffer IL_0811: ldloc.2 IL_0812: ldelema DistrictPark IL_0817: ldfld Park DistrictPark::m_parkPolicies IL_081C: ldc.i4 8388608 IL_0821: and IL_0822: brfalse => Label51 IL_0827: ldloc.s 44 (System.Int32) IL_0829: conv.r4 IL_082A: ldc.r4 1.1 IL_082F: mul IL_0830: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_0835: stloc.s 44 (System.Int32) IL_0837: Label50 IL_0837: Label51 IL_0837: call static ImmaterialResourceManager ColossalFramework.Singleton`1::get_instance() IL_083C: ldc.i4.8 IL_083D: ldloc.s 44 (System.Int32) IL_083F: ldarg.2 IL_0840: ldfld UnityEngine.Vector3 Building::m_position IL_0845: ldc.r4 60 IL_084A: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource resource, System.Int32 rate, UnityEngine.Vector3 position, System.Single radius) IL_084F: pop IL_0850: Label49 IL_0850: ldloc.s 37 (System.Int32) IL_0852: ldc.i4.s 100 IL_0854: bge => Label52 IL_0859: ldarg.2 IL_085A: dup IL_085B: ldfld Flags Building::m_flags IL_0860: ldc.i4 1024 IL_0865: or IL_0866: stfld Flags Building::m_flags IL_086B: br => Label53 IL_0870: Label52 IL_0870: ldarg.2 IL_0871: dup IL_0872: ldfld Flags Building::m_flags IL_0877: ldc.i4 -1025 IL_087C: and IL_087D: stfld Flags Building::m_flags IL_0882: Label53 IL_0882: ldarg.2 IL_0883: dup IL_0884: ldfld Flags Building::m_flags IL_0889: ldc.i4 131072 IL_088E: or IL_088F: stfld Flags Building::m_flags IL_0894: br => Label54 IL_0899: Label34 IL_0899: ldarg.2 IL_089A: dup IL_089B: ldfld Flags Building::m_flags IL_08A0: ldc.i4 -132097 IL_08A5: and IL_08A6: stfld Flags Building::m_flags IL_08AB: Label54 IL_08AB: br => Label55 IL_08B0: Label33 IL_08B0: ldc.i4.0 IL_08B1: stloc.s 28 (System.Int32) IL_08B3: ldc.i4.0 IL_08B4: stloc.s 34 (System.Int32) IL_08B6: ldc.i4.0 IL_08B7: stloc.s 29 (System.Int32) IL_08B9: ldc.i4.0 IL_08BA: stloc.s 30 (System.Int32) IL_08BC: ldc.i4.0 IL_08BD: stloc.s 31 (System.Int32) IL_08BF: ldc.i4.0 IL_08C0: stloc.s 33 (System.Int32) IL_08C2: ldarg.2 IL_08C3: ldarg.2 IL_08C4: ldfld ProblemStruct Building::m_problems IL_08C9: ldc.i8 4563419142 IL_08D2: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_08D7: call static ProblemStruct Notification::RemoveProblems(ProblemStruct problems1, ProblemStruct problems2) IL_08DC: stfld ProblemStruct Building::m_problems IL_08E1: ldarg.2 IL_08E2: dup IL_08E3: ldfld Flags Building::m_flags IL_08E8: ldc.i4 -132097 IL_08ED: and IL_08EE: stfld Flags Building::m_flags IL_08F3: Label55 IL_08F3: ldc.i4.0 IL_08F4: stloc.s 45 (System.Int32) IL_08F6: ldc.i4.0 IL_08F7: stloc.s 46 (System.Int32) IL_08F9: ldarg.2 IL_08FA: call System.Int32 Building::get_Width() IL_08FF: ldarg.2 IL_0900: call System.Int32 Building::get_Length() IL_0905: add IL_0906: conv.r4 IL_0907: ldc.r4 2.5 IL_090C: mul IL_090D: stloc.s 47 (System.Single) IL_090F: ldloca.s 6 (Citizen+BehaviourData) IL_0911: ldfld System.Int32 BehaviourData::m_healthAccumulation IL_0916: brfalse => Label56 IL_091B: ldloc.s 7 (System.Int32) IL_091D: ldloc.s 14 (System.Int32) IL_091F: add IL_0920: brfalse => Label57 IL_0925: ldloca.s 6 (Citizen+BehaviourData) IL_0927: ldfld System.Int32 BehaviourData::m_healthAccumulation IL_092C: ldloc.s 7 (System.Int32) IL_092E: ldloc.s 14 (System.Int32) IL_0930: add IL_0931: ldc.i4.1 IL_0932: shr IL_0933: add IL_0934: ldloc.s 7 (System.Int32) IL_0936: ldloc.s 14 (System.Int32) IL_0938: add IL_0939: div IL_093A: stloc.s 45 (System.Int32) IL_093C: Label57 IL_093C: call static ImmaterialResourceManager ColossalFramework.Singleton`1::get_instance() IL_0941: ldc.i4.s 10 IL_0943: ldloca.s 6 (Citizen+BehaviourData) IL_0945: ldfld System.Int32 BehaviourData::m_healthAccumulation IL_094A: ldarg.2 IL_094B: ldfld UnityEngine.Vector3 Building::m_position IL_0950: ldloc.s 47 (System.Single) IL_0952: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource resource, System.Int32 rate, UnityEngine.Vector3 position, System.Single radius) IL_0957: pop IL_0958: Label56 IL_0958: ldloca.s 6 (Citizen+BehaviourData) IL_095A: ldfld System.Int32 BehaviourData::m_wellbeingAccumulation IL_095F: brfalse => Label58 IL_0964: ldloc.s 7 (System.Int32) IL_0966: ldloc.s 14 (System.Int32) IL_0968: add IL_0969: brfalse => Label59 IL_096E: ldloca.s 6 (Citizen+BehaviourData) IL_0970: ldfld System.Int32 BehaviourData::m_wellbeingAccumulation IL_0975: ldloc.s 7 (System.Int32) IL_0977: ldloc.s 14 (System.Int32) IL_0979: add IL_097A: ldc.i4.1 IL_097B: shr IL_097C: add IL_097D: ldloc.s 7 (System.Int32) IL_097F: ldloc.s 14 (System.Int32) IL_0981: add IL_0982: div IL_0983: stloc.s 46 (System.Int32) IL_0985: Label59 IL_0985: call static ImmaterialResourceManager ColossalFramework.Singleton`1::get_instance() IL_098A: ldc.i4.s 11 IL_098C: ldloca.s 6 (Citizen+BehaviourData) IL_098E: ldfld System.Int32 BehaviourData::m_wellbeingAccumulation IL_0993: ldarg.2 IL_0994: ldfld UnityEngine.Vector3 Building::m_position IL_0999: ldloc.s 47 (System.Single) IL_099B: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource resource, System.Int32 rate, UnityEngine.Vector3 position, System.Single radius) IL_09A0: pop IL_09A1: Label58 IL_09A1: ldloc.s 45 (System.Int32) IL_09A3: ldloc.s 46 (System.Int32) IL_09A5: call static System.Int32 Citizen::GetHappiness(System.Int32 health, System.Int32 wellbeing) IL_09AA: ldc.i4.s 15 IL_09AC: mul IL_09AD: ldc.i4.s 100 IL_09AF: div IL_09B0: stloc.s 48 (System.Int32) IL_09B2: ldloc.s 7 (System.Int32) IL_09B4: ldc.i4.s 20 IL_09B6: mul IL_09B7: ldloc.s 9 (System.Int32) IL_09B9: div IL_09BA: stloc.s 49 (System.Int32) IL_09BC: ldarg.2 IL_09BD: ldfld ProblemStruct Building::m_problems IL_09C2: ldc.i8 4611686018427387904 IL_09CB: call static ProblemStruct ProblemStruct::op_BitwiseAnd(ProblemStruct a, Problem1 b) IL_09D0: stloc.s 50 (Notification+ProblemStruct) IL_09D2: ldloca.s 50 (Notification+ProblemStruct) IL_09D4: call System.Boolean ProblemStruct::get_IsNone() IL_09D9: brfalse => Label60 IL_09DE: ldloc.s 48 (System.Int32) IL_09E0: ldc.i4.s 20 IL_09E2: add IL_09E3: stloc.s 48 (System.Int32) IL_09E5: Label60 IL_09E5: ldarg.2 IL_09E6: ldflda ProblemStruct Building::m_problems IL_09EB: call System.Boolean ProblemStruct::get_IsNone() IL_09F0: brfalse => Label61 IL_09F5: ldloc.s 48 (System.Int32) IL_09F7: ldc.i4.s 25 IL_09F9: add IL_09FA: stloc.s 48 (System.Int32) IL_09FC: Label61 IL_09FC: ldloc.s 48 (System.Int32) IL_09FE: ldloc.s 49 (System.Int32) IL_0A00: ldarg.2 IL_0A01: ldfld System.UInt16 Building::m_customBuffer1 IL_0A06: ldloc.s 49 (System.Int32) IL_0A08: mul IL_0A09: ldloc.s 19 (System.Int32) IL_0A0B: div IL_0A0C: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0A11: add IL_0A12: stloc.s 48 (System.Int32) IL_0A14: ldloc.s 48 (System.Int32) IL_0A16: ldloc.s 49 (System.Int32) IL_0A18: ldloc.s 49 (System.Int32) IL_0A1A: ldarg.2 IL_0A1B: ldfld System.UInt16 Building::m_customBuffer2 IL_0A20: ldloc.s 49 (System.Int32) IL_0A22: mul IL_0A23: ldloc.s 19 (System.Int32) IL_0A25: div IL_0A26: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0A2B: sub IL_0A2C: add IL_0A2D: stloc.s 48 (System.Int32) IL_0A2F: ldloc.2 IL_0A30: brfalse => Label62 IL_0A35: ldloc.0 IL_0A36: ldfld Array8`1 DistrictManager::m_parks IL_0A3B: ldfld DistrictPark[] Array8`1::m_buffer IL_0A40: ldloc.2 IL_0A41: ldelema DistrictPark IL_0A46: ldfld Park DistrictPark::m_parkPolicies IL_0A4B: ldc.i4 8388608 IL_0A50: and IL_0A51: brfalse => Label63 IL_0A56: ldloc.s 48 (System.Int32) IL_0A58: ldc.i4.s 20 IL_0A5A: add IL_0A5B: stloc.s 48 (System.Int32) IL_0A5D: Label62 IL_0A5D: Label63 IL_0A5D: ldc.i4.8 IL_0A5E: ldarg.2 IL_0A5F: ldfld System.Byte Building::m_level IL_0A64: sub IL_0A65: stloc.s 51 (System.Int32) IL_0A67: ldc.i4.s 11 IL_0A69: ldarg.2 IL_0A6A: ldfld System.Byte Building::m_level IL_0A6F: sub IL_0A70: stloc.s 52 (System.Int32) IL_0A72: ldarg.0 IL_0A73: ldfld BuildingInfo BuildingAI::m_info IL_0A78: ldfld ItemClass BuildingInfo::m_class IL_0A7D: callvirt System.Boolean ItemClass::get_isCommercialHighGenegic() IL_0A82: brtrue => Label64 IL_0A87: ldarg.0 IL_0A88: ldfld BuildingInfo BuildingAI::m_info IL_0A8D: ldfld ItemClass BuildingInfo::m_class IL_0A92: callvirt System.Boolean ItemClass::get_isCommercialWallToWall() IL_0A97: brfalse => Label65 IL_0A9C: Label64 IL_0A9C: ldloc.s 51 (System.Int32) IL_0A9E: ldc.i4.1 IL_0A9F: add IL_0AA0: stloc.s 51 (System.Int32) IL_0AA2: ldloc.s 52 (System.Int32) IL_0AA4: ldc.i4.1 IL_0AA5: add IL_0AA6: stloc.s 52 (System.Int32) IL_0AA8: Label65 IL_0AA8: ldloc.s 35 (System.Int32) IL_0AAA: ldloc.s 51 (System.Int32) IL_0AAC: bge => Label66 IL_0AB1: ldloc.s 48 (System.Int32) IL_0AB3: ldloc.s 51 (System.Int32) IL_0AB5: ldloc.s 35 (System.Int32) IL_0AB7: sub IL_0AB8: add IL_0AB9: stloc.s 48 (System.Int32) IL_0ABB: Label66 IL_0ABB: ldloc.s 35 (System.Int32) IL_0ABD: ldloc.s 52 (System.Int32) IL_0ABF: ble => Label67 IL_0AC4: ldloc.s 48 (System.Int32) IL_0AC6: ldloc.s 35 (System.Int32) IL_0AC8: ldloc.s 52 (System.Int32) IL_0ACA: sub IL_0ACB: sub IL_0ACC: stloc.s 48 (System.Int32) IL_0ACE: Label67 IL_0ACE: ldloc.s 35 (System.Int32) IL_0AD0: ldloc.s 52 (System.Int32) IL_0AD2: ldc.i4.4 IL_0AD3: add IL_0AD4: blt => Label68 IL_0AD9: ldarg.2 IL_0ADA: ldfld System.Byte Building::m_taxProblemTimer IL_0ADF: brtrue => Label69 IL_0AE4: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0AE9: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0AEE: ldc.i4.s 32 IL_0AF0: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0AF5: brtrue => Label70 IL_0AFA: Label69 IL_0AFA: ldloc.s 35 (System.Int32) IL_0AFC: ldloc.s 52 (System.Int32) IL_0AFE: sub IL_0AFF: ldc.i4.2 IL_0B00: shr IL_0B01: stloc.s 53 (System.Int32) IL_0B03: ldarg.2 IL_0B04: ldc.i4 255 IL_0B09: ldarg.2 IL_0B0A: ldfld System.Byte Building::m_taxProblemTimer IL_0B0F: ldloc.s 53 (System.Int32) IL_0B11: add IL_0B12: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0B17: conv.u1 IL_0B18: stfld System.Byte Building::m_taxProblemTimer IL_0B1D: ldarg.2 IL_0B1E: ldfld System.Byte Building::m_taxProblemTimer IL_0B23: ldc.i4.s 96 IL_0B25: blt => Label71 IL_0B2A: ldarg.2 IL_0B2B: ldarg.2 IL_0B2C: ldfld ProblemStruct Building::m_problems IL_0B31: ldc.i8 4611686018494496768 IL_0B3A: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0B3F: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0B44: stfld ProblemStruct Building::m_problems IL_0B49: br => Label72 IL_0B4E: Label71 IL_0B4E: ldarg.2 IL_0B4F: ldfld System.Byte Building::m_taxProblemTimer IL_0B54: ldc.i4.s 32 IL_0B56: blt => Label73 IL_0B5B: ldarg.2 IL_0B5C: ldarg.2 IL_0B5D: ldfld ProblemStruct Building::m_problems IL_0B62: ldc.i4 67108864 IL_0B67: conv.i8 IL_0B68: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0B6D: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0B72: stfld ProblemStruct Building::m_problems IL_0B77: Label70 IL_0B77: Label72 IL_0B77: Label73 IL_0B77: br => Label74 IL_0B7C: Label68 IL_0B7C: ldarg.2 IL_0B7D: ldc.i4.0 IL_0B7E: ldarg.2 IL_0B7F: ldfld System.Byte Building::m_taxProblemTimer IL_0B84: ldc.i4.1 IL_0B85: sub IL_0B86: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_0B8B: conv.u1 IL_0B8C: stfld System.Byte Building::m_taxProblemTimer IL_0B91: ldarg.2 IL_0B92: ldarg.2 IL_0B93: ldfld ProblemStruct Building::m_problems IL_0B98: ldc.i4 67108864 IL_0B9D: conv.i8 IL_0B9E: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0BA3: call static ProblemStruct Notification::RemoveProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0BA8: stfld ProblemStruct Building::m_problems IL_0BAD: Label74 IL_0BAD: ldarg.0 IL_0BAE: ldarg.1 IL_0BAF: newobj System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0BB4: ldloc.s 10 (System.Int32) IL_0BB6: ldloc.s 35 (System.Int32) IL_0BB8: ldloc.s 5 (DistrictPolicies+CityPlanning) IL_0BBA: ldloc.s 4 (DistrictPolicies+Taxation) IL_0BBC: ldloca.s 54 (System.Int32) IL_0BBE: ldloca.s 55 (System.Int32) IL_0BC0: call System.Void CommercialBuildingAI::GetAccumulation(ColossalFramework.Math.Randomizer r, System.Int32 productionRate, System.Int32 taxRate, CityPlanning cityPlanningPolicies, Taxation taxationPolicies, System.Int32& entertainment, System.Int32& attractiveness) IL_0BC5: ldloc.s 54 (System.Int32) IL_0BC7: brfalse => Label75 IL_0BCC: ldloc.2 IL_0BCD: brfalse => Label76 IL_0BD2: ldloc.0 IL_0BD3: ldfld Array8`1 DistrictManager::m_parks IL_0BD8: ldfld DistrictPark[] Array8`1::m_buffer IL_0BDD: ldloc.2 IL_0BDE: ldelema DistrictPark IL_0BE3: call System.Boolean DistrictPark::get_IsPedestrianZone() IL_0BE8: brfalse => Label77 IL_0BED: ldloc.0 IL_0BEE: ldfld Array8`1 DistrictManager::m_parks IL_0BF3: ldfld DistrictPark[] Array8`1::m_buffer IL_0BF8: ldloc.2 IL_0BF9: ldelema DistrictPark IL_0BFE: ldloc.s 54 (System.Int32) IL_0C00: call System.Void DistrictPark::AddEntertainment(System.Int32 amount) IL_0C05: br => Label78 IL_0C0A: Label76 IL_0C0A: Label77 IL_0C0A: call static ImmaterialResourceManager ColossalFramework.Singleton`1::get_instance() IL_0C0F: ldc.i4.s 13 IL_0C11: ldloc.s 54 (System.Int32) IL_0C13: ldarg.2 IL_0C14: ldfld UnityEngine.Vector3 Building::m_position IL_0C19: ldloc.s 47 (System.Single) IL_0C1B: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource resource, System.Int32 rate, UnityEngine.Vector3 position, System.Single radius) IL_0C20: pop IL_0C21: Label75 IL_0C21: Label78 IL_0C21: ldloc.s 55 (System.Int32) IL_0C23: brfalse => Label79 IL_0C28: ldloc.2 IL_0C29: brfalse => Label80 IL_0C2E: ldloc.0 IL_0C2F: ldfld Array8`1 DistrictManager::m_parks IL_0C34: ldfld DistrictPark[] Array8`1::m_buffer IL_0C39: ldloc.2 IL_0C3A: ldelema DistrictPark IL_0C3F: call System.Boolean DistrictPark::get_IsPedestrianZone() IL_0C44: brfalse => Label81 IL_0C49: ldloc.0 IL_0C4A: ldfld Array8`1 DistrictManager::m_parks IL_0C4F: ldfld DistrictPark[] Array8`1::m_buffer IL_0C54: ldloc.2 IL_0C55: ldelema DistrictPark IL_0C5A: ldloc.s 55 (System.Int32) IL_0C5C: call System.Void DistrictPark::AddAttractiveness(System.Int32 amount) IL_0C61: br => Label82 IL_0C66: Label80 IL_0C66: Label81 IL_0C66: call static ImmaterialResourceManager ColossalFramework.Singleton`1::get_instance() IL_0C6B: ldc.i4.s 15 IL_0C6D: ldloc.s 55 (System.Int32) IL_0C6F: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource resource, System.Int32 rate) IL_0C74: pop IL_0C75: Label79 IL_0C75: Label82 IL_0C75: ldloc.s 48 (System.Int32) IL_0C77: ldc.i4.0 IL_0C78: ldc.i4.s 100 IL_0C7A: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_0C7F: stloc.s 48 (System.Int32) IL_0C81: ldarg.2 IL_0C82: ldloc.s 45 (System.Int32) IL_0C84: conv.u1 IL_0C85: stfld System.Byte Building::m_health IL_0C8A: ldarg.2 IL_0C8B: ldloc.s 48 (System.Int32) IL_0C8D: conv.u1 IL_0C8E: stfld System.Byte Building::m_happiness IL_0C93: ldarg.2 IL_0C94: ldloc.s 7 (System.Int32) IL_0C96: ldloc.s 14 (System.Int32) IL_0C98: add IL_0C99: conv.u1 IL_0C9A: stfld System.Byte Building::m_citizenCount IL_0C9F: ldarg.0 IL_0CA0: ldarg.1 IL_0CA1: ldarg.2 IL_0CA2: ldloca.s 6 (Citizen+BehaviourData) IL_0CA4: ldloc.s 8 (System.Int32) IL_0CA6: ldloc.s 15 (System.Int32) IL_0CA8: add IL_0CA9: callvirt virtual System.Void CommonBuildingAI::HandleDead(System.UInt16 buildingID, Building& buildingData, BehaviourData& behaviour, System.Int32 citizenCount) IL_0CAE: ldloca.s 6 (Citizen+BehaviourData) IL_0CB0: ldfld System.Int32 BehaviourData::m_crimeAccumulation IL_0CB5: ldc.i4.s 10 IL_0CB7: div IL_0CB8: stloc.s 56 (System.Int32) IL_0CBA: ldarg.0 IL_0CBB: ldfld BuildingInfo BuildingAI::m_info IL_0CC0: ldfld ItemClass BuildingInfo::m_class IL_0CC5: callvirt System.Boolean ItemClass::get_isCommercialLeisure() IL_0CCA: brfalse => Label83 IL_0CCF: ldloc.s 56 (System.Int32) IL_0CD1: ldc.i4.5 IL_0CD2: mul IL_0CD3: ldc.i4.3 IL_0CD4: add IL_0CD5: ldc.i4.2 IL_0CD6: shr IL_0CD7: stloc.s 56 (System.Int32) IL_0CD9: Label83 IL_0CD9: ldloc.3 IL_0CDA: ldc.i4 256 IL_0CDF: and IL_0CE0: brfalse => Label84 IL_0CE5: ldloc.s 56 (System.Int32) IL_0CE7: ldc.i4.3 IL_0CE8: mul IL_0CE9: ldc.i4.3 IL_0CEA: add IL_0CEB: ldc.i4.2 IL_0CEC: shr IL_0CED: stloc.s 56 (System.Int32) IL_0CEF: Label84 IL_0CEF: ldarg.0 IL_0CF0: ldarg.1 IL_0CF1: ldarg.2 IL_0CF2: ldloc.s 56 (System.Int32) IL_0CF4: ldarg.2 IL_0CF5: ldfld System.Byte Building::m_citizenCount IL_0CFA: callvirt virtual System.Void CommonBuildingAI::HandleCrime(System.UInt16 buildingID, Building& data, System.Int32 crimeAccumulation, System.Int32 citizenCount) IL_0CFF: ldarg.2 IL_0D00: ldfld System.UInt16 Building::m_crimeBuffer IL_0D05: stloc.s 57 (System.Int32) IL_0D07: ldloc.s 7 (System.Int32) IL_0D09: brfalse => Label85 IL_0D0E: call static ImmaterialResourceManager ColossalFramework.Singleton`1::get_instance() IL_0D13: ldc.i4.s 12 IL_0D15: ldloc.s 7 (System.Int32) IL_0D17: ldarg.2 IL_0D18: ldfld UnityEngine.Vector3 Building::m_position IL_0D1D: ldloc.s 47 (System.Single) IL_0D1F: callvirt System.Int32 ImmaterialResourceManager::AddResource(Resource resource, System.Int32 rate, UnityEngine.Vector3 position, System.Single radius) IL_0D24: pop IL_0D25: ldloca.s 6 (Citizen+BehaviourData) IL_0D27: ldfld System.Int32 BehaviourData::m_educated0Count IL_0D2C: ldc.i4.s 100 IL_0D2E: mul IL_0D2F: ldloca.s 6 (Citizen+BehaviourData) IL_0D31: ldfld System.Int32 BehaviourData::m_educated1Count IL_0D36: ldc.i4.s 50 IL_0D38: mul IL_0D39: add IL_0D3A: ldloca.s 6 (Citizen+BehaviourData) IL_0D3C: ldfld System.Int32 BehaviourData::m_educated2Count IL_0D41: ldc.i4.s 30 IL_0D43: mul IL_0D44: add IL_0D45: stloc.s 58 (System.Int32) IL_0D47: ldloc.s 58 (System.Int32) IL_0D49: ldloc.s 7 (System.Int32) IL_0D4B: div IL_0D4C: ldc.i4.s 50 IL_0D4E: add IL_0D4F: stloc.s 58 (System.Int32) IL_0D51: ldarg.2 IL_0D52: ldloc.s 58 (System.Int32) IL_0D54: conv.u1 IL_0D55: stfld System.Byte Building::m_fireHazard IL_0D5A: br => Label86 IL_0D5F: Label85 IL_0D5F: ldarg.2 IL_0D60: ldc.i4.0 IL_0D61: stfld System.Byte Building::m_fireHazard IL_0D66: Label86 IL_0D66: ldarg.2 IL_0D67: ldfld System.Byte Building::m_citizenCount IL_0D6C: brfalse => Label87 IL_0D71: ldloc.s 57 (System.Int32) IL_0D73: ldarg.2 IL_0D74: ldfld System.Byte Building::m_citizenCount IL_0D79: ldc.i4.1 IL_0D7A: shr IL_0D7B: add IL_0D7C: ldarg.2 IL_0D7D: ldfld System.Byte Building::m_citizenCount IL_0D82: div IL_0D83: stloc.s 57 (System.Int32) IL_0D85: br => Label88 IL_0D8A: Label87 IL_0D8A: ldc.i4.0 IL_0D8B: stloc.s 57 (System.Int32) IL_0D8D: Label88 IL_0D8D: ldc.i4.0 IL_0D8E: stloc.s 59 (System.Int32) IL_0D90: ldc.i4.0 IL_0D91: stloc.s 60 (System.Int32) IL_0D93: ldc.i4.0 IL_0D94: stloc.s 61 (System.Int32) IL_0D96: ldc.i4.0 IL_0D97: stloc.s 62 (System.Int32) IL_0D99: ldloc.s 21 (TransferManager+TransferReason) IL_0D9B: ldc.i4 255 IL_0DA0: beq => Label89 IL_0DA5: ldloc.s 21 (TransferManager+TransferReason) IL_0DA7: ldc.i4.s 17 IL_0DA9: beq => Label90 IL_0DAE: ldloc.s 21 (TransferManager+TransferReason) IL_0DB0: ldc.i4.s 32 IL_0DB2: bne.un => Label91 IL_0DB7: Label90 IL_0DB7: ldarg.0 IL_0DB8: ldarg.1 IL_0DB9: ldarg.2 IL_0DBA: ldloc.s 21 (TransferManager+TransferReason) IL_0DBC: ldc.i4.s 105 IL_0DBE: ldloca.s 59 (System.Int32) IL_0DC0: ldloca.s 60 (System.Int32) IL_0DC2: ldloca.s 61 (System.Int32) IL_0DC4: ldloca.s 62 (System.Int32) IL_0DC6: call System.Void CommonBuildingAI::CalculateGuestVehicles(System.UInt16 buildingID, Building& data, TransferReason material1, TransferReason material2, System.Int32& count, System.Int32& cargo, System.Int32& capacity, System.Int32& outside) IL_0DCB: br => Label92 IL_0DD0: Label91 IL_0DD0: ldarg.0 IL_0DD1: ldarg.1 IL_0DD2: ldarg.2 IL_0DD3: ldloc.s 21 (TransferManager+TransferReason) IL_0DD5: ldloca.s 59 (System.Int32) IL_0DD7: ldloca.s 60 (System.Int32) IL_0DD9: ldloca.s 61 (System.Int32) IL_0DDB: ldloca.s 62 (System.Int32) IL_0DDD: call System.Void CommonBuildingAI::CalculateGuestVehicles(System.UInt16 buildingID, Building& data, TransferReason material, System.Int32& count, System.Int32& cargo, System.Int32& capacity, System.Int32& outside) IL_0DE2: Label92 IL_0DE2: ldarg.2 IL_0DE3: ldloc.s 62 (System.Int32) IL_0DE5: ldarg.2 IL_0DE6: ldfld System.Byte Building::m_tempImport IL_0DEB: ldc.i4 255 IL_0DF0: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_0DF5: conv.u1 IL_0DF6: stfld System.Byte Building::m_tempImport IL_0DFB: Label89 IL_0DFB: ldarg.2 IL_0DFC: ldloca.s 6 (Citizen+BehaviourData) IL_0DFE: ldfld System.Int32 BehaviourData::m_touristCount IL_0E03: ldarg.2 IL_0E04: ldfld System.Byte Building::m_tempExport IL_0E09: ldc.i4 255 IL_0E0E: call static System.Int32 UnityEngine.Mathf::Clamp(System.Int32 value, System.Int32 min, System.Int32 max) IL_0E13: conv.u1 IL_0E14: stfld System.Byte Building::m_tempExport IL_0E19: ldarg.2 IL_0E1A: ldloc.s 10 (System.Int32) IL_0E1C: conv.u1 IL_0E1D: stfld System.Byte Building::m_adults IL_0E22: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0E27: stloc.s 63 (SimulationManager) IL_0E29: ldloc.s 63 (SimulationManager) IL_0E2B: ldfld System.UInt32 SimulationManager::m_currentFrameIndex IL_0E30: ldc.i4 3840 IL_0E35: and IL_0E36: ldc.i4.8 IL_0E37: shr.un IL_0E38: stloc.s 64 (System.UInt32) IL_0E3A: ldloc.s 64 (System.UInt32) IL_0E3C: conv.u8 IL_0E3D: ldarg.1 IL_0E3E: ldc.i4.s 15 IL_0E40: and IL_0E41: conv.i8 IL_0E42: bne.un => Label93 IL_0E47: ldarg.0 IL_0E48: ldfld BuildingInfo BuildingAI::m_info IL_0E4D: ldfld ItemClass BuildingInfo::m_class IL_0E52: callvirt System.Boolean ItemClass::get_isCommercialLowGeneric() IL_0E57: brtrue => Label94 IL_0E5C: ldarg.0 IL_0E5D: ldfld BuildingInfo BuildingAI::m_info IL_0E62: ldfld ItemClass BuildingInfo::m_class IL_0E67: callvirt System.Boolean ItemClass::get_isCommercialHighGenegic() IL_0E6C: brtrue => Label95 IL_0E71: ldarg.0 IL_0E72: ldfld BuildingInfo BuildingAI::m_info IL_0E77: ldfld ItemClass BuildingInfo::m_class IL_0E7C: callvirt System.Boolean ItemClass::get_isCommercialWallToWall() IL_0E81: brfalse => Label96 IL_0E86: Label94 IL_0E86: Label95 IL_0E86: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0E8B: ldfld System.UInt32 ZoneManager::m_lastBuildIndex IL_0E90: ldloc.s 63 (SimulationManager) IL_0E92: ldfld System.UInt32 SimulationManager::m_currentBuildIndex IL_0E97: bne.un => Label97 IL_0E9C: ldarg.2 IL_0E9D: ldfld Flags Building::m_flags IL_0EA2: ldc.i4 8388608 IL_0EA7: and IL_0EA8: brtrue => Label98 IL_0EAD: ldarg.0 IL_0EAE: ldarg.1 IL_0EAF: ldarg.2 IL_0EB0: ldarg.3 IL_0EB1: ldloca.s 6 (Citizen+BehaviourData) IL_0EB3: ldloc.s 14 (System.Int32) IL_0EB5: call System.Void CommercialBuildingAI::CheckBuildingLevel(System.UInt16 buildingID, Building& buildingData, Frame& frameData, BehaviourData& behaviour, System.Int32 visitorCount) IL_0EBA: Label93 IL_0EBA: Label96 IL_0EBA: Label97 IL_0EBA: Label98 IL_0EBA: ldarg.2 IL_0EBB: ldfld Flags Building::m_flags IL_0EC0: ldc.i4 8454144 IL_0EC5: and IL_0EC6: brfalse => Label99 IL_0ECB: ldarg.2 IL_0ECC: ldfld ProblemStruct Building::m_problems IL_0ED1: ldc.i4 1310720 IL_0ED6: conv.i8 IL_0ED7: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0EDC: call static ProblemStruct Notification::RemoveProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0EE1: stloc.s 65 (Notification+ProblemStruct) IL_0EE3: ldarg.2 IL_0EE4: ldfld System.UInt16 Building::m_customBuffer2 IL_0EE9: ldloc.s 19 (System.Int32) IL_0EEB: ldloc.s 18 (System.Int32) IL_0EED: ldc.i4.1 IL_0EEE: shr IL_0EEF: sub IL_0EF0: ble => Label100 IL_0EF5: ldloc.s 14 (System.Int32) IL_0EF7: ldloc.s 16 (System.Int32) IL_0EF9: ldc.i4.1 IL_0EFA: shr IL_0EFB: bgt => Label101 IL_0F00: ldarg.2 IL_0F01: ldc.i4 255 IL_0F06: ldarg.2 IL_0F07: ldfld System.Byte Building::m_outgoingProblemTimer IL_0F0C: ldc.i4.1 IL_0F0D: add IL_0F0E: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0F13: conv.u1 IL_0F14: stfld System.Byte Building::m_outgoingProblemTimer IL_0F19: ldarg.2 IL_0F1A: ldfld System.Byte Building::m_outgoingProblemTimer IL_0F1F: ldc.i4 192 IL_0F24: blt => Label102 IL_0F29: ldloc.s 65 (Notification+ProblemStruct) IL_0F2B: ldc.i8 4611686018427650048 IL_0F34: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0F39: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0F3E: stloc.s 65 (Notification+ProblemStruct) IL_0F40: br => Label103 IL_0F45: Label102 IL_0F45: ldarg.2 IL_0F46: ldfld System.Byte Building::m_outgoingProblemTimer IL_0F4B: ldc.i4 128 IL_0F50: blt => Label104 IL_0F55: ldloc.s 65 (Notification+ProblemStruct) IL_0F57: ldc.i4 262144 IL_0F5C: conv.i8 IL_0F5D: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0F62: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0F67: stloc.s 65 (Notification+ProblemStruct) IL_0F69: Label103 IL_0F69: Label104 IL_0F69: br => Label105 IL_0F6E: Label100 IL_0F6E: Label101 IL_0F6E: ldarg.2 IL_0F6F: ldc.i4.0 IL_0F70: stfld System.Byte Building::m_outgoingProblemTimer IL_0F75: Label105 IL_0F75: ldarg.2 IL_0F76: ldfld System.UInt16 Building::m_customBuffer1 IL_0F7B: brtrue => Label106 IL_0F80: ldloc.s 21 (TransferManager+TransferReason) IL_0F82: ldc.i4 255 IL_0F87: beq => Label107 IL_0F8C: ldarg.2 IL_0F8D: ldc.i4 255 IL_0F92: ldarg.2 IL_0F93: ldfld System.Byte Building::m_incomingProblemTimer IL_0F98: ldc.i4.1 IL_0F99: add IL_0F9A: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0F9F: conv.u1 IL_0FA0: stfld System.Byte Building::m_incomingProblemTimer IL_0FA5: ldarg.2 IL_0FA6: ldfld System.Byte Building::m_incomingProblemTimer IL_0FAB: ldc.i4.s 64 IL_0FAD: bge => Label108 IL_0FB2: ldloc.s 65 (Notification+ProblemStruct) IL_0FB4: ldc.i4 1048576 IL_0FB9: conv.i8 IL_0FBA: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0FBF: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0FC4: stloc.s 65 (Notification+ProblemStruct) IL_0FC6: br => Label109 IL_0FCB: Label108 IL_0FCB: ldloc.s 65 (Notification+ProblemStruct) IL_0FCD: ldc.i8 4611686018428436480 IL_0FD6: call static ProblemStruct ProblemStruct::op_Implicit(Problem1 problem) IL_0FDB: call static ProblemStruct Notification::AddProblems(ProblemStruct problems1, ProblemStruct problems2) IL_0FE0: stloc.s 65 (Notification+ProblemStruct) IL_0FE2: Label109 IL_0FE2: br => Label110 IL_0FE7: Label106 IL_0FE7: Label107 IL_0FE7: ldarg.2 IL_0FE8: ldc.i4.0 IL_0FE9: stfld System.Byte Building::m_incomingProblemTimer IL_0FEE: Label110 IL_0FEE: ldarg.2 IL_0FEF: ldloc.s 65 (Notification+ProblemStruct) IL_0FF1: stfld ProblemStruct Building::m_problems IL_0FF6: ldloc.0 IL_0FF7: ldfld Array8`1 DistrictManager::m_districts IL_0FFC: ldfld District[] Array8`1::m_buffer IL_1001: ldloc.1 IL_1002: ldelema District IL_1007: ldloca.s 6 (Citizen+BehaviourData) IL_1009: ldloc.s 45 (System.Int32) IL_100B: ldloc.s 48 (System.Int32) IL_100D: ldloc.s 57 (System.Int32) IL_100F: ldloc.s 9 (System.Int32) IL_1011: ldloc.s 7 (System.Int32) IL_1013: ldc.i4.0 IL_1014: ldloc.s 9 (System.Int32) IL_1016: ldloc.s 8 (System.Int32) IL_1018: sub IL_1019: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_101E: ldloc.s 16 (System.Int32) IL_1020: ldloc.s 14 (System.Int32) IL_1022: ldloc.s 17 (System.Int32) IL_1024: ldarg.2 IL_1025: ldfld System.Byte Building::m_level IL_102A: ldloc.s 28 (System.Int32) IL_102C: ldloc.s 34 (System.Int32) IL_102E: ldloc.s 29 (System.Int32) IL_1030: ldloc.s 30 (System.Int32) IL_1032: ldloc.s 31 (System.Int32) IL_1034: ldloc.s 32 (System.Int32) IL_1036: ldc.i4.s 100 IL_1038: ldarg.2 IL_1039: ldfld System.UInt16 Building::m_garbageBuffer IL_103E: ldc.i4.s 50 IL_1040: div IL_1041: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_1046: ldarg.2 IL_1047: ldfld System.Byte Building::m_waterPollution IL_104C: ldc.i4.s 100 IL_104E: mul IL_104F: ldc.i4 255 IL_1054: div IL_1055: ldarg.2 IL_1056: ldfld System.Byte Building::m_finalImport IL_105B: ldarg.2 IL_105C: ldfld System.Byte Building::m_finalExport IL_1061: ldarg.0 IL_1062: ldfld BuildingInfo BuildingAI::m_info IL_1067: ldfld ItemClass BuildingInfo::m_class IL_106C: ldfld SubService ItemClass::m_subService IL_1071: call System.Void District::AddCommercialData(BehaviourData& behaviour, System.Int32 health, System.Int32 happiness, System.Int32 crimeRate, System.Int32 workCount, System.Int32 aliveWorkCount, System.Int32 emptyWorkCount, System.Int32 visitCount, System.Int32 aliveVisitCount, System.Int32 emptyVisitCount, System.Int32 level, System.Int32 electricityConsumption, System.Int32 heatingConsumption, System.Int32 waterConsumption, System.Int32 sewageAccumulation, System.Int32 garbageAccumulation, System.Int32 incomeAccumulation, System.Int32 garbagePiles, System.Int32 waterPollution, System.Int32 import, System.Int32 export, SubService subService) IL_1076: ldloc.2 IL_1077: brfalse => Label111 IL_107C: ldloc.0 IL_107D: ldfld Array8`1 DistrictManager::m_parks IL_1082: ldfld DistrictPark[] Array8`1::m_buffer IL_1087: ldloc.2 IL_1088: ldelema DistrictPark IL_108D: call System.Boolean DistrictPark::get_IsPedestrianZone() IL_1092: brfalse => Label112 IL_1097: ldloc.0 IL_1098: ldfld Array8`1 DistrictManager::m_parks IL_109D: ldfld DistrictPark[] Array8`1::m_buffer IL_10A2: ldloc.2 IL_10A3: ldelema DistrictPark IL_10A8: ldloca.s 6 (Citizen+BehaviourData) IL_10AA: ldloc.s 48 (System.Int32) IL_10AC: ldloc.s 9 (System.Int32) IL_10AE: ldloc.s 7 (System.Int32) IL_10B0: ldarg.0 IL_10B1: ldfld BuildingInfo BuildingAI::m_info IL_10B6: ldfld ItemClass BuildingInfo::m_class IL_10BB: ldfld SubService ItemClass::m_subService IL_10C0: call System.Void DistrictPark::AddCommercialData(BehaviourData& behaviour, System.Int32 happiness, System.Int32 workCount, System.Int32 aliveWorkCount, SubService subService) IL_10C5: Label111 IL_10C5: Label112 IL_10C5: ldarg.2 IL_10C6: ldfld System.Byte Building::m_fireIntensity IL_10CB: brtrue => Label113 IL_10D0: ldloc.s 21 (TransferManager+TransferReason) IL_10D2: ldc.i4 255 IL_10D7: beq => Label114 IL_10DC: ldloc.s 19 (System.Int32) IL_10DE: ldarg.2 IL_10DF: ldfld System.UInt16 Building::m_customBuffer1 IL_10E4: sub IL_10E5: ldloc.s 61 (System.Int32) IL_10E7: sub IL_10E8: stloc.s 66 (System.Int32) IL_10EA: ldloc.s 66 (System.Int32) IL_10EC: ldloc.s 13 (System.Int32) IL_10EE: ldc.i4.1 IL_10EF: shr IL_10F0: sub IL_10F1: stloc.s 66 (System.Int32) IL_10F3: ldloc.s 66 (System.Int32) IL_10F5: ldc.i4.0 IL_10F6: blt => Label115 IL_10FB: ldloca.s 67 (TransferManager+TransferOffer) IL_10FD: initobj TransferManager+TransferOffer IL_1103: ldloca.s 67 (TransferManager+TransferOffer) IL_1105: ldloc.s 66 (System.Int32) IL_1107: ldc.i4.8 IL_1108: mul IL_1109: ldloc.s 13 (System.Int32) IL_110B: div IL_110C: call System.Void TransferOffer::set_Priority(System.Int32 value) IL_1111: ldloca.s 67 (TransferManager+TransferOffer) IL_1113: ldarg.1 IL_1114: call System.Void TransferOffer::set_Building(System.UInt16 value) IL_1119: ldloca.s 67 (TransferManager+TransferOffer) IL_111B: ldarg.2 IL_111C: ldfld UnityEngine.Vector3 Building::m_position IL_1121: call System.Void TransferOffer::set_Position(UnityEngine.Vector3 value) IL_1126: ldloca.s 67 (TransferManager+TransferOffer) IL_1128: ldc.i4.1 IL_1129: call System.Void TransferOffer::set_Amount(System.Int32 value) IL_112E: ldloca.s 67 (TransferManager+TransferOffer) IL_1130: ldc.i4.0 IL_1131: call System.Void TransferOffer::set_Active(System.Boolean value) IL_1136: ldloc.s 21 (TransferManager+TransferReason) IL_1138: ldc.i4.s 17 IL_113A: beq => Label116 IL_113F: ldloc.s 21 (TransferManager+TransferReason) IL_1141: ldc.i4.s 32 IL_1143: bne.un => Label117 IL_1148: Label116 IL_1148: ldloc.s 63 (SimulationManager) IL_114A: ldfld System.UInt32 SimulationManager::m_currentFrameIndex IL_114F: ldc.i4 768 IL_1154: and IL_1155: ldc.i4.8 IL_1156: shr.un IL_1157: conv.u8 IL_1158: ldarg.1 IL_1159: ldc.i4.3 IL_115A: and IL_115B: conv.i8 IL_115C: bne.un => Label118 IL_1161: call static TransferManager ColossalFramework.Singleton`1::get_instance() IL_1166: ldc.i4.s 105 IL_1168: ldloc.s 67 (TransferManager+TransferOffer) IL_116A: callvirt System.Void TransferManager::AddIncomingOffer(TransferReason material, TransferOffer offer) IL_116F: br => Label119 IL_1174: Label117 IL_1174: Label118 IL_1174: call static TransferManager ColossalFramework.Singleton`1::get_instance() IL_1179: ldloc.s 21 (TransferManager+TransferReason) IL_117B: ldloc.s 67 (TransferManager+TransferOffer) IL_117D: callvirt System.Void TransferManager::AddIncomingOffer(TransferReason material, TransferOffer offer) IL_1182: Label113 IL_1182: Label114 IL_1182: Label115 IL_1182: Label119 IL_1182: ldarg.2 IL_1183: ldfld System.Byte Building::m_fireIntensity IL_1188: brtrue => Label120 IL_118D: ldloc.s 22 (TransferManager+TransferReason) IL_118F: ldc.i4 255 IL_1194: beq => Label121 IL_1199: ldarg.2 IL_119A: ldfld System.UInt16 Building::m_customBuffer2 IL_119F: ldloc.s 14 (System.Int32) IL_11A1: ldc.i4.s 100 IL_11A3: mul IL_11A4: sub IL_11A5: stloc.s 68 (System.Int32) IL_11A7: ldloc.s 68 (System.Int32) IL_11A9: ldc.i4.s 100 IL_11AB: blt => Label122 IL_11B0: ldloc.s 17 (System.Int32) IL_11B2: ldc.i4.0 IL_11B3: ble => Label123 IL_11B8: ldloca.s 69 (TransferManager+TransferOffer) IL_11BA: initobj TransferManager+TransferOffer IL_11C0: ldloca.s 69 (TransferManager+TransferOffer) IL_11C2: ldc.i4.1 IL_11C3: ldloc.s 68 (System.Int32) IL_11C5: ldc.i4.8 IL_11C6: mul IL_11C7: ldloc.s 19 (System.Int32) IL_11C9: div IL_11CA: call static System.Int32 UnityEngine.Mathf::Max(System.Int32 a, System.Int32 b) IL_11CF: call System.Void TransferOffer::set_Priority(System.Int32 value) IL_11D4: ldloca.s 69 (TransferManager+TransferOffer) IL_11D6: ldarg.1 IL_11D7: call System.Void TransferOffer::set_Building(System.UInt16 value) IL_11DC: ldloca.s 69 (TransferManager+TransferOffer) IL_11DE: ldarg.2 IL_11DF: ldfld UnityEngine.Vector3 Building::m_position IL_11E4: call System.Void TransferOffer::set_Position(UnityEngine.Vector3 value) IL_11E9: ldloca.s 69 (TransferManager+TransferOffer) IL_11EB: ldloc.s 68 (System.Int32) IL_11ED: ldc.i4.s 100 IL_11EF: div IL_11F0: ldloc.s 17 (System.Int32) IL_11F2: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_11F7: call System.Void TransferOffer::set_Amount(System.Int32 value) IL_11FC: ldloca.s 69 (TransferManager+TransferOffer) IL_11FE: ldc.i4.0 IL_11FF: call System.Void TransferOffer::set_Active(System.Boolean value) IL_1204: call static TransferManager ColossalFramework.Singleton`1::get_instance() IL_1209: ldloc.s 22 (TransferManager+TransferReason) IL_120B: ldloc.s 69 (TransferManager+TransferOffer) IL_120D: callvirt System.Void TransferManager::AddOutgoingOffer(TransferReason material, TransferOffer offer) IL_1212: Label120 IL_1212: Label121 IL_1212: Label122 IL_1212: Label123 IL_1212: ldarg.0 IL_1213: ldarg.1 IL_1214: ldarg.2 IL_1215: ldarg.3 IL_1216: call virtual System.Void PrivateBuildingAI::SimulationStepActive(System.UInt16 buildingID, Building& buildingData, Frame& frameData) IL_121B: ldarg.0 IL_121C: ldarg.1 IL_121D: ldarg.2 IL_121E: ldarg.3 IL_121F: ldloc.3 IL_1220: call System.Void CommonBuildingAI::HandleFire(System.UInt16 buildingID, Building& data, Frame& frameData, Services policies) IL_1225: // end original IL_1225: Label99 IL_1225: Label0 IL_1225: ldarg 1 IL_1229: ldarg 2 IL_122D: ldloc 71 (System.Byte) IL_1231: call static System.Void RealTime.GameConnection.Patches.CommercialBuildingAI_SimulationStepActive::Postfix(System.UInt16 buildingID, Building& buildingData, System.Byte __state) IL_1236: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: virtual System.Void MarketAI::SimulationStep(System.UInt16 buildingID, Building& buildingData, Frame& frameData) ### Replacement: static System.Void MarketAI::MarketAI.SimulationStep_Patch2(MarketAI this, System.UInt16 buildingID, Building& buildingData, Frame& frameData) IL_0000: Local var 0: SimulationManager IL_0000: Local var 1: System.UInt32 IL_0000: Local var 2: GuideController IL_0000: Local var 3: System.Boolean IL_0000: Local var 4: System.Byte IL_0000: ldc.i4 0 IL_0005: stloc 3 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 3 (System.Boolean) IL_000E: ldc.i4 0 IL_0013: stloc 4 (System.Byte) IL_0017: ldloc 3 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldarg 2 IL_0024: ldloca 4 (System.Byte) IL_0028: call static System.Boolean RealTime.GameConnection.Patches.MarketAI_SimulationStep::Prefix(Building& buildingData, System.Byte& __state) IL_002D: stloc 3 (System.Boolean) IL_0031: Label1 IL_0031: nop IL_0032: ldloc 3 (System.Boolean) IL_0036: brfalse => Label0 IL_003B: // start original IL_003B: ldarg.0 IL_003C: ldarg.1 IL_003D: ldarg.2 IL_003E: ldarg.3 IL_003F: call virtual System.Void PlayerBuildingAI::SimulationStep(System.UInt16 buildingID, Building& buildingData, Frame& frameData) IL_0044: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0049: stloc.0 IL_004A: ldloc.0 IL_004B: ldfld System.UInt32 SimulationManager::m_currentFrameIndex IL_0050: ldc.i4 3840 IL_0055: and IL_0056: ldc.i4.8 IL_0057: shr.un IL_0058: stloc.1 IL_0059: ldloc.1 IL_005A: ldc.i4.s 15 IL_005C: bne.un => Label2 IL_0061: ldarg.2 IL_0062: ldarg.2 IL_0063: ldfld System.Byte Building::m_tempImport IL_0068: stfld System.Byte Building::m_finalImport IL_006D: ldarg.2 IL_006E: ldarg.2 IL_006F: ldfld System.Byte Building::m_tempExport IL_0074: stfld System.Byte Building::m_finalExport IL_0079: ldarg.2 IL_007A: ldarg.2 IL_007B: ldfld System.Byte Building::m_education1 IL_0080: stfld System.Byte Building::m_education2 IL_0085: ldarg.2 IL_0086: ldc.i4.0 IL_0087: stfld System.Byte Building::m_tempImport IL_008C: ldarg.2 IL_008D: ldc.i4.0 IL_008E: stfld System.Byte Building::m_tempExport IL_0093: ldarg.2 IL_0094: ldc.i4.0 IL_0095: stfld System.Byte Building::m_education1 IL_009A: Label2 IL_009A: ldarg.0 IL_009B: ldfld BuildingInfo BuildingAI::m_info IL_00A0: brfalse => Label3 IL_00A5: ldarg.0 IL_00A6: ldfld BuildingInfo BuildingAI::m_info IL_00AB: ldfld ItemClass BuildingInfo::m_class IL_00B0: brfalse => Label4 IL_00B5: ldarg.0 IL_00B6: ldfld BuildingInfo BuildingAI::m_info IL_00BB: ldfld ItemClass BuildingInfo::m_class IL_00C0: ldfld Service ItemClass::m_service IL_00C5: ldc.i4.s 25 IL_00C7: bne.un => Label5 IL_00CC: call static GuideManager ColossalFramework.Singleton`1::get_instance() IL_00D1: ldfld GuideController SimulationManagerBase`2::m_properties IL_00D6: stloc.2 IL_00D7: ldloc.2 IL_00D8: brfalse => Label6 IL_00DD: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_00E2: ldfld BuildingInstanceGuide BuildingManager::m_fishFactoryMarketBuilt IL_00E7: brfalse => Label7 IL_00EC: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_00F1: ldfld BuildingInstanceGuide BuildingManager::m_fishFactoryMarketBuilt IL_00F6: ldloc.2 IL_00F7: ldfld GuideInfo GuideController::m_fishFactoryMarketBuilt IL_00FC: ldarg.1 IL_00FD: callvirt System.Void BuildingInstanceGuide::Activate(GuideInfo guideInfo, System.UInt16 buildingID) IL_0102: // end original IL_0102: Label3 IL_0102: Label4 IL_0102: Label5 IL_0102: Label6 IL_0102: Label7 IL_0102: Label0 IL_0102: ldarg 1 IL_0106: ldarg 2 IL_010A: ldloc 4 (System.Byte) IL_010E: call static System.Void RealTime.GameConnection.Patches.MarketAI_SimulationStep::Postfix(System.UInt16 buildingID, Building& buildingData, System.Byte __state) IL_0113: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: virtual UnityEngine.Color CommonBuildingAI::GetColor(System.UInt16 buildingID, Building& data, InfoMode infoMode) ### Replacement: static UnityEngine.Color CommonBuildingAI::CommonBuildingAI.GetColor_Patch1(CommonBuildingAI this, System.UInt16 buildingID, Building& data, InfoMode infoMode) IL_0000: Local var 0: System.Boolean IL_0000: Local var 1: UnityEngine.Color IL_0000: Local var 2: UnityEngine.Color IL_0000: Local var 3: System.Boolean IL_0000: Local var 4: UnityEngine.Color IL_0000: Local var 5: UnityEngine.Color IL_0000: Local var 6: System.Boolean IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Byte IL_0000: Local var 9: System.Int32 IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Int32 IL_0000: Local var 12: System.Int32 IL_0000: Local var 13: System.Int32 IL_0000: Local var 14: DistrictManager IL_0000: Local var 15: System.Byte IL_0000: Local var 16: DistrictPolicies/Services IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.UInt16 IL_0000: Local var 19: UnityEngine.Color IL_0000: Local var 20: System.Boolean IL_0000: Local var 21: EventManager IL_0000: Local var 22: EventInfo IL_0000: Local var 23: UnityEngine.Color32 IL_0000: Local var 24: System.Boolean IL_0000: Local var 25: UnityEngine.Color IL_0000: ldloca 25 (UnityEngine.Color) IL_0004: initobj UnityEngine.Color IL_000A: // start original IL_000A: ldarg.3 IL_000B: ldc.i4.s 16 IL_000D: sub IL_000E: switch => Labels0,1,2,3,4,5,6,7,8,9,10,11,12,13 IL_004B: Label1 IL_004B: Label3 IL_004B: Label5 IL_004B: Label7 IL_004B: Label8 IL_004B: Label10 IL_004B: Label12 IL_004B: ldarg.3 IL_004C: switch => Labels14,15,16,17,18,19 IL_0069: br => Label20 IL_006E: Label15 IL_006E: ldarg.0 IL_006F: ldarg.1 IL_0070: ldarg.2 IL_0071: callvirt virtual System.Boolean CommonBuildingAI::ShowConsumption(System.UInt16 buildingID, Building& data) IL_0076: brfalse => Label21 IL_007B: call static ElectricityManager ColossalFramework.Singleton`1::get_instance() IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 Building::m_position IL_0086: ldloca.s 0 (System.Boolean) IL_0088: callvirt System.Void ElectricityManager::CheckElectricity(UnityEngine.Vector3 pos, System.Boolean& electricity) IL_008D: ldloc.0 IL_008E: brfalse => Label22 IL_0093: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0098: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_009D: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_00A2: ldarg.3 IL_00A3: ldelem.ref IL_00A4: ldfld UnityEngine.Color ModeProperties::m_targetColor IL_00A9: stloc.1 IL_00AA: ldloca.s 1 (UnityEngine.Color) IL_00AC: ldc.r4 0 IL_00B1: stfld System.Single UnityEngine.Color::a IL_00B6: ldloc.1 IL_00B7: br => Label52 IL_00BC: Label22 IL_00BC: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_00C1: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_00C6: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_00CB: ldarg.3 IL_00CC: ldelem.ref IL_00CD: ldfld UnityEngine.Color ModeProperties::m_negativeColor IL_00D2: stloc.2 IL_00D3: ldloca.s 2 (UnityEngine.Color) IL_00D5: ldc.r4 0 IL_00DA: stfld System.Single UnityEngine.Color::a IL_00DF: ldloc.2 IL_00E0: br => Label53 IL_00E5: Label21 IL_00E5: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_00EA: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_00EF: ldfld UnityEngine.Color InfoProperties::m_neutralColor IL_00F4: br => Label54 IL_00F9: Label6 IL_00F9: ldarg.0 IL_00FA: ldarg.1 IL_00FB: ldarg.2 IL_00FC: callvirt virtual System.Boolean CommonBuildingAI::ShowConsumption(System.UInt16 buildingID, Building& data) IL_0101: brfalse => Label23 IL_0106: call static WaterManager ColossalFramework.Singleton`1::get_instance() IL_010B: ldarg.2 IL_010C: ldfld UnityEngine.Vector3 Building::m_position IL_0111: ldloca.s 3 (System.Boolean) IL_0113: callvirt System.Void WaterManager::CheckHeating(UnityEngine.Vector3 pos, System.Boolean& heating) IL_0118: ldloc.3 IL_0119: brfalse => Label24 IL_011E: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0123: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_0128: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_012D: ldarg.3 IL_012E: ldelem.ref IL_012F: ldfld UnityEngine.Color ModeProperties::m_targetColor IL_0134: stloc.s 4 (UnityEngine.Color) IL_0136: ldloca.s 4 (UnityEngine.Color) IL_0138: ldc.r4 0 IL_013D: stfld System.Single UnityEngine.Color::a IL_0142: ldloc.s 4 (UnityEngine.Color) IL_0144: br => Label55 IL_0149: Label24 IL_0149: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_014E: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_0153: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_0158: ldarg.3 IL_0159: ldelem.ref IL_015A: ldfld UnityEngine.Color ModeProperties::m_negativeColor IL_015F: stloc.s 5 (UnityEngine.Color) IL_0161: ldloca.s 5 (UnityEngine.Color) IL_0163: ldc.r4 0 IL_0168: stfld System.Single UnityEngine.Color::a IL_016D: ldloc.s 5 (UnityEngine.Color) IL_016F: br => Label56 IL_0174: Label23 IL_0174: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0179: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_017E: ldfld UnityEngine.Color InfoProperties::m_neutralColor IL_0183: br => Label57 IL_0188: Label16 IL_0188: ldarg.0 IL_0189: ldarg.1 IL_018A: ldarg.2 IL_018B: callvirt virtual System.Boolean CommonBuildingAI::ShowConsumption(System.UInt16 buildingID, Building& data) IL_0190: brfalse => Label25 IL_0195: call static WaterManager ColossalFramework.Singleton`1::get_instance() IL_019A: ldarg.2 IL_019B: ldfld UnityEngine.Vector3 Building::m_position IL_01A0: ldloca.s 6 (System.Boolean) IL_01A2: ldloca.s 7 (System.Boolean) IL_01A4: ldloca.s 8 (System.Byte) IL_01A6: callvirt System.Void WaterManager::CheckWater(UnityEngine.Vector3 pos, System.Boolean& water, System.Boolean& sewage, System.Byte& waterPollution) IL_01AB: ldloc.s 6 (System.Boolean) IL_01AD: brfalse => Label26 IL_01B2: ldloc.s 7 (System.Boolean) IL_01B4: brfalse => Label27 IL_01B9: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_01BE: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_01C3: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_01C8: ldarg.3 IL_01C9: ldelem.ref IL_01CA: ldfld UnityEngine.Color ModeProperties::m_targetColor IL_01CF: br => Label58 IL_01D4: Label26 IL_01D4: Label27 IL_01D4: ldloc.s 6 (System.Boolean) IL_01D6: brfalse => Label28 IL_01DB: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_01E0: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_01E5: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_01EA: ldarg.3 IL_01EB: ldelem.ref IL_01EC: ldfld UnityEngine.Color ModeProperties::m_negativeColor IL_01F1: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_01F6: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_01FB: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_0200: ldarg.3 IL_0201: ldelem.ref IL_0202: ldfld UnityEngine.Color ModeProperties::m_targetColor IL_0207: ldc.r4 0.5 IL_020C: call static UnityEngine.Color UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t) IL_0211: br => Label59 IL_0216: Label28 IL_0216: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_021B: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_0220: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_0225: ldarg.3 IL_0226: ldelem.ref IL_0227: ldfld UnityEngine.Color ModeProperties::m_negativeColor IL_022C: br => Label60 IL_0231: Label25 IL_0231: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0236: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_023B: ldfld UnityEngine.Color InfoProperties::m_neutralColor IL_0240: br => Label61 IL_0245: Label19 IL_0245: ldarg.0 IL_0246: ldarg.1 IL_0247: ldarg.2 IL_0248: callvirt virtual System.Boolean CommonBuildingAI::ShowConsumption(System.UInt16 buildingID, Building& data) IL_024D: brfalse => Label29 IL_0252: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0257: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_025C: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_0261: ldarg.3 IL_0262: ldelem.ref IL_0263: ldfld UnityEngine.Color ModeProperties::m_negativeColor IL_0268: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_026D: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_0272: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_0277: ldarg.3 IL_0278: ldelem.ref IL_0279: ldfld UnityEngine.Color ModeProperties::m_targetColor IL_027E: ldarg.2 IL_027F: ldfld System.Byte Building::m_happiness IL_0284: call static Happiness Citizen::GetHappinessLevel(System.Int32 happiness) IL_0289: conv.r4 IL_028A: ldc.r4 0.25 IL_028F: mul IL_0290: call static UnityEngine.Color UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t) IL_0295: br => Label62 IL_029A: Label29 IL_029A: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_029F: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_02A4: ldfld UnityEngine.Color InfoProperties::m_neutralColor IL_02A9: br => Label63 IL_02AE: Label17 IL_02AE: ldarg.0 IL_02AF: ldarg.1 IL_02B0: ldarg.2 IL_02B1: callvirt virtual System.Boolean CommonBuildingAI::ShowConsumption(System.UInt16 buildingID, Building& data) IL_02B6: brfalse => Label30 IL_02BB: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_02C0: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_02C5: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_02CA: ldarg.3 IL_02CB: ldelem.ref IL_02CC: ldfld UnityEngine.Color ModeProperties::m_targetColor IL_02D1: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_02D6: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_02DB: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_02E0: ldarg.3 IL_02E1: ldelem.ref IL_02E2: ldfld UnityEngine.Color ModeProperties::m_negativeColor IL_02E7: ldarg.2 IL_02E8: ldfld System.UInt16 Building::m_crimeBuffer IL_02ED: conv.r4 IL_02EE: ldc.r4 1 IL_02F3: ldarg.2 IL_02F4: ldfld System.Byte Building::m_citizenCount IL_02F9: conv.r4 IL_02FA: ldc.r4 100 IL_02FF: mul IL_0300: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0305: div IL_0306: call static UnityEngine.Color UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t) IL_030B: br => Label64 IL_0310: Label30 IL_0310: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0315: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_031A: ldfld UnityEngine.Color InfoProperties::m_neutralColor IL_031F: br => Label65 IL_0324: Label4 IL_0324: ldarg.0 IL_0325: ldarg.1 IL_0326: ldarg.2 IL_0327: callvirt virtual System.Boolean CommonBuildingAI::ShowConsumption(System.UInt16 buildingID, Building& data) IL_032C: brfalse => Label31 IL_0331: call static ImmaterialResourceManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldc.i4.s 13 IL_0338: ldarg.2 IL_0339: ldfld UnityEngine.Vector3 Building::m_position IL_033E: ldloca.s 9 (System.Int32) IL_0340: callvirt System.Void ImmaterialResourceManager::CheckLocalResource(Resource resource, UnityEngine.Vector3 position, System.Int32& local) IL_0345: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_034A: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_034F: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_0354: ldarg.3 IL_0355: ldelem.ref IL_0356: ldfld UnityEngine.Color ModeProperties::m_negativeColor IL_035B: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0360: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_0365: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_036A: ldarg.3 IL_036B: ldelem.ref IL_036C: ldfld UnityEngine.Color ModeProperties::m_targetColor IL_0371: ldloc.s 9 (System.Int32) IL_0373: conv.r4 IL_0374: ldc.r4 0.005 IL_0379: mul IL_037A: call static System.Single UnityEngine.Mathf::Clamp01(System.Single value) IL_037F: call static UnityEngine.Color UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t) IL_0384: br => Label66 IL_0389: Label31 IL_0389: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_038E: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_0393: ldfld UnityEngine.Color InfoProperties::m_neutralColor IL_0398: br => Label67 IL_039D: Label0 IL_039D: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_03A2: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_03A7: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_03AC: ldarg.3 IL_03AD: ldelem.ref IL_03AE: ldfld UnityEngine.Color ModeProperties::m_targetColor IL_03B3: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_03B8: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_03BD: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_03C2: ldarg.3 IL_03C3: ldelem.ref IL_03C4: ldfld UnityEngine.Color ModeProperties::m_negativeColor IL_03C9: ldc.i4.s 100 IL_03CB: ldarg.2 IL_03CC: ldfld System.UInt16 Building::m_garbageBuffer IL_03D1: ldc.i4.s 50 IL_03D3: div IL_03D4: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_03D9: conv.r4 IL_03DA: ldc.r4 0.01 IL_03DF: mul IL_03E0: call static UnityEngine.Color UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t) IL_03E5: br => Label68 IL_03EA: Label2 IL_03EA: ldarg.0 IL_03EB: ldarg.1 IL_03EC: ldarg.2 IL_03ED: callvirt virtual System.Boolean CommonBuildingAI::ShowConsumption(System.UInt16 buildingID, Building& data) IL_03F2: brfalse => Label32 IL_03F7: ldarg.0 IL_03F8: ldarg.1 IL_03F9: ldarg.2 IL_03FA: ldloca.s 10 (System.Int32) IL_03FC: ldloca.s 11 (System.Int32) IL_03FE: ldloca.s 12 (System.Int32) IL_0400: callvirt virtual System.Boolean BuildingAI::GetFireParameters(System.UInt16 buildingID, Building& buildingData, System.Int32& fireHazard, System.Int32& fireSize, System.Int32& fireTolerance) IL_0405: brfalse => Label33 IL_040A: ldloc.s 10 (System.Int32) IL_040C: brfalse => Label34 IL_0411: call static DistrictManager ColossalFramework.Singleton`1::get_instance() IL_0416: stloc.s 14 (DistrictManager) IL_0418: ldloc.s 14 (DistrictManager) IL_041A: ldarg.2 IL_041B: ldfld UnityEngine.Vector3 Building::m_position IL_0420: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3 worldPos) IL_0425: stloc.s 15 (System.Byte) IL_0427: ldloc.s 14 (DistrictManager) IL_0429: ldfld Array8`1 DistrictManager::m_districts IL_042E: ldfld District[] Array8`1::m_buffer IL_0433: ldloc.s 15 (System.Byte) IL_0435: ldelema District IL_043A: ldfld Services District::m_servicePolicies IL_043F: stloc.s 16 (DistrictPolicies+Services) IL_0441: ldloc.s 16 (DistrictPolicies+Services) IL_0443: ldc.i4.4 IL_0444: and IL_0445: brfalse => Label35 IL_044A: ldloc.s 10 (System.Int32) IL_044C: ldc.i4.s 75 IL_044E: mul IL_044F: ldc.i4.s 100 IL_0451: div IL_0452: stloc.s 10 (System.Int32) IL_0454: Label34 IL_0454: Label35 IL_0454: ldarg.2 IL_0455: call UnityEngine.Vector3 Building::CalculateSidewalkPosition() IL_045A: stloc.s 17 (UnityEngine.Vector3) IL_045C: call static CoverageManager ColossalFramework.Singleton`1::get_instance() IL_0461: ldloc.s 17 (UnityEngine.Vector3) IL_0463: callvirt System.Byte CoverageManager::FindFireCoverage(UnityEngine.Vector3 position) IL_0468: ldc.i4.s 100 IL_046A: mul IL_046B: ldc.i4 255 IL_0470: div IL_0471: stloc.s 13 (System.Int32) IL_0473: ldc.i4.s 100 IL_0475: ldc.i4.s 10 IL_0477: ldloc.s 12 (System.Int32) IL_0479: add IL_047A: ldc.i4.s 25 IL_047C: ldloc.s 13 (System.Int32) IL_047E: add IL_047F: mul IL_0480: ldc.i4 2000 IL_0485: mul IL_0486: ldc.i4.s 100 IL_0488: ldloc.s 10 (System.Int32) IL_048A: add IL_048B: ldc.i4.s 100 IL_048D: ldloc.s 11 (System.Int32) IL_048F: add IL_0490: mul IL_0491: div IL_0492: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0497: stloc.s 13 (System.Int32) IL_0499: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_049E: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_04A3: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_04A8: ldarg.3 IL_04A9: ldelem.ref IL_04AA: ldfld UnityEngine.Color ModeProperties::m_negativeColor IL_04AF: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_04B4: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_04B9: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_04BE: ldarg.3 IL_04BF: ldelem.ref IL_04C0: ldfld UnityEngine.Color ModeProperties::m_targetColor IL_04C5: ldloc.s 13 (System.Int32) IL_04C7: conv.r4 IL_04C8: ldc.r4 0.01 IL_04CD: mul IL_04CE: call static UnityEngine.Color UnityEngine.Color::Lerp(UnityEngine.Color a, UnityEngine.Color b, System.Single t) IL_04D3: br => Label69 IL_04D8: Label32 IL_04D8: Label33 IL_04D8: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_04DD: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_04E2: ldfld UnityEngine.Color InfoProperties::m_neutralColor IL_04E7: br => Label70 IL_04EC: Label11 IL_04EC: ldarg.2 IL_04ED: ldfld Flags Building::m_flags IL_04F2: ldc.i4 4194304 IL_04F7: and IL_04F8: brfalse => Label36 IL_04FD: ldarg.2 IL_04FE: ldfld System.Byte Building::m_levelUpProgress IL_0503: ldc.i4 255 IL_0508: bne.un => Label37 IL_050D: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0512: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_0517: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_051C: ldarg.3 IL_051D: ldelem.ref IL_051E: ldfld UnityEngine.Color ModeProperties::m_targetColor IL_0523: br => Label71 IL_0528: Label37 IL_0528: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_052D: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_0532: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_0537: ldarg.3 IL_0538: ldelem.ref IL_0539: ldfld UnityEngine.Color ModeProperties::m_negativeColor IL_053E: br => Label72 IL_0543: Label36 IL_0543: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0548: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_054D: ldfld UnityEngine.Color InfoProperties::m_neutralColor IL_0552: br => Label73 IL_0557: Label9 IL_0557: ldarg.2 IL_0558: ldfld Flags Building::m_flags IL_055D: ldc.i4 4227072 IL_0562: and IL_0563: ldc.i4 32768 IL_0568: bne.un => Label38 IL_056D: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_0572: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_0577: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_057C: ldarg.3 IL_057D: ldelem.ref IL_057E: ldfld UnityEngine.Color ModeProperties::m_negativeColor IL_0583: br => Label74 IL_0588: Label38 IL_0588: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_058D: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_0592: ldfld UnityEngine.Color InfoProperties::m_neutralColor IL_0597: br => Label75 IL_059C: Label13 IL_059C: ldarg.2 IL_059D: ldfld Flags Building::m_flags IL_05A2: ldc.i4 4194304 IL_05A7: and IL_05A8: brfalse => Label39 IL_05AD: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_05B2: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_05B7: ldfld UnityEngine.Color InfoProperties::m_neutralColor IL_05BC: br => Label76 IL_05C1: Label39 IL_05C1: ldarg.2 IL_05C2: ldfld Flags Building::m_flags IL_05C7: ldc.i4 32768 IL_05CC: and IL_05CD: brfalse => Label40 IL_05D2: call static InfoManager ColossalFramework.Singleton`1::get_instance() IL_05D7: ldfld InfoProperties SimulationManagerBase`2::m_properties IL_05DC: ldfld ModeProperties[] InfoProperties::m_modeProperties IL_05E1: ldarg.3 IL_05E2: ldelem.ref IL_05E3: ldfld UnityEngine.Color ModeProperties::m_negativeColor IL_05E8: br => Label77 IL_05ED: Label40 IL_05ED: call static DisasterManager ColossalFramework.Singleton`1::get_instance() IL_05F2: ldarg.2 IL_05F3: ldfld UnityEngine.Vector3 Building::m_position IL_05F8: callvirt UnityEngine.Color DisasterManager::SampleDisasterHazardMap(UnityEngine.Vector3 pos) IL_05FD: br => Label78 IL_0602: Label14 IL_0602: ldarg.2 IL_0603: ldfld System.UInt16 Building::m_eventIndex IL_0608: stloc.s 18 (System.UInt16) IL_060A: ldc.i4.1 IL_060B: stloc.s 20 (System.Boolean) IL_060D: ldloc.s 18 (System.UInt16) IL_060F: brfalse => Label41 IL_0614: call static EventManager ColossalFramework.Singleton`1::get_instance() IL_0619: stloc.s 21 (EventManager) IL_061B: ldloc.s 21 (EventManager) IL_061D: ldfld FastList`1 EventManager::m_events IL_0622: ldfld EventData[] FastList`1::m_buffer IL_0627: ldloc.s 18 (System.UInt16) IL_0629: ldelema EventData IL_062E: call EventInfo EventData::get_Info() IL_0633: stloc.s 22 (EventInfo) IL_0635: ldloc.s 22 (EventInfo) IL_0637: ldfld EventAI EventInfo::m_eventAI IL_063C: ldloc.s 18 (System.UInt16) IL_063E: ldloc.s 21 (EventManager) IL_0640: ldfld FastList`1 EventManager::m_events IL_0645: ldfld EventData[] FastList`1::m_buffer IL_064A: ldloc.s 18 (System.UInt16) IL_064C: ldelema EventData IL_0651: callvirt virtual UnityEngine.Color32 EventAI::GetBuildingColor(System.UInt16 eventID, EventData& data) IL_0656: stloc.s 23 (UnityEngine.Color32) IL_0658: ldloca.s 23 (UnityEngine.Color32) IL_065A: ldfld System.Byte UnityEngine.Color32::a IL_065F: ldc.i4 255 IL_0664: bne.un => Label42 IL_0669: ldloc.s 23 (UnityEngine.Color32) IL_066B: call static UnityEngine.Color UnityEngine.Color32::op_Implicit(UnityEngine.Color32 c) IL_0670: stloc.s 19 (UnityEngine.Color) IL_0672: br => Label43 IL_0677: Label42 IL_0677: ldarg.0 IL_0678: ldarg.1 IL_0679: ldarg.2 IL_067A: ldarg.3 IL_067B: call virtual UnityEngine.Color BuildingAI::GetColor(System.UInt16 buildingID, Building& data, InfoMode infoMode) IL_0680: stloc.s 19 (UnityEngine.Color) IL_0682: Label43 IL_0682: ldloc.s 22 (EventInfo) IL_0684: ldfld EventAI EventInfo::m_eventAI IL_0689: ldloc.s 18 (System.UInt16) IL_068B: ldloc.s 21 (EventManager) IL_068D: ldfld FastList`1 EventManager::m_events IL_0692: ldfld EventData[] FastList`1::m_buffer IL_0697: ldloc.s 18 (System.UInt16) IL_0699: ldelema EventData IL_069E: callvirt virtual System.Boolean EventAI::IsBuildingActive(System.UInt16 eventID, EventData& data) IL_06A3: stloc.s 20 (System.Boolean) IL_06A5: br => Label44 IL_06AA: Label41 IL_06AA: ldarg.0 IL_06AB: ldarg.1 IL_06AC: ldarg.2 IL_06AD: ldarg.3 IL_06AE: call virtual UnityEngine.Color BuildingAI::GetColor(System.UInt16 buildingID, Building& data, InfoMode infoMode) IL_06B3: stloc.s 19 (UnityEngine.Color) IL_06B5: Label44 IL_06B5: ldarg.0 IL_06B6: ldarg.1 IL_06B7: ldarg.2 IL_06B8: callvirt virtual System.Boolean CommonBuildingAI::ShowConsumption(System.UInt16 buildingID, Building& data) IL_06BD: brfalse => Label45 IL_06C2: ldarg.2 IL_06C3: ldfld System.Byte Building::m_fireIntensity IL_06C8: brtrue => Label46 IL_06CD: ldloc.s 20 (System.Boolean) IL_06CF: brfalse => Label47 IL_06D4: call static ElectricityManager ColossalFramework.Singleton`1::get_instance() IL_06D9: ldarg.2 IL_06DA: ldfld UnityEngine.Vector3 Building::m_position IL_06DF: ldloca.s 24 (System.Boolean) IL_06E1: callvirt System.Void ElectricityManager::CheckElectricity(UnityEngine.Vector3 pos, System.Boolean& electricity) IL_06E6: ldloca.s 19 (UnityEngine.Color) IL_06E8: ldloc.s 24 (System.Boolean) IL_06EA: brtrue => Label48 IL_06EF: ldarg.0 IL_06F0: callvirt virtual System.Single BuildingAI::ElectricityGridRadius() IL_06F5: ldc.r4 0 IL_06FA: bne.un => Label49 IL_06FF: Label48 IL_06FF: ldc.r4 1 IL_0704: br => Label50 IL_0709: Label49 IL_0709: ldc.r4 0 IL_070E: Label50 IL_070E: stfld System.Single UnityEngine.Color::a IL_0713: br => Label51 IL_0718: Label45 IL_0718: Label46 IL_0718: Label47 IL_0718: ldloca.s 19 (UnityEngine.Color) IL_071A: ldc.r4 0 IL_071F: stfld System.Single UnityEngine.Color::a IL_0724: Label51 IL_0724: ldloc.s 19 (UnityEngine.Color) IL_0726: br => Label79 IL_072B: Label18 IL_072B: Label20 IL_072B: ldarg.0 IL_072C: ldarg.1 IL_072D: ldarg.2 IL_072E: ldarg.3 IL_072F: call virtual UnityEngine.Color BuildingAI::GetColor(System.UInt16 buildingID, Building& data, InfoMode infoMode) IL_0734: // end original IL_0734: Label52 IL_0734: Label53 IL_0734: Label54 IL_0734: Label55 IL_0734: Label56 IL_0734: Label57 IL_0734: Label58 IL_0734: Label59 IL_0734: Label60 IL_0734: Label61 IL_0734: Label62 IL_0734: Label63 IL_0734: Label64 IL_0734: Label65 IL_0734: Label66 IL_0734: Label67 IL_0734: Label68 IL_0734: Label69 IL_0734: Label70 IL_0734: Label71 IL_0734: Label72 IL_0734: Label73 IL_0734: Label74 IL_0734: Label75 IL_0734: Label76 IL_0734: Label77 IL_0734: Label78 IL_0734: Label79 IL_0734: stloc 25 (UnityEngine.Color) IL_0738: ldarg 1 IL_073C: ldarg 3 IL_0740: ldloca 25 (UnityEngine.Color) IL_0744: call static System.Void RealTime.GameConnection.Patches.CommonBuildingAI_GetColor::Postfix(System.UInt16 buildingID, InfoMode infoMode, UnityEngine.Color& __result) IL_0749: ldloc 25 (UnityEngine.Color) IL_074D: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: virtual System.Void BuildingAI::CalculateUnspawnPosition(System.UInt16 buildingID, Building& data, ColossalFramework.Math.Randomizer& randomizer, CitizenInfo info, System.UInt16 ignoreInstance, UnityEngine.Vector3& position, UnityEngine.Vector3& target, UnityEngine.Vector2& direction, Flags& specialFlags) ### Replacement: static System.Void BuildingAI::BuildingAI.CalculateUnspawnPosition_Patch1(BuildingAI this, System.UInt16 buildingID, Building& data, ColossalFramework.Math.Randomizer& randomizer, CitizenInfo info, System.UInt16 ignoreInstance, UnityEngine.Vector3& position, UnityEngine.Vector3& target, UnityEngine.Vector2& direction, Flags& specialFlags) IL_0000: Local var 0: System.Single IL_0000: Local var 1: System.Boolean IL_0000: Local var 2: System.Boolean IL_0000: Local var 3: System.Int32 IL_0000: Local var 4: BuildingInfo/Prop IL_0000: Local var 5: System.Boolean IL_0000: Local var 6: ColossalFramework.Math.Randomizer IL_0000: Local var 7: UnityEngine.Vector3 IL_0000: Local var 8: System.Int32 IL_0000: Local var 9: PropInfo/SpecialPlace IL_0000: Local var 10: System.Single IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Single IL_0000: Local var 13: System.Int32 IL_0000: Local var 14: BuildingInfo/Prop IL_0000: Local var 15: ColossalFramework.Math.Randomizer IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: System.Single IL_0000: Local var 18: System.Single IL_0000: Local var 19: EventManager IL_0000: Local var 20: EventInfo IL_0000: Local var 21: UnityEngine.Vector3 IL_0000: // start original IL_0000: ldarg.s 4 IL_0002: ldfld CitizenAI CitizenInfo::m_citizenAI IL_0007: callvirt virtual System.Boolean CitizenAI::IsAnimal() IL_000C: brfalse => Label0 IL_0011: ldarg.0 IL_0012: ldarg.1 IL_0013: ldarg.2 IL_0014: ldarg.3 IL_0015: ldarg.s 4 IL_0017: ldarg.s 6 IL_0019: ldarg.s 7 IL_001B: ldarg.s 8 IL_001D: ldarg.s 9 IL_001F: call System.Boolean BuildingAI::CalculateAnimalPosition(System.UInt16 buildingID, Building& data, ColossalFramework.Math.Randomizer& randomizer, CitizenInfo info, UnityEngine.Vector3& position, UnityEngine.Vector3& target, UnityEngine.Vector2& direction, Flags& specialFlags) IL_0024: brfalse => Label1 IL_0029: br => Label35 IL_002E: Label0 IL_002E: Label1 IL_002E: ldarg.0 IL_002F: ldfld BuildingInfo BuildingAI::m_info IL_0034: ldarg.2 IL_0035: call System.Int32 Building::get_Length() IL_003A: call static System.Single Building::CalculateLocalMeshOffset(BuildingInfo info, System.Int32 length) IL_003F: stloc.0 IL_0040: ldarg.0 IL_0041: ldfld BuildingInfo BuildingAI::m_info IL_0046: ldfld Prop[] BuildingInfo::m_specialPlaces IL_004B: brfalse => Label2 IL_0050: ldarg.0 IL_0051: ldfld BuildingInfo BuildingAI::m_info IL_0056: ldfld Prop[] BuildingInfo::m_specialPlaces IL_005B: ldlen IL_005C: conv.i4 IL_005D: ldc.i4.0 IL_005E: ceq IL_0060: ldc.i4.0 IL_0061: ceq IL_0063: br => Label3 IL_0068: Label2 IL_0068: ldc.i4.0 IL_0069: Label3 IL_0069: stloc.1 IL_006A: ldarg.0 IL_006B: ldfld BuildingInfo BuildingAI::m_info IL_0070: ldfld Prop[] BuildingInfo::m_enterDoors IL_0075: brfalse => Label4 IL_007A: ldarg.0 IL_007B: ldfld BuildingInfo BuildingAI::m_info IL_0080: ldfld Prop[] BuildingInfo::m_enterDoors IL_0085: ldlen IL_0086: conv.i4 IL_0087: ldc.i4.0 IL_0088: ceq IL_008A: ldc.i4.0 IL_008B: ceq IL_008D: br => Label5 IL_0092: Label4 IL_0092: ldc.i4.0 IL_0093: Label5 IL_0093: stloc.2 IL_0094: ldloc.1 IL_0095: brfalse => Label6 IL_009A: ldloc.2 IL_009B: brfalse => Label7 IL_00A0: ldarg.3 IL_00A1: ldc.i4.4 IL_00A2: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_00A7: brtrue => Label8 IL_00AC: Label7 IL_00AC: ldarg.3 IL_00AD: ldarg.0 IL_00AE: ldfld BuildingInfo BuildingAI::m_info IL_00B3: ldfld Prop[] BuildingInfo::m_specialPlaces IL_00B8: ldlen IL_00B9: conv.i4 IL_00BA: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_00BF: stloc.3 IL_00C0: ldarg.0 IL_00C1: ldfld BuildingInfo BuildingAI::m_info IL_00C6: ldfld Prop[] BuildingInfo::m_specialPlaces IL_00CB: ldloc.3 IL_00CC: ldelem.ref IL_00CD: stloc.s 4 (BuildingInfo+Prop) IL_00CF: ldloc.s 4 (BuildingInfo+Prop) IL_00D1: ldfld PropInfo Prop::m_finalProp IL_00D6: ldfld SpecialPlace[] PropInfo::m_specialPlaces IL_00DB: brfalse => Label9 IL_00E0: ldloc.s 4 (BuildingInfo+Prop) IL_00E2: ldfld PropInfo Prop::m_finalProp IL_00E7: ldfld SpecialPlace[] PropInfo::m_specialPlaces IL_00EC: ldlen IL_00ED: conv.i4 IL_00EE: ldc.i4.0 IL_00EF: ceq IL_00F1: ldc.i4.0 IL_00F2: ceq IL_00F4: br => Label10 IL_00F9: Label9 IL_00F9: ldc.i4.0 IL_00FA: Label10 IL_00FA: stloc.s 5 (System.Boolean) IL_00FC: ldloc.s 5 (System.Boolean) IL_00FE: brfalse => Label11 IL_0103: ldloca.s 6 (ColossalFramework.Math.Randomizer) IL_0105: ldarg.1 IL_0106: ldc.i4.6 IL_0107: shl IL_0108: ldloc.s 4 (BuildingInfo+Prop) IL_010A: ldfld System.Int32 Prop::m_index IL_010F: or IL_0110: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0115: ldloca.s 6 (ColossalFramework.Math.Randomizer) IL_0117: ldc.i4.s 100 IL_0119: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_011E: ldloc.s 4 (BuildingInfo+Prop) IL_0120: ldfld System.Int32 Prop::m_probability IL_0125: bge => Label12 IL_012A: ldarg.2 IL_012B: call System.Int32 Building::get_Length() IL_0130: ldloc.s 4 (BuildingInfo+Prop) IL_0132: ldfld System.Int32 Prop::m_requiredLength IL_0137: blt => Label13 IL_013C: ldloc.s 4 (BuildingInfo+Prop) IL_013E: ldfld UnityEngine.Vector3 Prop::m_position IL_0143: stloc.s 7 (UnityEngine.Vector3) IL_0145: ldloca.s 7 (UnityEngine.Vector3) IL_0147: ldloc.0 IL_0148: ldloca.s 7 (UnityEngine.Vector3) IL_014A: ldfld System.Single UnityEngine.Vector3::z IL_014F: sub IL_0150: stfld System.Single UnityEngine.Vector3::z IL_0155: ldarg.s 6 IL_0157: ldarg.2 IL_0158: ldloc.s 7 (UnityEngine.Vector3) IL_015A: call UnityEngine.Vector3 Building::CalculatePosition(UnityEngine.Vector3 offset) IL_015F: stobj UnityEngine.Vector3 IL_0164: ldarg.3 IL_0165: ldloc.s 4 (BuildingInfo+Prop) IL_0167: ldfld PropInfo Prop::m_finalProp IL_016C: ldfld SpecialPlace[] PropInfo::m_specialPlaces IL_0171: ldlen IL_0172: conv.i4 IL_0173: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0178: stloc.s 8 (System.Int32) IL_017A: ldloc.s 4 (BuildingInfo+Prop) IL_017C: ldfld PropInfo Prop::m_finalProp IL_0181: ldfld SpecialPlace[] PropInfo::m_specialPlaces IL_0186: ldloc.s 8 (System.Int32) IL_0188: ldelema PropInfo+SpecialPlace IL_018D: ldobj PropInfo+SpecialPlace IL_0192: stloc.s 9 (PropInfo+SpecialPlace) IL_0194: ldarg.2 IL_0195: ldfld System.Single Building::m_angle IL_019A: ldloc.s 4 (BuildingInfo+Prop) IL_019C: ldfld System.Single Prop::m_radAngle IL_01A1: add IL_01A2: stloc.s 10 (System.Single) IL_01A4: ldloc.s 10 (System.Single) IL_01A6: call static System.Single UnityEngine.Mathf::Cos(System.Single f) IL_01AB: stloc.s 11 (System.Single) IL_01AD: ldloc.s 10 (System.Single) IL_01AF: call static System.Single UnityEngine.Mathf::Sin(System.Single f) IL_01B4: stloc.s 12 (System.Single) IL_01B6: ldloc.s 4 (BuildingInfo+Prop) IL_01B8: ldfld System.Boolean Prop::m_fixedHeight IL_01BD: brtrue => Label14 IL_01C2: ldarg.s 6 IL_01C4: call static TerrainManager ColossalFramework.Singleton`1::get_instance() IL_01C9: ldarg.s 6 IL_01CB: ldobj UnityEngine.Vector3 IL_01D0: callvirt System.Single TerrainManager::SampleDetailHeight(UnityEngine.Vector3 worldPos) IL_01D5: stfld System.Single UnityEngine.Vector3::y IL_01DA: br => Label15 IL_01DF: Label14 IL_01DF: ldarg.0 IL_01E0: ldfld BuildingInfo BuildingAI::m_info IL_01E5: ldfld System.Boolean BuildingInfoBase::m_requireHeightMap IL_01EA: brfalse => Label16 IL_01EF: ldarg.s 6 IL_01F1: call static TerrainManager ColossalFramework.Singleton`1::get_instance() IL_01F6: ldarg.s 6 IL_01F8: ldobj UnityEngine.Vector3 IL_01FD: callvirt System.Single TerrainManager::SampleDetailHeight(UnityEngine.Vector3 worldPos) IL_0202: ldloca.s 7 (UnityEngine.Vector3) IL_0204: ldfld System.Single UnityEngine.Vector3::y IL_0209: add IL_020A: stfld System.Single UnityEngine.Vector3::y IL_020F: Label15 IL_020F: Label16 IL_020F: ldarg.s 6 IL_0211: dup IL_0212: ldfld System.Single UnityEngine.Vector3::x IL_0217: ldloca.s 9 (PropInfo+SpecialPlace) IL_0219: ldflda UnityEngine.Vector3 SpecialPlace::m_position IL_021E: ldfld System.Single UnityEngine.Vector3::x IL_0223: ldloc.s 11 (System.Single) IL_0225: mul IL_0226: ldloca.s 9 (PropInfo+SpecialPlace) IL_0228: ldflda UnityEngine.Vector3 SpecialPlace::m_position IL_022D: ldfld System.Single UnityEngine.Vector3::z IL_0232: ldloc.s 12 (System.Single) IL_0234: mul IL_0235: add IL_0236: add IL_0237: stfld System.Single UnityEngine.Vector3::x IL_023C: ldarg.s 6 IL_023E: dup IL_023F: ldfld System.Single UnityEngine.Vector3::y IL_0244: ldloca.s 9 (PropInfo+SpecialPlace) IL_0246: ldflda UnityEngine.Vector3 SpecialPlace::m_position IL_024B: ldfld System.Single UnityEngine.Vector3::y IL_0250: add IL_0251: stfld System.Single UnityEngine.Vector3::y IL_0256: ldarg.s 6 IL_0258: dup IL_0259: ldfld System.Single UnityEngine.Vector3::z IL_025E: ldloca.s 9 (PropInfo+SpecialPlace) IL_0260: ldflda UnityEngine.Vector3 SpecialPlace::m_position IL_0265: ldfld System.Single UnityEngine.Vector3::x IL_026A: ldloc.s 12 (System.Single) IL_026C: mul IL_026D: ldloca.s 9 (PropInfo+SpecialPlace) IL_026F: ldflda UnityEngine.Vector3 SpecialPlace::m_position IL_0274: ldfld System.Single UnityEngine.Vector3::z IL_0279: ldloc.s 11 (System.Single) IL_027B: mul IL_027C: sub IL_027D: add IL_027E: stfld System.Single UnityEngine.Vector3::z IL_0283: ldarg.0 IL_0284: ldarg.s 6 IL_0286: ldobj UnityEngine.Vector3 IL_028B: ldarg.s 5 IL_028D: call System.Boolean BuildingAI::IsSomeBodyThere(UnityEngine.Vector3 position, System.UInt16 ignoreInstance) IL_0292: brtrue => Label17 IL_0297: ldarg.s 8 IL_0299: ldloca.s 9 (PropInfo+SpecialPlace) IL_029B: ldflda UnityEngine.Vector3 SpecialPlace::m_direction IL_02A0: ldfld System.Single UnityEngine.Vector3::x IL_02A5: ldloc.s 11 (System.Single) IL_02A7: mul IL_02A8: ldloca.s 9 (PropInfo+SpecialPlace) IL_02AA: ldflda UnityEngine.Vector3 SpecialPlace::m_direction IL_02AF: ldfld System.Single UnityEngine.Vector3::z IL_02B4: ldloc.s 12 (System.Single) IL_02B6: mul IL_02B7: add IL_02B8: stfld System.Single UnityEngine.Vector2::x IL_02BD: ldarg.s 8 IL_02BF: ldloca.s 9 (PropInfo+SpecialPlace) IL_02C1: ldflda UnityEngine.Vector3 SpecialPlace::m_direction IL_02C6: ldfld System.Single UnityEngine.Vector3::x IL_02CB: ldloc.s 12 (System.Single) IL_02CD: mul IL_02CE: ldloca.s 9 (PropInfo+SpecialPlace) IL_02D0: ldflda UnityEngine.Vector3 SpecialPlace::m_direction IL_02D5: ldfld System.Single UnityEngine.Vector3::z IL_02DA: ldloc.s 11 (System.Single) IL_02DC: mul IL_02DD: sub IL_02DE: stfld System.Single UnityEngine.Vector2::y IL_02E3: ldarg.s 9 IL_02E5: ldc.i4.s 64 IL_02E7: ldloca.s 9 (PropInfo+SpecialPlace) IL_02E9: ldfld Flags SpecialPlace::m_specialFlags IL_02EE: or IL_02EF: stind.i4 IL_02F0: ldarg.0 IL_02F1: ldfld BuildingInfo BuildingAI::m_info IL_02F6: ldfld System.Boolean BuildingInfo::m_hasPedestrianPaths IL_02FB: brfalse => Label18 IL_0300: ldarg.s 7 IL_0302: ldarg.s 6 IL_0304: ldobj UnityEngine.Vector3 IL_0309: stobj UnityEngine.Vector3 IL_030E: br => Label19 IL_0313: Label18 IL_0313: ldarg.s 7 IL_0315: ldarg.2 IL_0316: ldloca.s 7 (UnityEngine.Vector3) IL_0318: ldfld System.Single UnityEngine.Vector3::x IL_031D: ldc.r4 0 IL_0322: call UnityEngine.Vector3 Building::CalculateSidewalkPosition(System.Single xOffset, System.Single zOffset) IL_0327: stobj UnityEngine.Vector3 IL_032C: Label19 IL_032C: br => Label36 IL_0331: Label6 IL_0331: Label8 IL_0331: Label11 IL_0331: Label12 IL_0331: Label13 IL_0331: Label17 IL_0331: ldloc.2 IL_0332: brfalse => Label20 IL_0337: ldarg.3 IL_0338: ldarg.0 IL_0339: ldfld BuildingInfo BuildingAI::m_info IL_033E: ldfld Prop[] BuildingInfo::m_enterDoors IL_0343: ldlen IL_0344: conv.i4 IL_0345: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_034A: stloc.s 13 (System.Int32) IL_034C: ldarg.0 IL_034D: ldfld BuildingInfo BuildingAI::m_info IL_0352: ldfld Prop[] BuildingInfo::m_enterDoors IL_0357: ldloc.s 13 (System.Int32) IL_0359: ldelem.ref IL_035A: stloc.s 14 (BuildingInfo+Prop) IL_035C: ldloca.s 15 (ColossalFramework.Math.Randomizer) IL_035E: ldarg.1 IL_035F: ldc.i4.6 IL_0360: shl IL_0361: ldloc.s 14 (BuildingInfo+Prop) IL_0363: ldfld System.Int32 Prop::m_index IL_0368: or IL_0369: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_036E: ldloca.s 15 (ColossalFramework.Math.Randomizer) IL_0370: ldc.i4.s 100 IL_0372: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0377: ldloc.s 14 (BuildingInfo+Prop) IL_0379: ldfld System.Int32 Prop::m_probability IL_037E: bge => Label21 IL_0383: ldarg.2 IL_0384: call System.Int32 Building::get_Length() IL_0389: ldloc.s 14 (BuildingInfo+Prop) IL_038B: ldfld System.Int32 Prop::m_requiredLength IL_0390: blt => Label22 IL_0395: ldloc.s 14 (BuildingInfo+Prop) IL_0397: ldfld UnityEngine.Vector3 Prop::m_position IL_039C: stloc.s 16 (UnityEngine.Vector3) IL_039E: ldloca.s 16 (UnityEngine.Vector3) IL_03A0: ldloc.0 IL_03A1: ldloca.s 16 (UnityEngine.Vector3) IL_03A3: ldfld System.Single UnityEngine.Vector3::z IL_03A8: sub IL_03A9: stfld System.Single UnityEngine.Vector3::z IL_03AE: ldloc.s 14 (BuildingInfo+Prop) IL_03B0: ldfld PropInfo Prop::m_finalProp IL_03B5: ldfld PropInfoGen PropInfo::m_generatedInfo IL_03BA: ldflda UnityEngine.Vector3 PropInfoGen::m_size IL_03BF: ldfld System.Single UnityEngine.Vector3::x IL_03C4: ldc.r4 0.5 IL_03C9: mul IL_03CA: ldarg.s 4 IL_03CC: ldfld System.Single CitizenInfo::m_radius IL_03D1: sub IL_03D2: stloc.s 17 (System.Single) IL_03D4: ldloc.s 17 (System.Single) IL_03D6: ldc.r4 0.1 IL_03DB: blt.un => Label23 IL_03E0: ldloc.s 17 (System.Single) IL_03E2: ldarg.3 IL_03E3: ldc.i4 1000 IL_03E8: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_03ED: conv.r4 IL_03EE: ldc.r4 0.001 IL_03F3: mul IL_03F4: call static System.Single UnityEngine.Mathf::Sqrt(System.Single f) IL_03F9: mul IL_03FA: stloc.s 17 (System.Single) IL_03FC: ldarg.3 IL_03FD: ldc.i4 1000 IL_0402: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0407: conv.r4 IL_0408: ldc.r4 0.006283185 IL_040D: mul IL_040E: stloc.s 18 (System.Single) IL_0410: ldloca.s 16 (UnityEngine.Vector3) IL_0412: dup IL_0413: ldfld System.Single UnityEngine.Vector3::x IL_0418: ldloc.s 18 (System.Single) IL_041A: call static System.Single UnityEngine.Mathf::Cos(System.Single f) IL_041F: ldloc.s 17 (System.Single) IL_0421: mul IL_0422: add IL_0423: stfld System.Single UnityEngine.Vector3::x IL_0428: ldloca.s 16 (UnityEngine.Vector3) IL_042A: dup IL_042B: ldfld System.Single UnityEngine.Vector3::z IL_0430: ldloc.s 18 (System.Single) IL_0432: call static System.Single UnityEngine.Mathf::Sin(System.Single f) IL_0437: ldloc.s 17 (System.Single) IL_0439: mul IL_043A: add IL_043B: stfld System.Single UnityEngine.Vector3::z IL_0440: Label23 IL_0440: ldarg.s 6 IL_0442: ldarg.2 IL_0443: ldloc.s 16 (UnityEngine.Vector3) IL_0445: call UnityEngine.Vector3 Building::CalculatePosition(UnityEngine.Vector3 offset) IL_044A: stobj UnityEngine.Vector3 IL_044F: ldarg.s 8 IL_0451: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero() IL_0456: stobj UnityEngine.Vector2 IL_045B: ldloc.s 14 (BuildingInfo+Prop) IL_045D: ldfld PropInfo Prop::m_finalProp IL_0462: ldfld DoorType PropInfo::m_doorType IL_0467: ldc.i4.s 17 IL_0469: and IL_046A: ldc.i4.s 17 IL_046C: bne.un => Label24 IL_0471: ldarg.2 IL_0472: ldfld System.UInt16 Building::m_eventIndex IL_0477: brfalse => Label25 IL_047C: call static EventManager ColossalFramework.Singleton`1::get_instance() IL_0481: stloc.s 19 (EventManager) IL_0483: ldloc.s 19 (EventManager) IL_0485: ldfld FastList`1 EventManager::m_events IL_048A: ldfld EventData[] FastList`1::m_buffer IL_048F: ldarg.2 IL_0490: ldfld System.UInt16 Building::m_eventIndex IL_0495: ldelema EventData IL_049A: call EventInfo EventData::get_Info() IL_049F: stloc.s 20 (EventInfo) IL_04A1: ldarg.s 9 IL_04A3: ldloc.s 20 (EventInfo) IL_04A5: ldfld EventAI EventInfo::m_eventAI IL_04AA: ldarg.2 IL_04AB: ldfld System.UInt16 Building::m_eventIndex IL_04B0: ldloc.s 19 (EventManager) IL_04B2: ldfld FastList`1 EventManager::m_events IL_04B7: ldfld EventData[] FastList`1::m_buffer IL_04BC: ldarg.2 IL_04BD: ldfld System.UInt16 Building::m_eventIndex IL_04C2: ldelema EventData IL_04C7: ldarg.1 IL_04C8: ldarg.s 6 IL_04CA: ldarg.s 8 IL_04CC: callvirt virtual Flags EventAI::GetHangAroundFlags(System.UInt16 eventID, EventData& data, System.UInt16 buildingID, UnityEngine.Vector3& position, UnityEngine.Vector2& direction) IL_04D1: stind.i4 IL_04D2: br => Label26 IL_04D7: Label25 IL_04D7: ldarg.s 9 IL_04D9: ldc.i4.s 64 IL_04DB: stind.i4 IL_04DC: Label26 IL_04DC: br => Label27 IL_04E1: Label24 IL_04E1: ldarg.s 9 IL_04E3: ldc.i4.0 IL_04E4: stind.i4 IL_04E5: Label27 IL_04E5: ldloc.s 14 (BuildingInfo+Prop) IL_04E7: ldfld System.Boolean Prop::m_fixedHeight IL_04EC: brtrue => Label28 IL_04F1: ldarg.s 6 IL_04F3: call static TerrainManager ColossalFramework.Singleton`1::get_instance() IL_04F8: ldarg.s 6 IL_04FA: ldobj UnityEngine.Vector3 IL_04FF: callvirt System.Single TerrainManager::SampleDetailHeight(UnityEngine.Vector3 worldPos) IL_0504: stfld System.Single UnityEngine.Vector3::y IL_0509: br => Label29 IL_050E: Label28 IL_050E: ldarg.0 IL_050F: ldfld BuildingInfo BuildingAI::m_info IL_0514: ldfld System.Boolean BuildingInfoBase::m_requireHeightMap IL_0519: brfalse => Label30 IL_051E: ldarg.s 6 IL_0520: call static TerrainManager ColossalFramework.Singleton`1::get_instance() IL_0525: ldarg.s 6 IL_0527: ldobj UnityEngine.Vector3 IL_052C: callvirt System.Single TerrainManager::SampleDetailHeight(UnityEngine.Vector3 worldPos) IL_0531: ldloca.s 16 (UnityEngine.Vector3) IL_0533: ldfld System.Single UnityEngine.Vector3::y IL_0538: add IL_0539: stfld System.Single UnityEngine.Vector3::y IL_053E: Label29 IL_053E: Label30 IL_053E: ldarg.0 IL_053F: ldfld BuildingInfo BuildingAI::m_info IL_0544: ldfld System.Boolean BuildingInfo::m_hasPedestrianPaths IL_0549: brfalse => Label31 IL_054E: ldarg.s 7 IL_0550: ldarg.s 6 IL_0552: ldobj UnityEngine.Vector3 IL_0557: stobj UnityEngine.Vector3 IL_055C: br => Label32 IL_0561: Label31 IL_0561: ldarg.s 7 IL_0563: ldarg.2 IL_0564: ldloca.s 16 (UnityEngine.Vector3) IL_0566: ldfld System.Single UnityEngine.Vector3::x IL_056B: ldc.r4 0 IL_0570: call UnityEngine.Vector3 Building::CalculateSidewalkPosition(System.Single xOffset, System.Single zOffset) IL_0575: stobj UnityEngine.Vector3 IL_057A: Label32 IL_057A: br => Label37 IL_057F: Label20 IL_057F: Label21 IL_057F: Label22 IL_057F: ldloca.s 21 (UnityEngine.Vector3) IL_0581: ldc.r4 0 IL_0586: ldc.r4 0 IL_058B: ldloc.0 IL_058C: call System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0591: ldarg.s 6 IL_0593: ldarg.2 IL_0594: ldloc.s 21 (UnityEngine.Vector3) IL_0596: call UnityEngine.Vector3 Building::CalculatePosition(UnityEngine.Vector3 offset) IL_059B: stobj UnityEngine.Vector3 IL_05A0: ldarg.s 6 IL_05A2: call static TerrainManager ColossalFramework.Singleton`1::get_instance() IL_05A7: ldarg.s 6 IL_05A9: ldobj UnityEngine.Vector3 IL_05AE: callvirt System.Single TerrainManager::SampleDetailHeight(UnityEngine.Vector3 worldPos) IL_05B3: stfld System.Single UnityEngine.Vector3::y IL_05B8: ldarg.s 8 IL_05BA: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero() IL_05BF: stobj UnityEngine.Vector2 IL_05C4: ldarg.s 9 IL_05C6: ldc.i4.0 IL_05C7: stind.i4 IL_05C8: ldarg.0 IL_05C9: ldfld BuildingInfo BuildingAI::m_info IL_05CE: ldfld System.Boolean BuildingInfo::m_hasPedestrianPaths IL_05D3: brfalse => Label33 IL_05D8: ldarg.s 7 IL_05DA: ldarg.s 6 IL_05DC: ldobj UnityEngine.Vector3 IL_05E1: stobj UnityEngine.Vector3 IL_05E6: br => Label34 IL_05EB: Label33 IL_05EB: ldarg.s 7 IL_05ED: ldarg.2 IL_05EE: ldloca.s 21 (UnityEngine.Vector3) IL_05F0: ldfld System.Single UnityEngine.Vector3::x IL_05F5: ldc.r4 0 IL_05FA: call UnityEngine.Vector3 Building::CalculateSidewalkPosition(System.Single xOffset, System.Single zOffset) IL_05FF: stobj UnityEngine.Vector3 IL_0604: // end original IL_0604: Label34 IL_0604: Label35 IL_0604: Label36 IL_0604: Label37 IL_0604: ldarg.0 IL_0605: ldarg 1 IL_0609: ldarg 2 IL_060D: ldarg 3 IL_0611: ldarg 4 IL_0615: ldarg 6 IL_0619: ldarg 7 IL_061D: ldarg 9 IL_0621: call static System.Void RealTime.GameConnection.Patches.BuildingAI_CalculateUnspawnPosition::Postfix(BuildingAI __instance, System.UInt16 buildingID, Building& data, ColossalFramework.Math.Randomizer& randomizer, CitizenInfo info, UnityEngine.Vector3& position, UnityEngine.Vector3& target, Flags& specialFlags) IL_0626: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: virtual System.Void PlayerBuildingAI::ProduceGoods(System.UInt16 buildingID, Building& buildingData, Frame& frameData, System.Int32 productionRate, System.Int32 finalProductionRate, BehaviourData& behaviour, System.Int32 aliveWorkerCount, System.Int32 totalWorkerCount, System.Int32 workPlaceCount, System.Int32 aliveVisitorCount, System.Int32 totalVisitorCount, System.Int32 visitPlaceCount) ### Replacement: static System.Void PlayerBuildingAI::PlayerBuildingAI.ProduceGoods_Patch1(PlayerBuildingAI this, System.UInt16 buildingID, Building& buildingData, Frame& frameData, System.Int32 productionRate, System.Int32 finalProductionRate, BehaviourData& behaviour, System.Int32 aliveWorkerCount, System.Int32 totalWorkerCount, System.Int32 workPlaceCount, System.Int32 aliveVisitorCount, System.Int32 totalVisitorCount, System.Int32 visitPlaceCount) IL_0000: // start original IL_0000: ldarg.s 5 IL_0002: brfalse => Label0 IL_0007: ldarg.2 IL_0008: dup IL_0009: ldfld Flags Building::m_flags IL_000E: ldc.i4 131072 IL_0013: or IL_0014: stfld Flags Building::m_flags IL_0019: ldarg.0 IL_001A: ldfld EventType PlayerBuildingAI::m_supportEvents IL_001F: brtrue => Label1 IL_0024: ldarg.2 IL_0025: ldfld System.UInt16 Building::m_eventIndex IL_002A: brfalse => Label2 IL_002F: Label1 IL_002F: ldarg.0 IL_0030: ldarg.1 IL_0031: ldarg.2 IL_0032: call System.Void PlayerBuildingAI::CheckEvents(System.UInt16 buildingID, Building& buildingData) IL_0037: Label2 IL_0037: br => Label3 IL_003C: Label0 IL_003C: ldarg.2 IL_003D: dup IL_003E: ldfld Flags Building::m_flags IL_0043: ldc.i4 -131073 IL_0048: and IL_0049: stfld Flags Building::m_flags IL_004E: // end original IL_004E: Label3 IL_004E: ldarg 1 IL_0052: ldarg 2 IL_0056: call static System.Void RealTime.GameConnection.Patches.PlayerBuildingAI_ProduceGoods::Postfix(System.UInt16 buildingID, Building& buildingData) IL_005B: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: System.Void FishingHarborAI::TrySpawnBoat(System.UInt16 buildingID, Building& buildingData) ### Replacement: static System.Void FishingHarborAI::FishingHarborAI.TrySpawnBoat_Patch1(FishingHarborAI this, System.UInt16 buildingID, Building& buildingData) IL_0000: Local var 0: VehicleManager IL_0000: Local var 1: UnityEngine.Vector3 IL_0000: Local var 2: VehicleInfo IL_0000: Local var 3: System.UInt16 IL_0000: Local var 4: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 4 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 4 (System.Boolean) IL_000E: ldloc 4 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 2 IL_001B: call static System.Boolean RealTime.GameConnection.Patches.FishingHarborAI_TrySpawnBoat::Prefix(Building& buildingData) IL_0020: stloc 4 (System.Boolean) IL_0024: Label1 IL_0024: nop IL_0025: ldloc 4 (System.Boolean) IL_0029: brfalse => Label0 IL_002E: // start original IL_002E: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_0033: stloc.0 IL_0034: ldarg.2 IL_0035: ldarg.0 IL_0036: ldfld UnityEngine.Vector3 FishingHarborAI::m_boatSpawnPosition IL_003B: call UnityEngine.Vector3 Building::CalculatePosition(UnityEngine.Vector3 offset) IL_0040: stloc.1 IL_0041: ldloc.0 IL_0042: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0047: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_004C: ldarg.0 IL_004D: ldfld ItemClass FishingHarborAI::m_boatClass IL_0052: ldfld Service ItemClass::m_service IL_0057: ldarg.0 IL_0058: ldfld ItemClass FishingHarborAI::m_boatClass IL_005D: ldfld SubService ItemClass::m_subService IL_0062: ldarg.0 IL_0063: ldfld ItemClass FishingHarborAI::m_boatClass IL_0068: ldfld Level ItemClass::m_level IL_006D: ldc.i4.8 IL_006E: callvirt VehicleInfo VehicleManager::GetRandomVehicleInfo(ColossalFramework.Math.Randomizer& r, Service service, SubService subService, Level level, VehicleType type) IL_0073: stloc.2 IL_0074: ldloc.2 IL_0075: brfalse => Label2 IL_007A: ldloc.0 IL_007B: ldloca.s 3 (System.UInt16) IL_007D: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0082: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0087: ldloc.2 IL_0088: ldloc.1 IL_0089: ldc.i4 255 IL_008E: ldc.i4.0 IL_008F: ldc.i4.0 IL_0090: callvirt System.Boolean VehicleManager::CreateVehicle(System.UInt16& vehicle, ColossalFramework.Math.Randomizer& r, VehicleInfo info, UnityEngine.Vector3 position, TransferReason type, System.Boolean transferToSource, System.Boolean transferToTarget) IL_0095: brfalse => Label3 IL_009A: ldloc.2 IL_009B: ldfld VehicleAI VehicleInfo::m_vehicleAI IL_00A0: ldloc.3 IL_00A1: ldloc.0 IL_00A2: ldfld Array16`1 VehicleManager::m_vehicles IL_00A7: ldfld Vehicle[] Array16`1::m_buffer IL_00AC: ldloc.3 IL_00AD: ldelema Vehicle IL_00B2: ldarg.1 IL_00B3: callvirt virtual System.Void VehicleAI::SetSource(System.UInt16 vehicleID, Vehicle& data, System.UInt16 sourceBuilding) IL_00B8: ldloc.2 IL_00B9: ldfld VehicleAI VehicleInfo::m_vehicleAI IL_00BE: ldloc.3 IL_00BF: ldloc.0 IL_00C0: ldfld Array16`1 VehicleManager::m_vehicles IL_00C5: ldfld Vehicle[] Array16`1::m_buffer IL_00CA: ldloc.3 IL_00CB: ldelema Vehicle IL_00D0: ldarg.1 IL_00D1: callvirt virtual System.Void VehicleAI::SetTarget(System.UInt16 vehicleID, Vehicle& data, System.UInt16 targetBuilding) IL_00D6: // end original IL_00D6: Label2 IL_00D6: Label3 IL_00D6: Label0 IL_00D6: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: System.Void ResidentAI::UpdateLocation(System.UInt32 citizenID, Citizen& data) ### Replacement: static System.Void ResidentAI::ResidentAI.UpdateLocation_Patch1(ResidentAI this, System.UInt32 citizenID, Citizen& data) IL_0000: Local var 0: Citizen/Location IL_0000: Local var 1: System.Int32 IL_0000: Local var 2: System.Int32 IL_0000: Local var 3: System.Int32 IL_0000: Local var 4: System.Int32 IL_0000: Local var 5: System.Int32 IL_0000: Local var 6: System.Int32 IL_0000: Local var 7: System.Int32 IL_0000: Local var 8: System.UInt32 IL_0000: Local var 9: TransferManager/TransferReason IL_0000: Local var 10: BuildingManager IL_0000: Local var 11: System.UInt16 IL_0000: Local var 12: System.Int32 IL_0000: Local var 13: System.Int32 IL_0000: Local var 14: System.Int32 IL_0000: Local var 15: System.Int32 IL_0000: Local var 16: System.Int32 IL_0000: Local var 17: System.Int32 IL_0000: Local var 18: System.Int32 IL_0000: Local var 19: BuildingManager IL_0000: Local var 20: BuildingInfo IL_0000: Local var 21: EldercareAI IL_0000: Local var 22: ChildcareAI IL_0000: Local var 23: ItemClass/Service IL_0000: Local var 24: BuildingManager IL_0000: Local var 25: ItemClass/Service IL_0000: Local var 26: BuildingInfo IL_0000: Local var 27: System.Int32 IL_0000: Local var 28: System.UInt16 IL_0000: Local var 29: System.Int32 IL_0000: Local var 30: BuildingInfo IL_0000: Local var 31: System.Int32 IL_0000: Local var 32: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 32 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 32 (System.Boolean) IL_000E: ldloc 32 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg.0 IL_0018: ldarg 1 IL_001C: ldarg 2 IL_0020: call static System.Boolean RealTime.GameConnection.Patches.ResidentAI_UpdateLocation::Prefix(ResidentAI __instance, System.UInt32 citizenID, Citizen& data) IL_0025: stloc 32 (System.Boolean) IL_0029: Label1 IL_0029: nop IL_002A: ldloc 32 (System.Boolean) IL_002E: brfalse => Label0 IL_0033: // start original IL_0033: ldarg.2 IL_0034: ldfld System.UInt16 Citizen::m_homeBuilding IL_0039: brtrue => Label2 IL_003E: ldarg.2 IL_003F: ldfld System.UInt16 Citizen::m_workBuilding IL_0044: brtrue => Label3 IL_0049: ldarg.2 IL_004A: ldfld System.UInt16 Citizen::m_visitBuilding IL_004F: brtrue => Label4 IL_0054: ldarg.2 IL_0055: ldfld System.UInt16 Citizen::m_instance IL_005A: brtrue => Label5 IL_005F: ldarg.2 IL_0060: ldfld System.UInt16 Citizen::m_vehicle IL_0065: brtrue => Label6 IL_006A: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_006F: ldarg.1 IL_0070: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_0075: br => Label154 IL_007A: Label2 IL_007A: Label3 IL_007A: Label4 IL_007A: Label5 IL_007A: Label6 IL_007A: ldarg.2 IL_007B: call Location Citizen::get_CurrentLocation() IL_0080: stloc.0 IL_0081: ldloc.0 IL_0082: switch => Labels7,8,9,10 IL_0097: br => Label11 IL_009C: Label7 IL_009C: ldarg.2 IL_009D: ldfld Flags Citizen::m_flags IL_00A2: ldc.i4.s 32 IL_00A4: and IL_00A5: brfalse => Label12 IL_00AA: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_00AF: ldarg.1 IL_00B0: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_00B5: br => Label155 IL_00BA: Label12 IL_00BA: ldarg.2 IL_00BB: call System.Boolean Citizen::get_Dead() IL_00C0: brfalse => Label13 IL_00C5: ldarg.2 IL_00C6: ldfld System.UInt16 Citizen::m_homeBuilding IL_00CB: brtrue => Label14 IL_00D0: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_00D5: ldarg.1 IL_00D6: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_00DB: br => Label156 IL_00E0: Label14 IL_00E0: ldarg.2 IL_00E1: ldfld System.UInt16 Citizen::m_workBuilding IL_00E6: brfalse => Label15 IL_00EB: ldarg.2 IL_00EC: ldarg.1 IL_00ED: ldc.i4.0 IL_00EE: ldc.i4.0 IL_00EF: call System.Void Citizen::SetWorkplace(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_00F4: Label15 IL_00F4: ldarg.2 IL_00F5: ldfld System.UInt16 Citizen::m_visitBuilding IL_00FA: brfalse => Label16 IL_00FF: ldarg.2 IL_0100: ldarg.1 IL_0101: ldc.i4.0 IL_0102: ldc.i4.0 IL_0103: call System.Void Citizen::SetVisitplace(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_0108: Label16 IL_0108: ldarg.2 IL_0109: ldfld System.UInt16 Citizen::m_vehicle IL_010E: brtrue => Label17 IL_0113: ldarg.0 IL_0114: ldarg.1 IL_0115: ldarg.2 IL_0116: ldfld System.UInt16 Citizen::m_homeBuilding IL_011B: ldc.i4.3 IL_011C: call System.Boolean ResidentAI::FindHospital(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_0121: brtrue => Label18 IL_0126: br => Label157 IL_012B: Label17 IL_012B: Label18 IL_012B: br => Label19 IL_0130: Label13 IL_0130: ldarg.2 IL_0131: call System.Boolean Citizen::get_Arrested() IL_0136: brfalse => Label20 IL_013B: ldarg.2 IL_013C: ldc.i4.0 IL_013D: call System.Void Citizen::set_Arrested(System.Boolean value) IL_0142: br => Label21 IL_0147: Label20 IL_0147: ldarg.2 IL_0148: ldfld System.UInt16 Citizen::m_homeBuilding IL_014D: brfalse => Label22 IL_0152: ldarg.2 IL_0153: ldfld System.UInt16 Citizen::m_vehicle IL_0158: brtrue => Label23 IL_015D: ldarg.2 IL_015E: call System.Boolean Citizen::get_Sick() IL_0163: brfalse => Label24 IL_0168: ldarg.0 IL_0169: ldarg.1 IL_016A: ldarg.2 IL_016B: ldfld System.UInt16 Citizen::m_homeBuilding IL_0170: ldc.i4.2 IL_0171: call System.Boolean ResidentAI::FindHospital(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_0176: brtrue => Label25 IL_017B: br => Label158 IL_0180: Label25 IL_0180: br => Label26 IL_0185: Label24 IL_0185: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_018A: ldfld Array16`1 BuildingManager::m_buildings IL_018F: ldfld Building[] Array16`1::m_buffer IL_0194: ldarg.2 IL_0195: ldfld System.UInt16 Citizen::m_homeBuilding IL_019A: ldelema Building IL_019F: ldfld Flags Building::m_flags IL_01A4: ldc.i4 32768 IL_01A9: and IL_01AA: brfalse => Label27 IL_01AF: ldarg.0 IL_01B0: ldarg.1 IL_01B1: ldarg.2 IL_01B2: ldfld System.UInt16 Citizen::m_homeBuilding IL_01B7: ldarg.0 IL_01B8: ldarg.2 IL_01B9: ldfld System.UInt16 Citizen::m_homeBuilding IL_01BE: call TransferReason ResidentAI::GetEvacuationReason(System.UInt16 sourceBuilding) IL_01C3: call System.Void HumanAI::FindEvacuationPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_01C8: br => Label28 IL_01CD: Label27 IL_01CD: ldarg.2 IL_01CE: ldfld Flags Citizen::m_flags IL_01D3: ldc.i4 16384 IL_01D8: and IL_01D9: brfalse => Label29 IL_01DE: ldarg.0 IL_01DF: ldarg.1 IL_01E0: ldarg.2 IL_01E1: ldfld System.UInt16 Citizen::m_homeBuilding IL_01E6: ldarg.0 IL_01E7: call TransferReason ResidentAI::GetShoppingReason() IL_01EC: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_01F1: br => Label30 IL_01F6: Label29 IL_01F6: ldarg.2 IL_01F7: ldfld System.UInt16 Citizen::m_instance IL_01FC: brtrue => Label31 IL_0201: ldarg.0 IL_0202: call System.Boolean ResidentAI::DoRandomMove() IL_0207: brfalse => Label32 IL_020C: Label31 IL_020C: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0211: ldfld System.UInt32 SimulationManager::m_dayTimeFrame IL_0216: stloc.1 IL_0217: ldsfld System.UInt32 SimulationManager::DAYTIME_FRAMES IL_021C: stloc.2 IL_021D: ldloc.2 IL_021E: ldc.i4.s 40 IL_0220: div IL_0221: stloc.3 IL_0222: ldsfld System.UInt32 SimulationManager::DAYTIME_FRAMES IL_0227: ldc.i4.8 IL_0228: mul IL_0229: ldc.i4.s 24 IL_022B: div IL_022C: stloc.s 4 (System.Int32) IL_022E: ldloc.1 IL_022F: ldloc.s 4 (System.Int32) IL_0231: sub IL_0232: ldloc.2 IL_0233: ldc.i4.1 IL_0234: sub IL_0235: and IL_0236: stloc.s 5 (System.Int32) IL_0238: ldloc.s 5 (System.Int32) IL_023A: ldloc.2 IL_023B: ldc.i4.1 IL_023C: shr IL_023D: sub IL_023E: call static System.Int32 UnityEngine.Mathf::Abs(System.Int32 value) IL_0243: stloc.s 6 (System.Int32) IL_0245: ldloc.s 6 (System.Int32) IL_0247: ldloc.s 6 (System.Int32) IL_0249: mul IL_024A: ldloc.2 IL_024B: ldc.i4.1 IL_024C: shr IL_024D: div IL_024E: stloc.s 6 (System.Int32) IL_0250: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0255: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_025A: ldloc.2 IL_025B: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0260: stloc.s 7 (System.Int32) IL_0262: ldloc.s 7 (System.Int32) IL_0264: ldloc.3 IL_0265: bge => Label33 IL_026A: ldarg.2 IL_026B: ldarg.1 IL_026C: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0271: ldfld Array16`1 BuildingManager::m_buildings IL_0276: ldfld Building[] Array16`1::m_buffer IL_027B: ldarg.2 IL_027C: ldfld System.UInt16 Citizen::m_homeBuilding IL_0281: ldelema Building IL_0286: ldfld System.UInt32 Building::m_citizenUnits IL_028B: ldc.i4.s 16 IL_028D: call System.UInt32 Citizen::GetContainingUnit(System.UInt32 citizenID, System.UInt32 units, Flags flag) IL_0292: stloc.s 8 (System.UInt32) IL_0294: ldarg.0 IL_0295: call TransferReason ResidentAI::GetEntertainmentReason() IL_029A: stloc.s 9 (TransferManager+TransferReason) IL_029C: ldarg.2 IL_029D: call System.Int32 Citizen::get_Age() IL_02A2: call static AgeGroup Citizen::GetAgeGroup(System.Int32 age) IL_02A7: ldc.i4.4 IL_02A8: bne.un => Label34 IL_02AD: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_02B2: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_02B7: ldc.i4.2 IL_02B8: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_02BD: brtrue => Label35 IL_02C2: ldc.i4.s 110 IL_02C4: stloc.s 9 (TransferManager+TransferReason) IL_02C6: Label35 IL_02C6: br => Label36 IL_02CB: Label34 IL_02CB: ldarg.0 IL_02CC: ldloc.s 8 (System.UInt32) IL_02CE: call System.Boolean ResidentAI::UnitHasChild(System.UInt32 unitID) IL_02D3: brfalse => Label37 IL_02D8: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_02DD: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_02E2: ldc.i4.5 IL_02E3: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_02E8: brtrue => Label38 IL_02ED: ldc.i4.s 111 IL_02EF: stloc.s 9 (TransferManager+TransferReason) IL_02F1: Label36 IL_02F1: Label37 IL_02F1: Label38 IL_02F1: ldarg.0 IL_02F2: ldarg.1 IL_02F3: ldarg.2 IL_02F4: ldfld System.UInt16 Citizen::m_homeBuilding IL_02F9: ldloc.s 9 (TransferManager+TransferReason) IL_02FB: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_0300: br => Label39 IL_0305: Label33 IL_0305: ldloc.s 7 (System.Int32) IL_0307: ldloc.3 IL_0308: ldloc.s 6 (System.Int32) IL_030A: add IL_030B: bge => Label40 IL_0310: ldarg.2 IL_0311: ldfld System.UInt16 Citizen::m_workBuilding IL_0316: brfalse => Label41 IL_031B: ldarg.2 IL_031C: dup IL_031D: ldfld Flags Citizen::m_flags IL_0322: ldc.i4 -513 IL_0327: and IL_0328: stfld Flags Citizen::m_flags IL_032D: ldarg.0 IL_032E: ldarg.1 IL_032F: ldarg.2 IL_0330: ldarg.2 IL_0331: ldfld System.UInt16 Citizen::m_homeBuilding IL_0336: ldarg.2 IL_0337: ldfld System.UInt16 Citizen::m_workBuilding IL_033C: call System.Boolean HumanAI::StartMoving(System.UInt32 citizenID, Citizen& data, System.UInt16 sourceBuilding, System.UInt16 targetBuilding) IL_0341: pop IL_0342: Label19 IL_0342: Label21 IL_0342: Label22 IL_0342: Label23 IL_0342: Label26 IL_0342: Label28 IL_0342: Label30 IL_0342: Label32 IL_0342: Label39 IL_0342: Label40 IL_0342: Label41 IL_0342: br => Label42 IL_0347: Label8 IL_0347: ldarg.2 IL_0348: call System.Boolean Citizen::get_Dead() IL_034D: brfalse => Label43 IL_0352: ldarg.2 IL_0353: ldfld System.UInt16 Citizen::m_workBuilding IL_0358: brtrue => Label44 IL_035D: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0362: ldarg.1 IL_0363: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_0368: br => Label159 IL_036D: Label44 IL_036D: ldarg.2 IL_036E: ldfld System.UInt16 Citizen::m_homeBuilding IL_0373: brfalse => Label45 IL_0378: ldarg.2 IL_0379: ldarg.1 IL_037A: ldc.i4.0 IL_037B: ldc.i4.0 IL_037C: call System.Void Citizen::SetHome(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_0381: Label45 IL_0381: ldarg.2 IL_0382: ldfld System.UInt16 Citizen::m_visitBuilding IL_0387: brfalse => Label46 IL_038C: ldarg.2 IL_038D: ldarg.1 IL_038E: ldc.i4.0 IL_038F: ldc.i4.0 IL_0390: call System.Void Citizen::SetVisitplace(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_0395: Label46 IL_0395: ldarg.2 IL_0396: ldfld System.UInt16 Citizen::m_vehicle IL_039B: brtrue => Label47 IL_03A0: ldarg.0 IL_03A1: ldarg.1 IL_03A2: ldarg.2 IL_03A3: ldfld System.UInt16 Citizen::m_workBuilding IL_03A8: ldc.i4.3 IL_03A9: call System.Boolean ResidentAI::FindHospital(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_03AE: brtrue => Label48 IL_03B3: br => Label160 IL_03B8: Label47 IL_03B8: Label48 IL_03B8: br => Label49 IL_03BD: Label43 IL_03BD: ldarg.2 IL_03BE: call System.Boolean Citizen::get_Arrested() IL_03C3: brfalse => Label50 IL_03C8: ldarg.2 IL_03C9: ldc.i4.0 IL_03CA: call System.Void Citizen::set_Arrested(System.Boolean value) IL_03CF: br => Label51 IL_03D4: Label50 IL_03D4: ldarg.2 IL_03D5: call System.Boolean Citizen::get_Sick() IL_03DA: brfalse => Label52 IL_03DF: ldarg.2 IL_03E0: ldfld System.UInt16 Citizen::m_workBuilding IL_03E5: brtrue => Label53 IL_03EA: ldarg.2 IL_03EB: ldc.i4.0 IL_03EC: call System.Void Citizen::set_CurrentLocation(Location value) IL_03F1: br => Label54 IL_03F6: Label53 IL_03F6: ldarg.2 IL_03F7: ldfld System.UInt16 Citizen::m_vehicle IL_03FC: brtrue => Label55 IL_0401: ldarg.0 IL_0402: ldarg.1 IL_0403: ldarg.2 IL_0404: ldfld System.UInt16 Citizen::m_workBuilding IL_0409: ldc.i4.2 IL_040A: call System.Boolean ResidentAI::FindHospital(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_040F: brtrue => Label56 IL_0414: br => Label161 IL_0419: Label54 IL_0419: Label55 IL_0419: Label56 IL_0419: br => Label57 IL_041E: Label52 IL_041E: ldarg.2 IL_041F: ldfld System.UInt16 Citizen::m_workBuilding IL_0424: brtrue => Label58 IL_0429: ldarg.2 IL_042A: ldc.i4.0 IL_042B: call System.Void Citizen::set_CurrentLocation(Location value) IL_0430: br => Label59 IL_0435: Label58 IL_0435: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_043A: stloc.s 10 (BuildingManager) IL_043C: ldloc.s 10 (BuildingManager) IL_043E: ldfld Array16`1 BuildingManager::m_buildings IL_0443: ldfld Building[] Array16`1::m_buffer IL_0448: ldarg.2 IL_0449: ldfld System.UInt16 Citizen::m_workBuilding IL_044E: ldelema Building IL_0453: ldfld System.UInt16 Building::m_eventIndex IL_0458: stloc.s 11 (System.UInt16) IL_045A: ldloc.s 10 (BuildingManager) IL_045C: ldfld Array16`1 BuildingManager::m_buildings IL_0461: ldfld Building[] Array16`1::m_buffer IL_0466: ldarg.2 IL_0467: ldfld System.UInt16 Citizen::m_workBuilding IL_046C: ldelema Building IL_0471: ldfld Flags Building::m_flags IL_0476: ldc.i4 32768 IL_047B: and IL_047C: brfalse => Label60 IL_0481: ldarg.2 IL_0482: ldfld System.UInt16 Citizen::m_vehicle IL_0487: brtrue => Label61 IL_048C: ldarg.0 IL_048D: ldarg.1 IL_048E: ldarg.2 IL_048F: ldfld System.UInt16 Citizen::m_workBuilding IL_0494: ldarg.0 IL_0495: ldarg.2 IL_0496: ldfld System.UInt16 Citizen::m_workBuilding IL_049B: call TransferReason ResidentAI::GetEvacuationReason(System.UInt16 sourceBuilding) IL_04A0: call System.Void HumanAI::FindEvacuationPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_04A5: Label61 IL_04A5: br => Label62 IL_04AA: Label60 IL_04AA: ldloc.s 11 (System.UInt16) IL_04AC: brfalse => Label63 IL_04B1: call static EventManager ColossalFramework.Singleton`1::get_instance() IL_04B6: ldfld FastList`1 EventManager::m_events IL_04BB: ldfld EventData[] FastList`1::m_buffer IL_04C0: ldloc.s 11 (System.UInt16) IL_04C2: ldelema EventData IL_04C7: ldfld Flags EventData::m_flags IL_04CC: ldc.i4 4144 IL_04D1: and IL_04D2: brfalse => Label64 IL_04D7: br => Label65 IL_04DC: Label63 IL_04DC: Label64 IL_04DC: ldarg.2 IL_04DD: ldfld Flags Citizen::m_flags IL_04E2: ldc.i4 16384 IL_04E7: and IL_04E8: brfalse => Label66 IL_04ED: ldarg.2 IL_04EE: ldfld System.UInt16 Citizen::m_vehicle IL_04F3: brtrue => Label67 IL_04F8: ldarg.0 IL_04F9: ldarg.1 IL_04FA: ldarg.2 IL_04FB: ldfld System.UInt16 Citizen::m_workBuilding IL_0500: ldarg.0 IL_0501: call TransferReason ResidentAI::GetShoppingReason() IL_0506: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_050B: Label67 IL_050B: br => Label68 IL_0510: Label66 IL_0510: ldarg.2 IL_0511: ldfld System.UInt16 Citizen::m_instance IL_0516: brtrue => Label69 IL_051B: ldarg.0 IL_051C: call System.Boolean ResidentAI::DoRandomMove() IL_0521: brfalse => Label70 IL_0526: Label69 IL_0526: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_052B: ldfld System.UInt32 SimulationManager::m_dayTimeFrame IL_0530: stloc.s 12 (System.Int32) IL_0532: ldsfld System.UInt32 SimulationManager::DAYTIME_FRAMES IL_0537: stloc.s 13 (System.Int32) IL_0539: ldloc.s 13 (System.Int32) IL_053B: ldc.i4.s 40 IL_053D: div IL_053E: stloc.s 14 (System.Int32) IL_0540: ldsfld System.UInt32 SimulationManager::DAYTIME_FRAMES IL_0545: ldc.i4.s 16 IL_0547: mul IL_0548: ldc.i4.s 24 IL_054A: div IL_054B: stloc.s 15 (System.Int32) IL_054D: ldloc.s 12 (System.Int32) IL_054F: ldloc.s 15 (System.Int32) IL_0551: sub IL_0552: ldloc.s 13 (System.Int32) IL_0554: ldc.i4.1 IL_0555: sub IL_0556: and IL_0557: stloc.s 16 (System.Int32) IL_0559: ldloc.s 16 (System.Int32) IL_055B: ldloc.s 13 (System.Int32) IL_055D: ldc.i4.1 IL_055E: shr IL_055F: sub IL_0560: call static System.Int32 UnityEngine.Mathf::Abs(System.Int32 value) IL_0565: stloc.s 17 (System.Int32) IL_0567: ldloc.s 17 (System.Int32) IL_0569: ldloc.s 17 (System.Int32) IL_056B: mul IL_056C: ldloc.s 13 (System.Int32) IL_056E: ldc.i4.1 IL_056F: shr IL_0570: div IL_0571: stloc.s 17 (System.Int32) IL_0573: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0578: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_057D: ldloc.s 13 (System.Int32) IL_057F: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0584: stloc.s 18 (System.Int32) IL_0586: ldloc.s 18 (System.Int32) IL_0588: ldloc.s 14 (System.Int32) IL_058A: bge => Label71 IL_058F: ldarg.2 IL_0590: ldfld System.UInt16 Citizen::m_vehicle IL_0595: brtrue => Label72 IL_059A: ldarg.0 IL_059B: ldarg.1 IL_059C: ldarg.2 IL_059D: ldfld System.UInt16 Citizen::m_workBuilding IL_05A2: ldarg.0 IL_05A3: call TransferReason ResidentAI::GetEntertainmentReason() IL_05A8: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_05AD: Label72 IL_05AD: br => Label73 IL_05B2: Label71 IL_05B2: ldloc.s 18 (System.Int32) IL_05B4: ldloc.s 14 (System.Int32) IL_05B6: ldloc.s 17 (System.Int32) IL_05B8: add IL_05B9: bge => Label74 IL_05BE: ldarg.2 IL_05BF: ldfld System.UInt16 Citizen::m_homeBuilding IL_05C4: brfalse => Label75 IL_05C9: ldarg.2 IL_05CA: ldfld System.UInt16 Citizen::m_vehicle IL_05CF: brtrue => Label76 IL_05D4: ldarg.2 IL_05D5: dup IL_05D6: ldfld Flags Citizen::m_flags IL_05DB: ldc.i4 -513 IL_05E0: and IL_05E1: stfld Flags Citizen::m_flags IL_05E6: ldarg.0 IL_05E7: ldarg.1 IL_05E8: ldarg.2 IL_05E9: ldarg.2 IL_05EA: ldfld System.UInt16 Citizen::m_workBuilding IL_05EF: ldarg.2 IL_05F0: ldfld System.UInt16 Citizen::m_homeBuilding IL_05F5: call System.Boolean HumanAI::StartMoving(System.UInt32 citizenID, Citizen& data, System.UInt16 sourceBuilding, System.UInt16 targetBuilding) IL_05FA: pop IL_05FB: Label49 IL_05FB: Label51 IL_05FB: Label57 IL_05FB: Label59 IL_05FB: Label62 IL_05FB: Label65 IL_05FB: Label68 IL_05FB: Label70 IL_05FB: Label73 IL_05FB: Label74 IL_05FB: Label75 IL_05FB: Label76 IL_05FB: br => Label77 IL_0600: Label9 IL_0600: ldarg.2 IL_0601: call System.Boolean Citizen::get_Dead() IL_0606: brfalse => Label78 IL_060B: ldarg.2 IL_060C: ldfld System.UInt16 Citizen::m_visitBuilding IL_0611: brtrue => Label79 IL_0616: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_061B: ldarg.1 IL_061C: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_0621: br => Label162 IL_0626: Label79 IL_0626: ldarg.2 IL_0627: ldfld System.UInt16 Citizen::m_homeBuilding IL_062C: brfalse => Label80 IL_0631: ldarg.2 IL_0632: ldarg.1 IL_0633: ldc.i4.0 IL_0634: ldc.i4.0 IL_0635: call System.Void Citizen::SetHome(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_063A: Label80 IL_063A: ldarg.2 IL_063B: ldfld System.UInt16 Citizen::m_workBuilding IL_0640: brfalse => Label81 IL_0645: ldarg.2 IL_0646: ldarg.1 IL_0647: ldc.i4.0 IL_0648: ldc.i4.0 IL_0649: call System.Void Citizen::SetWorkplace(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_064E: Label81 IL_064E: ldarg.2 IL_064F: ldfld System.UInt16 Citizen::m_vehicle IL_0654: brtrue => Label82 IL_0659: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_065E: ldfld Array16`1 BuildingManager::m_buildings IL_0663: ldfld Building[] Array16`1::m_buffer IL_0668: ldarg.2 IL_0669: ldfld System.UInt16 Citizen::m_visitBuilding IL_066E: ldelema Building IL_0673: call BuildingInfo Building::get_Info() IL_0678: ldfld ItemClass BuildingInfo::m_class IL_067D: ldfld Service ItemClass::m_service IL_0682: ldc.i4.s 14 IL_0684: beq => Label83 IL_0689: ldarg.0 IL_068A: ldarg.1 IL_068B: ldarg.2 IL_068C: ldfld System.UInt16 Citizen::m_visitBuilding IL_0691: ldc.i4.3 IL_0692: call System.Boolean ResidentAI::FindHospital(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_0697: brtrue => Label84 IL_069C: br => Label163 IL_06A1: Label82 IL_06A1: Label83 IL_06A1: Label84 IL_06A1: br => Label85 IL_06A6: Label78 IL_06A6: ldarg.2 IL_06A7: call System.Boolean Citizen::get_Arrested() IL_06AC: brfalse => Label86 IL_06B1: ldarg.2 IL_06B2: ldfld System.UInt16 Citizen::m_visitBuilding IL_06B7: brtrue => Label87 IL_06BC: ldarg.2 IL_06BD: ldc.i4.0 IL_06BE: call System.Void Citizen::set_Arrested(System.Boolean value) IL_06C3: Label87 IL_06C3: br => Label88 IL_06C8: Label86 IL_06C8: ldarg.2 IL_06C9: call System.Boolean Citizen::get_Collapsed() IL_06CE: brfalse => Label89 IL_06D3: br => Label90 IL_06D8: Label89 IL_06D8: ldarg.2 IL_06D9: call System.Boolean Citizen::get_Sick() IL_06DE: brfalse => Label91 IL_06E3: ldarg.2 IL_06E4: ldfld System.UInt16 Citizen::m_visitBuilding IL_06E9: brtrue => Label92 IL_06EE: ldarg.2 IL_06EF: ldc.i4.0 IL_06F0: call System.Void Citizen::set_CurrentLocation(Location value) IL_06F5: br => Label93 IL_06FA: Label92 IL_06FA: ldarg.2 IL_06FB: ldfld System.UInt16 Citizen::m_vehicle IL_0700: brtrue => Label94 IL_0705: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_070A: stloc.s 19 (BuildingManager) IL_070C: ldloc.s 19 (BuildingManager) IL_070E: ldfld Array16`1 BuildingManager::m_buildings IL_0713: ldfld Building[] Array16`1::m_buffer IL_0718: ldarg.2 IL_0719: ldfld System.UInt16 Citizen::m_visitBuilding IL_071E: ldelema Building IL_0723: call BuildingInfo Building::get_Info() IL_0728: stloc.s 20 (BuildingInfo) IL_072A: ldloc.s 20 (BuildingInfo) IL_072C: brfalse => Label95 IL_0731: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0736: ldfld Array16`1 BuildingManager::m_buildings IL_073B: ldfld Building[] Array16`1::m_buffer IL_0740: ldarg.2 IL_0741: ldfld System.UInt16 Citizen::m_visitBuilding IL_0746: ldelema Building IL_074B: call BuildingInfo Building::get_Info() IL_0750: ldfld BuildingAI BuildingInfo::m_buildingAI IL_0755: isinst EldercareAI IL_075A: stloc.s 21 (EldercareAI) IL_075C: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0761: ldfld Array16`1 BuildingManager::m_buildings IL_0766: ldfld Building[] Array16`1::m_buffer IL_076B: ldarg.2 IL_076C: ldfld System.UInt16 Citizen::m_visitBuilding IL_0771: ldelema Building IL_0776: call BuildingInfo Building::get_Info() IL_077B: ldfld BuildingAI BuildingInfo::m_buildingAI IL_0780: isinst ChildcareAI IL_0785: stloc.s 22 (ChildcareAI) IL_0787: ldloc.s 19 (BuildingManager) IL_0789: ldfld Array16`1 BuildingManager::m_buildings IL_078E: ldfld Building[] Array16`1::m_buffer IL_0793: ldarg.2 IL_0794: ldfld System.UInt16 Citizen::m_visitBuilding IL_0799: ldelema Building IL_079E: call BuildingInfo Building::get_Info() IL_07A3: ldfld ItemClass BuildingInfo::m_class IL_07A8: ldfld Service ItemClass::m_service IL_07AD: stloc.s 23 (ItemClass+Service) IL_07AF: ldloc.s 21 (EldercareAI) IL_07B1: brfalse => Label96 IL_07B6: ldarg.0 IL_07B7: ldarg.1 IL_07B8: call System.Boolean ResidentAI::IsSenior(System.UInt32 citizenID) IL_07BD: brtrue => Label97 IL_07C2: Label96 IL_07C2: ldloc.s 22 (ChildcareAI) IL_07C4: brfalse => Label98 IL_07C9: ldarg.0 IL_07CA: ldarg.1 IL_07CB: call System.Boolean ResidentAI::IsChild(System.UInt32 citizenID) IL_07D0: brfalse => Label99 IL_07D5: Label97 IL_07D5: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_07DA: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_07DF: ldc.i4.s 100 IL_07E1: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_07E6: ldarg.2 IL_07E7: ldfld System.Byte Citizen::m_health IL_07EC: bge => Label100 IL_07F1: ldarg.2 IL_07F2: ldc.i4.0 IL_07F3: call System.Void Citizen::set_Sick(System.Boolean value) IL_07F8: Label100 IL_07F8: br => Label101 IL_07FD: Label98 IL_07FD: Label99 IL_07FD: ldloc.s 23 (ItemClass+Service) IL_07FF: ldc.i4.s 14 IL_0801: beq => Label102 IL_0806: ldloc.s 23 (ItemClass+Service) IL_0808: ldc.i4.s 20 IL_080A: beq => Label103 IL_080F: ldarg.0 IL_0810: ldarg.1 IL_0811: ldarg.2 IL_0812: ldfld System.UInt16 Citizen::m_visitBuilding IL_0817: ldc.i4.2 IL_0818: call System.Boolean ResidentAI::FindHospital(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_081D: brtrue => Label104 IL_0822: br => Label164 IL_0827: Label93 IL_0827: Label94 IL_0827: Label95 IL_0827: Label101 IL_0827: Label102 IL_0827: Label103 IL_0827: Label104 IL_0827: br => Label105 IL_082C: Label91 IL_082C: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0831: stloc.s 24 (BuildingManager) IL_0833: ldc.i4.0 IL_0834: stloc.s 25 (ItemClass+Service) IL_0836: ldarg.2 IL_0837: ldfld System.UInt16 Citizen::m_visitBuilding IL_083C: brfalse => Label106 IL_0841: ldloc.s 24 (BuildingManager) IL_0843: ldfld Array16`1 BuildingManager::m_buildings IL_0848: ldfld Building[] Array16`1::m_buffer IL_084D: ldarg.2 IL_084E: ldfld System.UInt16 Citizen::m_visitBuilding IL_0853: ldelema Building IL_0858: call BuildingInfo Building::get_Info() IL_085D: ldfld ItemClass BuildingInfo::m_class IL_0862: ldfld Service ItemClass::m_service IL_0867: stloc.s 25 (ItemClass+Service) IL_0869: Label106 IL_0869: ldloc.s 25 (ItemClass+Service) IL_086B: ldc.i4.s 15 IL_086D: beq => Label107 IL_0872: ldloc.s 25 (ItemClass+Service) IL_0874: ldc.i4.s 14 IL_0876: bne.un => Label108 IL_087B: Label107 IL_087B: ldarg.2 IL_087C: ldfld System.UInt16 Citizen::m_homeBuilding IL_0881: brfalse => Label109 IL_0886: ldarg.2 IL_0887: ldfld System.UInt16 Citizen::m_vehicle IL_088C: brtrue => Label110 IL_0891: ldarg.2 IL_0892: dup IL_0893: ldfld Flags Citizen::m_flags IL_0898: ldc.i4 -513 IL_089D: and IL_089E: stfld Flags Citizen::m_flags IL_08A3: ldarg.0 IL_08A4: ldarg.1 IL_08A5: ldarg.2 IL_08A6: ldarg.2 IL_08A7: ldfld System.UInt16 Citizen::m_visitBuilding IL_08AC: ldarg.2 IL_08AD: ldfld System.UInt16 Citizen::m_homeBuilding IL_08B2: call System.Boolean HumanAI::StartMoving(System.UInt32 citizenID, Citizen& data, System.UInt16 sourceBuilding, System.UInt16 targetBuilding) IL_08B7: pop IL_08B8: ldarg.2 IL_08B9: ldarg.1 IL_08BA: ldc.i4.0 IL_08BB: ldc.i4.0 IL_08BC: call System.Void Citizen::SetVisitplace(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_08C1: Label109 IL_08C1: Label110 IL_08C1: br => Label111 IL_08C6: Label108 IL_08C6: ldloc.s 25 (ItemClass+Service) IL_08C8: ldc.i4.s 20 IL_08CA: bne.un => Label112 IL_08CF: ldloc.s 24 (BuildingManager) IL_08D1: ldfld Array16`1 BuildingManager::m_buildings IL_08D6: ldfld Building[] Array16`1::m_buffer IL_08DB: ldarg.2 IL_08DC: ldfld System.UInt16 Citizen::m_visitBuilding IL_08E1: ldelema Building IL_08E6: ldfld Flags Building::m_flags IL_08EB: ldc.i4 2097152 IL_08F0: and IL_08F1: brfalse => Label113 IL_08F6: ldarg.2 IL_08F7: ldfld System.UInt16 Citizen::m_homeBuilding IL_08FC: brfalse => Label114 IL_0901: ldarg.2 IL_0902: ldfld System.UInt16 Citizen::m_vehicle IL_0907: brtrue => Label115 IL_090C: ldarg.2 IL_090D: dup IL_090E: ldfld Flags Citizen::m_flags IL_0913: ldc.i4 -513 IL_0918: and IL_0919: stfld Flags Citizen::m_flags IL_091E: ldarg.0 IL_091F: ldarg.1 IL_0920: ldarg.2 IL_0921: ldarg.2 IL_0922: ldfld System.UInt16 Citizen::m_visitBuilding IL_0927: ldarg.2 IL_0928: ldfld System.UInt16 Citizen::m_homeBuilding IL_092D: call System.Boolean HumanAI::StartMoving(System.UInt32 citizenID, Citizen& data, System.UInt16 sourceBuilding, System.UInt16 targetBuilding) IL_0932: pop IL_0933: ldarg.2 IL_0934: ldarg.1 IL_0935: ldc.i4.0 IL_0936: ldc.i4.0 IL_0937: call System.Void Citizen::SetVisitplace(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_093C: Label113 IL_093C: Label114 IL_093C: Label115 IL_093C: br => Label116 IL_0941: Label112 IL_0941: ldarg.2 IL_0942: ldfld System.UInt16 Citizen::m_visitBuilding IL_0947: brtrue => Label117 IL_094C: ldarg.2 IL_094D: ldc.i4.0 IL_094E: call System.Void Citizen::set_CurrentLocation(Location value) IL_0953: br => Label118 IL_0958: Label117 IL_0958: ldloc.s 24 (BuildingManager) IL_095A: ldfld Array16`1 BuildingManager::m_buildings IL_095F: ldfld Building[] Array16`1::m_buffer IL_0964: ldarg.2 IL_0965: ldfld System.UInt16 Citizen::m_visitBuilding IL_096A: ldelema Building IL_096F: ldfld Flags Building::m_flags IL_0974: ldc.i4 32768 IL_0979: and IL_097A: brfalse => Label119 IL_097F: ldarg.2 IL_0980: ldfld System.UInt16 Citizen::m_vehicle IL_0985: brtrue => Label120 IL_098A: ldarg.0 IL_098B: ldarg.1 IL_098C: ldarg.2 IL_098D: ldfld System.UInt16 Citizen::m_visitBuilding IL_0992: ldarg.0 IL_0993: ldarg.2 IL_0994: ldfld System.UInt16 Citizen::m_visitBuilding IL_0999: call TransferReason ResidentAI::GetEvacuationReason(System.UInt16 sourceBuilding) IL_099E: call System.Void HumanAI::FindEvacuationPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_09A3: Label120 IL_09A3: br => Label121 IL_09A8: Label119 IL_09A8: ldarg.2 IL_09A9: ldfld Flags Citizen::m_flags IL_09AE: ldc.i4 16384 IL_09B3: and IL_09B4: brfalse => Label122 IL_09B9: ldloc.s 24 (BuildingManager) IL_09BB: ldfld Array16`1 BuildingManager::m_buildings IL_09C0: ldfld Building[] Array16`1::m_buffer IL_09C5: ldarg.2 IL_09C6: ldfld System.UInt16 Citizen::m_visitBuilding IL_09CB: ldelema Building IL_09D0: call BuildingInfo Building::get_Info() IL_09D5: stloc.s 26 (BuildingInfo) IL_09D7: ldc.i4.s -100 IL_09D9: stloc.s 27 (System.Int32) IL_09DB: ldloc.s 26 (BuildingInfo) IL_09DD: ldfld BuildingAI BuildingInfo::m_buildingAI IL_09E2: ldarg.2 IL_09E3: ldfld System.UInt16 Citizen::m_visitBuilding IL_09E8: ldloc.s 24 (BuildingManager) IL_09EA: ldfld Array16`1 BuildingManager::m_buildings IL_09EF: ldfld Building[] Array16`1::m_buffer IL_09F4: ldarg.2 IL_09F5: ldfld System.UInt16 Citizen::m_visitBuilding IL_09FA: ldelema Building IL_09FF: ldc.i4.s 30 IL_0A01: ldloca.s 27 (System.Int32) IL_0A03: callvirt virtual System.Void BuildingAI::ModifyMaterialBuffer(System.UInt16 buildingID, Building& data, TransferReason material, System.Int32& amountDelta) IL_0A08: br => Label123 IL_0A0D: Label122 IL_0A0D: ldloc.s 24 (BuildingManager) IL_0A0F: ldfld Array16`1 BuildingManager::m_buildings IL_0A14: ldfld Building[] Array16`1::m_buffer IL_0A19: ldarg.2 IL_0A1A: ldfld System.UInt16 Citizen::m_visitBuilding IL_0A1F: ldelema Building IL_0A24: ldfld System.UInt16 Building::m_eventIndex IL_0A29: stloc.s 28 (System.UInt16) IL_0A2B: ldloc.s 28 (System.UInt16) IL_0A2D: brfalse => Label124 IL_0A32: call static EventManager ColossalFramework.Singleton`1::get_instance() IL_0A37: ldfld FastList`1 EventManager::m_events IL_0A3C: ldfld EventData[] FastList`1::m_buffer IL_0A41: ldloc.s 28 (System.UInt16) IL_0A43: ldelema EventData IL_0A48: ldfld Flags EventData::m_flags IL_0A4D: ldc.i4 4144 IL_0A52: and IL_0A53: brtrue => Label125 IL_0A58: ldarg.2 IL_0A59: ldfld System.UInt16 Citizen::m_homeBuilding IL_0A5E: brfalse => Label126 IL_0A63: ldarg.2 IL_0A64: ldfld System.UInt16 Citizen::m_vehicle IL_0A69: brtrue => Label127 IL_0A6E: ldarg.2 IL_0A6F: dup IL_0A70: ldfld Flags Citizen::m_flags IL_0A75: ldc.i4 -513 IL_0A7A: and IL_0A7B: stfld Flags Citizen::m_flags IL_0A80: ldarg.0 IL_0A81: ldarg.1 IL_0A82: ldarg.2 IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt16 Citizen::m_visitBuilding IL_0A89: ldarg.2 IL_0A8A: ldfld System.UInt16 Citizen::m_homeBuilding IL_0A8F: call System.Boolean HumanAI::StartMoving(System.UInt32 citizenID, Citizen& data, System.UInt16 sourceBuilding, System.UInt16 targetBuilding) IL_0A94: pop IL_0A95: ldarg.2 IL_0A96: ldarg.1 IL_0A97: ldc.i4.0 IL_0A98: ldc.i4.0 IL_0A99: call System.Void Citizen::SetVisitplace(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_0A9E: Label125 IL_0A9E: Label126 IL_0A9E: Label127 IL_0A9E: br => Label128 IL_0AA3: Label124 IL_0AA3: ldarg.2 IL_0AA4: ldfld System.UInt16 Citizen::m_instance IL_0AA9: brtrue => Label129 IL_0AAE: ldarg.0 IL_0AAF: call System.Boolean ResidentAI::DoRandomMove() IL_0AB4: brfalse => Label130 IL_0AB9: Label129 IL_0AB9: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0ABE: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0AC3: ldc.i4.s 40 IL_0AC5: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0ACA: stloc.s 29 (System.Int32) IL_0ACC: ldloc.s 24 (BuildingManager) IL_0ACE: ldfld Array16`1 BuildingManager::m_buildings IL_0AD3: ldfld Building[] Array16`1::m_buffer IL_0AD8: ldarg.2 IL_0AD9: ldfld System.UInt16 Citizen::m_visitBuilding IL_0ADE: ldelema Building IL_0AE3: call BuildingInfo Building::get_Info() IL_0AE8: stloc.s 30 (BuildingInfo) IL_0AEA: ldloc.s 30 (BuildingInfo) IL_0AEC: brfalse => Label131 IL_0AF1: ldarg.0 IL_0AF2: ldarg.1 IL_0AF3: call System.Boolean ResidentAI::IsSenior(System.UInt32 citizenID) IL_0AF8: brfalse => Label132 IL_0AFD: ldloc.s 30 (BuildingInfo) IL_0AFF: ldfld ItemClass BuildingInfo::m_class IL_0B04: ldfld Service ItemClass::m_service IL_0B09: ldc.i4.s 14 IL_0B0B: bne.un => Label133 IL_0B10: ldloc.s 30 (BuildingInfo) IL_0B12: ldfld ItemClass BuildingInfo::m_class IL_0B17: ldfld Level ItemClass::m_level IL_0B1C: ldc.i4.2 IL_0B1D: bne.un => Label134 IL_0B22: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0B27: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0B2C: ldc.i4 400 IL_0B31: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0B36: stloc.s 29 (System.Int32) IL_0B38: Label131 IL_0B38: Label132 IL_0B38: Label133 IL_0B38: Label134 IL_0B38: ldloc.s 29 (System.Int32) IL_0B3A: ldc.i4.s 10 IL_0B3C: bge => Label135 IL_0B41: ldarg.2 IL_0B42: ldfld System.UInt16 Citizen::m_homeBuilding IL_0B47: brfalse => Label136 IL_0B4C: ldarg.2 IL_0B4D: ldfld System.UInt16 Citizen::m_vehicle IL_0B52: brtrue => Label137 IL_0B57: ldarg.2 IL_0B58: dup IL_0B59: ldfld Flags Citizen::m_flags IL_0B5E: ldc.i4 -513 IL_0B63: and IL_0B64: stfld Flags Citizen::m_flags IL_0B69: ldarg.0 IL_0B6A: ldarg.2 IL_0B6B: ldloc.s 25 (ItemClass+Service) IL_0B6D: call System.Void ResidentAI::AttemptAutodidact(Citizen& data, Service currentService) IL_0B72: ldarg.0 IL_0B73: ldarg.1 IL_0B74: ldarg.2 IL_0B75: ldarg.2 IL_0B76: ldfld System.UInt16 Citizen::m_visitBuilding IL_0B7B: ldarg.2 IL_0B7C: ldfld System.UInt16 Citizen::m_homeBuilding IL_0B81: call System.Boolean HumanAI::StartMoving(System.UInt32 citizenID, Citizen& data, System.UInt16 sourceBuilding, System.UInt16 targetBuilding) IL_0B86: pop IL_0B87: ldarg.2 IL_0B88: ldarg.1 IL_0B89: ldc.i4.0 IL_0B8A: ldc.i4.0 IL_0B8B: call System.Void Citizen::SetVisitplace(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_0B90: Label85 IL_0B90: Label88 IL_0B90: Label90 IL_0B90: Label105 IL_0B90: Label111 IL_0B90: Label116 IL_0B90: Label118 IL_0B90: Label121 IL_0B90: Label123 IL_0B90: Label128 IL_0B90: Label130 IL_0B90: Label135 IL_0B90: Label136 IL_0B90: Label137 IL_0B90: br => Label138 IL_0B95: Label10 IL_0B95: ldarg.2 IL_0B96: call System.Boolean Citizen::get_Dead() IL_0B9B: brfalse => Label139 IL_0BA0: ldarg.2 IL_0BA1: ldfld System.UInt16 Citizen::m_vehicle IL_0BA6: brtrue => Label140 IL_0BAB: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0BB0: ldarg.1 IL_0BB1: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_0BB6: br => Label165 IL_0BBB: Label140 IL_0BBB: ldarg.2 IL_0BBC: ldfld System.UInt16 Citizen::m_homeBuilding IL_0BC1: brfalse => Label141 IL_0BC6: ldarg.2 IL_0BC7: ldarg.1 IL_0BC8: ldc.i4.0 IL_0BC9: ldc.i4.0 IL_0BCA: call System.Void Citizen::SetHome(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_0BCF: Label141 IL_0BCF: ldarg.2 IL_0BD0: ldfld System.UInt16 Citizen::m_workBuilding IL_0BD5: brfalse => Label142 IL_0BDA: ldarg.2 IL_0BDB: ldarg.1 IL_0BDC: ldc.i4.0 IL_0BDD: ldc.i4.0 IL_0BDE: call System.Void Citizen::SetWorkplace(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_0BE3: Label142 IL_0BE3: ldarg.2 IL_0BE4: ldfld System.UInt16 Citizen::m_visitBuilding IL_0BE9: brfalse => Label143 IL_0BEE: ldarg.2 IL_0BEF: ldarg.1 IL_0BF0: ldc.i4.0 IL_0BF1: ldc.i4.0 IL_0BF2: call System.Void Citizen::SetVisitplace(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_0BF7: Label143 IL_0BF7: br => Label144 IL_0BFC: Label139 IL_0BFC: ldarg.2 IL_0BFD: ldfld System.UInt16 Citizen::m_vehicle IL_0C02: brtrue => Label145 IL_0C07: ldarg.2 IL_0C08: ldfld System.UInt16 Citizen::m_instance IL_0C0D: brtrue => Label146 IL_0C12: ldarg.2 IL_0C13: ldfld System.UInt16 Citizen::m_visitBuilding IL_0C18: brfalse => Label147 IL_0C1D: ldarg.2 IL_0C1E: ldarg.1 IL_0C1F: ldc.i4.0 IL_0C20: ldc.i4.0 IL_0C21: call System.Void Citizen::SetVisitplace(System.UInt32 citizenID, System.UInt16 buildingID, System.UInt32 unitID) IL_0C26: Label147 IL_0C26: ldarg.2 IL_0C27: ldc.i4.0 IL_0C28: call System.Void Citizen::set_CurrentLocation(Location value) IL_0C2D: ldarg.2 IL_0C2E: ldc.i4.0 IL_0C2F: call System.Void Citizen::set_Arrested(System.Boolean value) IL_0C34: br => Label148 IL_0C39: Label145 IL_0C39: Label146 IL_0C39: ldarg.2 IL_0C3A: ldfld System.UInt16 Citizen::m_instance IL_0C3F: brfalse => Label149 IL_0C44: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0C49: ldfld Array16`1 CitizenManager::m_instances IL_0C4E: ldfld CitizenInstance[] Array16`1::m_buffer IL_0C53: ldarg.2 IL_0C54: ldfld System.UInt16 Citizen::m_instance IL_0C59: ldelema CitizenInstance IL_0C5E: ldfld Flags CitizenInstance::m_flags IL_0C63: ldc.i4 402653184 IL_0C68: and IL_0C69: ldc.i4 402653184 IL_0C6E: bne.un => Label150 IL_0C73: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0C78: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0C7D: ldc.i4.s 40 IL_0C7F: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0C84: stloc.s 31 (System.Int32) IL_0C86: ldloc.s 31 (System.Int32) IL_0C88: ldc.i4.s 10 IL_0C8A: bge => Label151 IL_0C8F: ldarg.2 IL_0C90: ldfld System.UInt16 Citizen::m_homeBuilding IL_0C95: brfalse => Label152 IL_0C9A: ldarg.2 IL_0C9B: dup IL_0C9C: ldfld Flags Citizen::m_flags IL_0CA1: ldc.i4 -513 IL_0CA6: and IL_0CA7: stfld Flags Citizen::m_flags IL_0CAC: ldarg.0 IL_0CAD: ldarg.1 IL_0CAE: ldarg.2 IL_0CAF: ldc.i4.0 IL_0CB0: ldarg.2 IL_0CB1: ldfld System.UInt16 Citizen::m_homeBuilding IL_0CB6: call System.Boolean HumanAI::StartMoving(System.UInt32 citizenID, Citizen& data, System.UInt16 sourceBuilding, System.UInt16 targetBuilding) IL_0CBB: pop IL_0CBC: Label144 IL_0CBC: Label148 IL_0CBC: Label149 IL_0CBC: Label150 IL_0CBC: Label151 IL_0CBC: Label152 IL_0CBC: br => Label153 IL_0CC1: Label11 IL_0CC1: Label42 IL_0CC1: Label77 IL_0CC1: Label138 IL_0CC1: Label153 IL_0CC1: ldarg.2 IL_0CC2: dup IL_0CC3: ldfld Flags Citizen::m_flags IL_0CC8: ldc.i4 -16385 IL_0CCD: and IL_0CCE: stfld Flags Citizen::m_flags IL_0CD3: // end original IL_0CD3: Label154 IL_0CD3: Label155 IL_0CD3: Label156 IL_0CD3: Label157 IL_0CD3: Label158 IL_0CD3: Label159 IL_0CD3: Label160 IL_0CD3: Label161 IL_0CD3: Label162 IL_0CD3: Label163 IL_0CD3: Label164 IL_0CD3: Label165 IL_0CD3: Label0 IL_0CD3: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: virtual System.Boolean HumanAI::ArriveAtTarget(System.UInt16 instanceID, CitizenInstance& citizenData) ### Replacement: static System.Boolean HumanAI::HumanAI.ArriveAtTarget_Patch1(HumanAI this, System.UInt16 instanceID, CitizenInstance& citizenData) IL_0000: Local var 0: System.UInt32 IL_0000: Local var 1: CitizenManager IL_0000: Local var 2: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 2 (System.Boolean) IL_0009: // start original IL_0009: ldarg.2 IL_000A: ldfld Flags CitizenInstance::m_flags IL_000F: ldc.i4.s 64 IL_0011: and IL_0012: brfalse => Label0 IL_0017: ldarg.2 IL_0018: ldfld System.UInt32 CitizenInstance::m_citizen IL_001D: stloc.0 IL_001E: ldloc.0 IL_001F: brfalse => Label1 IL_0024: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0029: stloc.1 IL_002A: ldloc.1 IL_002B: ldfld Array32`1 CitizenManager::m_citizens IL_0030: ldfld Citizen[] Array32`1::m_buffer IL_0035: ldloc.0 IL_0036: conv.u IL_0037: ldelema Citizen IL_003C: call Location Citizen::get_CurrentLocation() IL_0041: ldc.i4.3 IL_0042: bne.un => Label2 IL_0047: ldarg.0 IL_0048: ldarg.1 IL_0049: ldarg.2 IL_004A: ldc.i4.1 IL_004B: callvirt virtual System.Void HumanAI::ArriveAtDestination(System.UInt16 instanceID, CitizenInstance& citizenData, System.Boolean success) IL_0050: Label2 IL_0050: ldarg.2 IL_0051: ldfld Flags CitizenInstance::m_flags IL_0056: ldc.i4 134217728 IL_005B: and IL_005C: brfalse => Label3 IL_0061: ldc.i4.0 IL_0062: br => Label6 IL_0067: Label3 IL_0067: ldloc.1 IL_0068: ldfld Array32`1 CitizenManager::m_citizens IL_006D: ldfld Citizen[] Array32`1::m_buffer IL_0072: ldloc.0 IL_0073: conv.u IL_0074: ldelema Citizen IL_0079: call System.UInt16 Citizen::GetBuildingByLocation() IL_007E: ldarg.2 IL_007F: ldfld System.UInt16 CitizenInstance::m_targetBuilding IL_0084: bne.un => Label4 IL_0089: ldc.i4.0 IL_008A: br => Label7 IL_008F: Label1 IL_008F: Label4 IL_008F: ldarg.2 IL_0090: dup IL_0091: ldfld Flags CitizenInstance::m_flags IL_0096: ldc.i4 -536952897 IL_009B: and IL_009C: stfld Flags CitizenInstance::m_flags IL_00A1: ldarg.2 IL_00A2: ldarg.1 IL_00A3: call System.Void CitizenInstance::Unspawn(System.UInt16 instanceID) IL_00A8: br => Label5 IL_00AD: Label0 IL_00AD: ldarg.0 IL_00AE: ldarg.1 IL_00AF: ldarg.2 IL_00B0: ldc.i4.1 IL_00B1: callvirt virtual System.Void HumanAI::ArriveAtDestination(System.UInt16 instanceID, CitizenInstance& citizenData, System.Boolean success) IL_00B6: Label5 IL_00B6: ldc.i4.1 IL_00B7: // end original IL_00B7: Label6 IL_00B7: Label7 IL_00B7: stloc 2 (System.Boolean) IL_00BB: ldarg 2 IL_00BF: ldloc 2 (System.Boolean) IL_00C3: call static System.Void RealTime.GameConnection.Patches.HumanAI_ArriveAtTarget::Postfix(CitizenInstance& citizenData, System.Boolean __result) IL_00C8: ldloc 2 (System.Boolean) IL_00CC: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: System.Boolean HumanAI::StartMoving(System.UInt32 citizenID, Citizen& data, System.UInt16 sourceBuilding, System.UInt16 targetBuilding) ### Replacement: static System.Boolean HumanAI::HumanAI.StartMoving_Patch1(HumanAI this, System.UInt32 citizenID, Citizen& data, System.UInt16 sourceBuilding, System.UInt16 targetBuilding) IL_0000: Local var 0: CitizenManager IL_0000: Local var 1: System.UInt16 IL_0000: Local var 2: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 2 (System.Boolean) IL_0009: // start original IL_0009: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_000E: stloc.0 IL_000F: ldarg.s 4 IL_0011: ldarg.3 IL_0012: bne.un => Label0 IL_0017: ldc.i4.0 IL_0018: br => Label7 IL_001D: Label0 IL_001D: ldarg.s 4 IL_001F: brfalse => Label1 IL_0024: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0029: ldfld Array16`1 BuildingManager::m_buildings IL_002E: ldfld Building[] Array16`1::m_buffer IL_0033: ldarg.s 4 IL_0035: ldelema Building IL_003A: ldfld Flags Building::m_flags IL_003F: ldc.i4 131072 IL_0044: and IL_0045: brtrue => Label2 IL_004A: Label1 IL_004A: ldc.i4.0 IL_004B: br => Label8 IL_0050: Label2 IL_0050: ldarg.2 IL_0051: ldfld System.UInt16 Citizen::m_instance IL_0056: brfalse => Label3 IL_005B: ldarg.0 IL_005C: ldfld CitizenInfo CitizenAI::m_info IL_0061: ldfld CitizenAI CitizenInfo::m_citizenAI IL_0066: ldarg.2 IL_0067: ldfld System.UInt16 Citizen::m_instance IL_006C: ldloc.0 IL_006D: ldfld Array16`1 CitizenManager::m_instances IL_0072: ldfld CitizenInstance[] Array16`1::m_buffer IL_0077: ldarg.2 IL_0078: ldfld System.UInt16 Citizen::m_instance IL_007D: ldelema CitizenInstance IL_0082: ldarg.s 4 IL_0084: callvirt System.Void CitizenAI::SetTarget(System.UInt16 instanceID, CitizenInstance& data, System.UInt16 targetBuilding) IL_0089: ldarg.2 IL_008A: ldc.i4.3 IL_008B: call System.Void Citizen::set_CurrentLocation(Location value) IL_0090: ldc.i4.1 IL_0091: br => Label9 IL_0096: Label3 IL_0096: ldarg.3 IL_0097: brtrue => Label4 IL_009C: ldarg.2 IL_009D: call System.UInt16 Citizen::GetBuildingByLocation() IL_00A2: starg.s 3 IL_00A4: ldarg.3 IL_00A5: brtrue => Label5 IL_00AA: ldc.i4.0 IL_00AB: br => Label10 IL_00B0: Label4 IL_00B0: Label5 IL_00B0: ldloc.0 IL_00B1: ldloca.s 1 (System.UInt16) IL_00B3: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_00B8: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_00BD: ldarg.0 IL_00BE: ldfld CitizenInfo CitizenAI::m_info IL_00C3: ldarg.1 IL_00C4: callvirt System.Boolean CitizenManager::CreateCitizenInstance(System.UInt16& instance, ColossalFramework.Math.Randomizer& randomizer, CitizenInfo info, System.UInt32 citizen) IL_00C9: brfalse => Label6 IL_00CE: ldarg.0 IL_00CF: ldfld CitizenInfo CitizenAI::m_info IL_00D4: ldfld CitizenAI CitizenInfo::m_citizenAI IL_00D9: ldloc.1 IL_00DA: ldloc.0 IL_00DB: ldfld Array16`1 CitizenManager::m_instances IL_00E0: ldfld CitizenInstance[] Array16`1::m_buffer IL_00E5: ldloc.1 IL_00E6: ldelema CitizenInstance IL_00EB: ldarg.3 IL_00EC: callvirt virtual System.Void CitizenAI::SetSource(System.UInt16 instanceID, CitizenInstance& data, System.UInt16 sourceBuilding) IL_00F1: ldarg.0 IL_00F2: ldfld CitizenInfo CitizenAI::m_info IL_00F7: ldfld CitizenAI CitizenInfo::m_citizenAI IL_00FC: ldloc.1 IL_00FD: ldloc.0 IL_00FE: ldfld Array16`1 CitizenManager::m_instances IL_0103: ldfld CitizenInstance[] Array16`1::m_buffer IL_0108: ldloc.1 IL_0109: ldelema CitizenInstance IL_010E: ldarg.s 4 IL_0110: callvirt System.Void CitizenAI::SetTarget(System.UInt16 instanceID, CitizenInstance& data, System.UInt16 targetBuilding) IL_0115: ldarg.2 IL_0116: ldc.i4.3 IL_0117: call System.Void Citizen::set_CurrentLocation(Location value) IL_011C: ldc.i4.1 IL_011D: br => Label11 IL_0122: Label6 IL_0122: ldc.i4.0 IL_0123: // end original IL_0123: Label7 IL_0123: Label8 IL_0123: Label9 IL_0123: Label10 IL_0123: Label11 IL_0123: stloc 2 (System.Boolean) IL_0127: ldarg 1 IL_012B: ldloc 2 (System.Boolean) IL_012F: call static System.Void RealTime.GameConnection.Patches.ResidentAI_StartMoving::Postfix(System.UInt32 citizenID, System.Boolean __result) IL_0134: ldloc 2 (System.Boolean) IL_0138: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: virtual System.Void ResidentAI::SimulationStep(System.UInt16 instanceID, CitizenInstance& citizenData, Frame& frameData, System.Boolean lodPhysics) ### Replacement: static System.Void ResidentAI::ResidentAI.SimulationStep_Patch1(ResidentAI this, System.UInt16 instanceID, CitizenInstance& citizenData, Frame& frameData, System.Boolean lodPhysics) IL_0000: Local var 0: System.UInt32 IL_0000: Local var 1: CitizenManager IL_0000: Local var 2: System.UInt32 IL_0000: Local var 3: BuildingManager IL_0000: Local var 4: System.UInt16 IL_0000: Local var 5: System.UInt16 IL_0000: Local var 6: BuildingInfo IL_0000: Local var 7: System.Int32 IL_0000: Local var 8: System.UInt32 IL_0000: // start original IL_0000: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0005: ldfld System.UInt32 SimulationManager::m_currentFrameIndex IL_000A: stloc.0 IL_000B: ldloc.0 IL_000C: ldc.i4.4 IL_000D: shr.un IL_000E: ldc.i4.s 63 IL_0010: and IL_0011: conv.u8 IL_0012: ldarg.1 IL_0013: ldc.i4.s 63 IL_0015: and IL_0016: conv.i8 IL_0017: bne.un => Label0 IL_001C: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0021: stloc.1 IL_0022: ldarg.2 IL_0023: ldfld System.UInt32 CitizenInstance::m_citizen IL_0028: stloc.2 IL_0029: ldloc.2 IL_002A: brfalse => Label1 IL_002F: ldloc.1 IL_0030: ldfld Array32`1 CitizenManager::m_citizens IL_0035: ldfld Citizen[] Array32`1::m_buffer IL_003A: ldloc.2 IL_003B: conv.u IL_003C: ldelema Citizen IL_0041: ldfld Flags Citizen::m_flags IL_0046: ldc.i4 16384 IL_004B: and IL_004C: brfalse => Label2 IL_0051: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0056: stloc.3 IL_0057: ldloc.1 IL_0058: ldfld Array32`1 CitizenManager::m_citizens IL_005D: ldfld Citizen[] Array32`1::m_buffer IL_0062: ldloc.2 IL_0063: conv.u IL_0064: ldelema Citizen IL_0069: ldfld System.UInt16 Citizen::m_homeBuilding IL_006E: stloc.s 4 (System.UInt16) IL_0070: ldloc.3 IL_0071: ldarg.3 IL_0072: ldfld UnityEngine.Vector3 Frame::m_position IL_0077: ldc.r4 32 IL_007C: ldc.i4.2 IL_007D: ldc.i4.0 IL_007E: ldc.i4 131073 IL_0083: ldc.i4.2 IL_0084: callvirt System.UInt16 BuildingManager::FindBuilding(UnityEngine.Vector3 pos, System.Single maxDistance, Service service, SubService subService, Flags flagsRequired, Flags flagsForbidden) IL_0089: stloc.s 5 (System.UInt16) IL_008B: ldloc.s 4 (System.UInt16) IL_008D: brfalse => Label3 IL_0092: ldloc.s 5 (System.UInt16) IL_0094: brfalse => Label4 IL_0099: ldloc.3 IL_009A: ldfld Array16`1 BuildingManager::m_buildings IL_009F: ldfld Building[] Array16`1::m_buffer IL_00A4: ldloc.s 5 (System.UInt16) IL_00A6: ldelema Building IL_00AB: call BuildingInfo Building::get_Info() IL_00B0: stloc.s 6 (BuildingInfo) IL_00B2: ldc.i4.s -100 IL_00B4: stloc.s 7 (System.Int32) IL_00B6: ldloc.s 6 (BuildingInfo) IL_00B8: ldfld BuildingAI BuildingInfo::m_buildingAI IL_00BD: ldloc.s 5 (System.UInt16) IL_00BF: ldloc.3 IL_00C0: ldfld Array16`1 BuildingManager::m_buildings IL_00C5: ldfld Building[] Array16`1::m_buffer IL_00CA: ldloc.s 5 (System.UInt16) IL_00CC: ldelema Building IL_00D1: ldc.i4.s 30 IL_00D3: ldloca.s 7 (System.Int32) IL_00D5: callvirt virtual System.Void BuildingAI::ModifyMaterialBuffer(System.UInt16 buildingID, Building& data, TransferReason material, System.Int32& amountDelta) IL_00DA: ldloc.1 IL_00DB: ldfld Array32`1 CitizenManager::m_citizens IL_00E0: ldfld Citizen[] Array32`1::m_buffer IL_00E5: ldloc.2 IL_00E6: conv.u IL_00E7: ldelema Citizen IL_00EC: ldloc.2 IL_00ED: ldloc.3 IL_00EE: ldfld Array16`1 BuildingManager::m_buildings IL_00F3: ldfld Building[] Array16`1::m_buffer IL_00F8: ldloc.s 4 (System.UInt16) IL_00FA: ldelema Building IL_00FF: ldfld System.UInt32 Building::m_citizenUnits IL_0104: ldc.i4.s 16 IL_0106: call System.UInt32 Citizen::GetContainingUnit(System.UInt32 citizenID, System.UInt32 units, Flags flag) IL_010B: stloc.s 8 (System.UInt32) IL_010D: ldloc.s 8 (System.UInt32) IL_010F: brfalse => Label5 IL_0114: ldloc.1 IL_0115: ldfld Array32`1 CitizenManager::m_units IL_011A: ldfld CitizenUnit[] Array32`1::m_buffer IL_011F: ldloc.s 8 (System.UInt32) IL_0121: conv.u IL_0122: ldelema CitizenUnit IL_0127: dup IL_0128: ldfld System.UInt16 CitizenUnit::m_goods IL_012D: ldloc.s 7 (System.Int32) IL_012F: neg IL_0130: conv.u2 IL_0131: add IL_0132: conv.u2 IL_0133: stfld System.UInt16 CitizenUnit::m_goods IL_0138: Label5 IL_0138: ldloc.1 IL_0139: ldfld Array32`1 CitizenManager::m_citizens IL_013E: ldfld Citizen[] Array32`1::m_buffer IL_0143: ldloc.2 IL_0144: conv.u IL_0145: ldelema Citizen IL_014A: dup IL_014B: ldfld Flags Citizen::m_flags IL_0150: ldc.i4 -16385 IL_0155: and IL_0156: stfld Flags Citizen::m_flags IL_015B: Label0 IL_015B: Label1 IL_015B: Label2 IL_015B: Label3 IL_015B: Label4 IL_015B: ldarg.0 IL_015C: ldarg.1 IL_015D: ldarg.2 IL_015E: ldarg.3 IL_015F: ldarg.s 4 IL_0161: call virtual System.Void HumanAI::SimulationStep(System.UInt16 instanceID, CitizenInstance& citizenData, Frame& frameData, System.Boolean lodPhysics) IL_0166: // end original IL_0166: ldarg 1 IL_016A: ldarg 2 IL_016E: ldarg.0 IL_016F: call static System.Void RealTime.GameConnection.Patches.ResidentAI_SimulationStep::Postfix(System.UInt16 instanceID, CitizenInstance& citizenData, ResidentAI __instance) IL_0174: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: System.Void TouristAI::UpdateLocation(System.UInt32 citizenID, Citizen& data) ### Replacement: static System.Void TouristAI::TouristAI.UpdateLocation_Patch1(TouristAI this, System.UInt32 citizenID, Citizen& data) IL_0000: Local var 0: Citizen/Location IL_0000: Local var 1: BuildingManager IL_0000: Local var 2: ItemClass/Service IL_0000: Local var 3: System.UInt16 IL_0000: Local var 4: System.Int32 IL_0000: Local var 5: System.Int32 IL_0000: Local var 6: System.Int32 IL_0000: Local var 7: BuildingInfo IL_0000: Local var 8: System.Int32 IL_0000: Local var 9: System.Int32 IL_0000: Local var 10: BuildingInfo IL_0000: Local var 11: System.Int32 IL_0000: Local var 12: BuildingInfo IL_0000: Local var 13: System.Int32 IL_0000: Local var 14: System.Int32 IL_0000: Local var 15: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 15 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 15 (System.Boolean) IL_000E: ldloc 15 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg.0 IL_0018: ldarg 1 IL_001C: ldarg 2 IL_0020: call static System.Boolean RealTime.GameConnection.Patches.TouristAI_UpdateLocation::Prefix(TouristAI __instance, System.UInt32 citizenID, Citizen& data) IL_0025: stloc 15 (System.Boolean) IL_0029: Label1 IL_0029: nop IL_002A: ldloc 15 (System.Boolean) IL_002E: brfalse => Label0 IL_0033: // start original IL_0033: ldarg.2 IL_0034: ldfld System.UInt16 Citizen::m_homeBuilding IL_0039: brtrue => Label2 IL_003E: ldarg.2 IL_003F: ldfld System.UInt16 Citizen::m_workBuilding IL_0044: brtrue => Label3 IL_0049: ldarg.2 IL_004A: ldfld System.UInt16 Citizen::m_visitBuilding IL_004F: brtrue => Label4 IL_0054: ldarg.2 IL_0055: ldfld System.UInt16 Citizen::m_instance IL_005A: brtrue => Label5 IL_005F: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0064: ldarg.1 IL_0065: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_006A: br => Label60 IL_006F: Label2 IL_006F: Label3 IL_006F: Label4 IL_006F: Label5 IL_006F: ldarg.2 IL_0070: call Location Citizen::get_CurrentLocation() IL_0075: stloc.0 IL_0076: ldloc.0 IL_0077: switch => Labels6,7,8,9 IL_008C: br => Label10 IL_0091: Label6 IL_0091: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0096: ldarg.1 IL_0097: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_009C: br => Label61 IL_00A1: Label7 IL_00A1: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_00A6: ldarg.1 IL_00A7: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_00AC: br => Label62 IL_00B1: Label8 IL_00B1: ldarg.2 IL_00B2: call System.Boolean Citizen::get_Dead() IL_00B7: brtrue => Label11 IL_00BC: ldarg.2 IL_00BD: call System.Boolean Citizen::get_Sick() IL_00C2: brtrue => Label12 IL_00C7: ldarg.2 IL_00C8: ldfld System.UInt16 Citizen::m_visitBuilding IL_00CD: brtrue => Label13 IL_00D2: Label11 IL_00D2: Label12 IL_00D2: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_00D7: ldarg.1 IL_00D8: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_00DD: br => Label14 IL_00E2: Label13 IL_00E2: ldarg.2 IL_00E3: call System.Boolean Citizen::get_Collapsed() IL_00E8: brtrue => Label15 IL_00ED: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_00F2: stloc.1 IL_00F3: ldc.i4.0 IL_00F4: stloc.2 IL_00F5: ldloc.1 IL_00F6: ldfld Array16`1 BuildingManager::m_buildings IL_00FB: ldfld Building[] Array16`1::m_buffer IL_0100: ldarg.2 IL_0101: ldfld System.UInt16 Citizen::m_visitBuilding IL_0106: ldelema Building IL_010B: ldfld System.UInt16 Building::m_eventIndex IL_0110: stloc.3 IL_0111: ldloc.1 IL_0112: ldfld Array16`1 BuildingManager::m_buildings IL_0117: ldfld Building[] Array16`1::m_buffer IL_011C: ldarg.2 IL_011D: ldfld System.UInt16 Citizen::m_visitBuilding IL_0122: ldelema Building IL_0127: call BuildingInfo Building::get_Info() IL_012C: ldfld ItemClass BuildingInfo::m_class IL_0131: ldfld Service ItemClass::m_service IL_0136: stloc.2 IL_0137: ldloc.2 IL_0138: ldc.i4.s 20 IL_013A: bne.un => Label16 IL_013F: ldloc.1 IL_0140: ldfld Array16`1 BuildingManager::m_buildings IL_0145: ldfld Building[] Array16`1::m_buffer IL_014A: ldarg.2 IL_014B: ldfld System.UInt16 Citizen::m_visitBuilding IL_0150: ldelema Building IL_0155: ldfld Flags Building::m_flags IL_015A: ldc.i4 2097152 IL_015F: and IL_0160: brfalse => Label17 IL_0165: ldarg.0 IL_0166: ldc.i4.0 IL_0167: call System.Int32 TouristAI::GetRandomTargetType(System.Int32 doNothingProbability) IL_016C: stloc.s 4 (System.Int32) IL_016E: ldloc.s 4 (System.Int32) IL_0170: ldc.i4.1 IL_0171: bne.un => Label18 IL_0176: ldarg.0 IL_0177: ldarg.1 IL_0178: ldarg.2 IL_0179: ldfld System.UInt16 Citizen::m_visitBuilding IL_017E: ldarg.0 IL_017F: ldarg.1 IL_0180: ldarg.2 IL_0181: call TransferReason HumanAI::GetLeavingReason(System.UInt32 citizenID, Citizen& data) IL_0186: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_018B: br => Label19 IL_0190: Label18 IL_0190: ldloc.s 4 (System.Int32) IL_0192: ldc.i4.2 IL_0193: bne.un => Label20 IL_0198: ldarg.0 IL_0199: ldarg.1 IL_019A: ldarg.2 IL_019B: ldfld System.UInt16 Citizen::m_visitBuilding IL_01A0: ldarg.0 IL_01A1: call TransferReason TouristAI::GetShoppingReason() IL_01A6: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_01AB: br => Label21 IL_01B0: Label20 IL_01B0: ldloc.s 4 (System.Int32) IL_01B2: ldc.i4.3 IL_01B3: bne.un => Label22 IL_01B8: ldarg.0 IL_01B9: ldarg.1 IL_01BA: ldarg.2 IL_01BB: ldfld System.UInt16 Citizen::m_visitBuilding IL_01C0: ldarg.0 IL_01C1: call TransferReason TouristAI::GetEntertainmentReason() IL_01C6: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_01CB: Label17 IL_01CB: Label19 IL_01CB: Label21 IL_01CB: Label22 IL_01CB: br => Label23 IL_01D0: Label16 IL_01D0: ldloc.1 IL_01D1: ldfld Array16`1 BuildingManager::m_buildings IL_01D6: ldfld Building[] Array16`1::m_buffer IL_01DB: ldarg.2 IL_01DC: ldfld System.UInt16 Citizen::m_visitBuilding IL_01E1: ldelema Building IL_01E6: ldfld Flags Building::m_flags IL_01EB: ldc.i4 32768 IL_01F0: and IL_01F1: brfalse => Label24 IL_01F6: ldarg.0 IL_01F7: ldarg.1 IL_01F8: ldarg.2 IL_01F9: ldfld System.UInt16 Citizen::m_visitBuilding IL_01FE: ldarg.0 IL_01FF: ldarg.2 IL_0200: ldfld System.UInt16 Citizen::m_visitBuilding IL_0205: call TransferReason TouristAI::GetEvacuationReason(System.UInt16 sourceBuilding) IL_020A: call System.Void HumanAI::FindEvacuationPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_020F: br => Label25 IL_0214: Label24 IL_0214: ldloc.3 IL_0215: brfalse => Label26 IL_021A: call static EventManager ColossalFramework.Singleton`1::get_instance() IL_021F: ldfld FastList`1 EventManager::m_events IL_0224: ldfld EventData[] FastList`1::m_buffer IL_0229: ldloc.3 IL_022A: ldelema EventData IL_022F: ldfld Flags EventData::m_flags IL_0234: ldc.i4 4144 IL_0239: and IL_023A: brtrue => Label27 IL_023F: ldarg.0 IL_0240: ldc.i4.0 IL_0241: call System.Int32 TouristAI::GetRandomTargetType(System.Int32 doNothingProbability) IL_0246: stloc.s 5 (System.Int32) IL_0248: ldloc.s 5 (System.Int32) IL_024A: ldc.i4.1 IL_024B: bne.un => Label28 IL_0250: ldarg.0 IL_0251: ldarg.1 IL_0252: ldarg.2 IL_0253: ldfld System.UInt16 Citizen::m_visitBuilding IL_0258: ldarg.0 IL_0259: ldarg.1 IL_025A: ldarg.2 IL_025B: call TransferReason HumanAI::GetLeavingReason(System.UInt32 citizenID, Citizen& data) IL_0260: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_0265: br => Label29 IL_026A: Label28 IL_026A: ldloc.s 5 (System.Int32) IL_026C: ldc.i4.2 IL_026D: bne.un => Label30 IL_0272: ldarg.0 IL_0273: ldarg.1 IL_0274: ldarg.2 IL_0275: ldfld System.UInt16 Citizen::m_visitBuilding IL_027A: ldarg.0 IL_027B: call TransferReason TouristAI::GetShoppingReason() IL_0280: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_0285: br => Label31 IL_028A: Label30 IL_028A: ldloc.s 5 (System.Int32) IL_028C: ldc.i4.3 IL_028D: bne.un => Label32 IL_0292: ldarg.0 IL_0293: ldarg.1 IL_0294: ldarg.2 IL_0295: ldfld System.UInt16 Citizen::m_visitBuilding IL_029A: ldarg.0 IL_029B: call TransferReason TouristAI::GetEntertainmentReason() IL_02A0: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_02A5: Label29 IL_02A5: Label31 IL_02A5: Label32 IL_02A5: br => Label33 IL_02AA: Label27 IL_02AA: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_02AF: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_02B4: ldc.i4.s 10 IL_02B6: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_02BB: stloc.s 6 (System.Int32) IL_02BD: ldloc.s 6 (System.Int32) IL_02BF: ldc.i4.5 IL_02C0: bge => Label34 IL_02C5: ldloc.1 IL_02C6: ldfld Array16`1 BuildingManager::m_buildings IL_02CB: ldfld Building[] Array16`1::m_buffer IL_02D0: ldarg.2 IL_02D1: ldfld System.UInt16 Citizen::m_visitBuilding IL_02D6: ldelema Building IL_02DB: call BuildingInfo Building::get_Info() IL_02E0: stloc.s 7 (BuildingInfo) IL_02E2: ldc.i4.s -100 IL_02E4: stloc.s 8 (System.Int32) IL_02E6: ldloc.s 7 (BuildingInfo) IL_02E8: ldfld BuildingAI BuildingInfo::m_buildingAI IL_02ED: ldarg.2 IL_02EE: ldfld System.UInt16 Citizen::m_visitBuilding IL_02F3: ldloc.1 IL_02F4: ldfld Array16`1 BuildingManager::m_buildings IL_02F9: ldfld Building[] Array16`1::m_buffer IL_02FE: ldarg.2 IL_02FF: ldfld System.UInt16 Citizen::m_visitBuilding IL_0304: ldelema Building IL_0309: ldc.i4.s 30 IL_030B: ldloca.s 8 (System.Int32) IL_030D: callvirt virtual System.Void BuildingAI::ModifyMaterialBuffer(System.UInt16 buildingID, Building& data, TransferReason material, System.Int32& amountDelta) IL_0312: ldarg.0 IL_0313: ldarg.1 IL_0314: ldarg.2 IL_0315: ldfld System.UInt16 Citizen::m_visitBuilding IL_031A: call System.Void TouristAI::AddTouristVisit(System.UInt32 citizenID, System.UInt16 buildingID) IL_031F: Label33 IL_031F: Label34 IL_031F: br => Label35 IL_0324: Label26 IL_0324: ldarg.0 IL_0325: ldc.i4 5000 IL_032A: call System.Int32 TouristAI::GetRandomTargetType(System.Int32 doNothingProbability) IL_032F: stloc.s 9 (System.Int32) IL_0331: ldloc.s 9 (System.Int32) IL_0333: ldc.i4.1 IL_0334: bne.un => Label36 IL_0339: ldarg.0 IL_033A: ldarg.1 IL_033B: ldarg.2 IL_033C: ldfld System.UInt16 Citizen::m_visitBuilding IL_0341: ldarg.0 IL_0342: ldarg.1 IL_0343: ldarg.2 IL_0344: call TransferReason HumanAI::GetLeavingReason(System.UInt32 citizenID, Citizen& data) IL_0349: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_034E: br => Label37 IL_0353: Label36 IL_0353: ldloc.s 9 (System.Int32) IL_0355: ldc.i4.2 IL_0356: bne.un => Label38 IL_035B: ldarg.2 IL_035C: ldfld System.UInt16 Citizen::m_instance IL_0361: brtrue => Label39 IL_0366: ldarg.0 IL_0367: call System.Boolean TouristAI::DoRandomMove() IL_036C: brfalse => Label40 IL_0371: Label39 IL_0371: ldarg.0 IL_0372: ldarg.1 IL_0373: ldarg.2 IL_0374: ldfld System.UInt16 Citizen::m_visitBuilding IL_0379: ldarg.0 IL_037A: call TransferReason TouristAI::GetShoppingReason() IL_037F: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_0384: br => Label41 IL_0389: Label40 IL_0389: ldloc.1 IL_038A: ldfld Array16`1 BuildingManager::m_buildings IL_038F: ldfld Building[] Array16`1::m_buffer IL_0394: ldarg.2 IL_0395: ldfld System.UInt16 Citizen::m_visitBuilding IL_039A: ldelema Building IL_039F: call BuildingInfo Building::get_Info() IL_03A4: stloc.s 10 (BuildingInfo) IL_03A6: ldc.i4.s -100 IL_03A8: stloc.s 11 (System.Int32) IL_03AA: ldloc.s 10 (BuildingInfo) IL_03AC: ldfld BuildingAI BuildingInfo::m_buildingAI IL_03B1: ldarg.2 IL_03B2: ldfld System.UInt16 Citizen::m_visitBuilding IL_03B7: ldloc.1 IL_03B8: ldfld Array16`1 BuildingManager::m_buildings IL_03BD: ldfld Building[] Array16`1::m_buffer IL_03C2: ldarg.2 IL_03C3: ldfld System.UInt16 Citizen::m_visitBuilding IL_03C8: ldelema Building IL_03CD: ldc.i4.s 30 IL_03CF: ldloca.s 11 (System.Int32) IL_03D1: callvirt virtual System.Void BuildingAI::ModifyMaterialBuffer(System.UInt16 buildingID, Building& data, TransferReason material, System.Int32& amountDelta) IL_03D6: ldarg.0 IL_03D7: ldarg.1 IL_03D8: ldarg.2 IL_03D9: ldfld System.UInt16 Citizen::m_visitBuilding IL_03DE: call System.Void TouristAI::AddTouristVisit(System.UInt32 citizenID, System.UInt16 buildingID) IL_03E3: Label41 IL_03E3: br => Label42 IL_03E8: Label38 IL_03E8: ldloc.s 9 (System.Int32) IL_03EA: ldc.i4.3 IL_03EB: bne.un => Label43 IL_03F0: ldarg.2 IL_03F1: ldfld System.UInt16 Citizen::m_instance IL_03F6: brtrue => Label44 IL_03FB: ldarg.0 IL_03FC: call System.Boolean TouristAI::DoRandomMove() IL_0401: brfalse => Label45 IL_0406: Label44 IL_0406: ldarg.0 IL_0407: ldarg.1 IL_0408: ldarg.2 IL_0409: ldfld System.UInt16 Citizen::m_visitBuilding IL_040E: ldarg.0 IL_040F: call TransferReason TouristAI::GetEntertainmentReason() IL_0414: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_0419: br => Label46 IL_041E: Label45 IL_041E: ldloc.1 IL_041F: ldfld Array16`1 BuildingManager::m_buildings IL_0424: ldfld Building[] Array16`1::m_buffer IL_0429: ldarg.2 IL_042A: ldfld System.UInt16 Citizen::m_visitBuilding IL_042F: ldelema Building IL_0434: call BuildingInfo Building::get_Info() IL_0439: stloc.s 12 (BuildingInfo) IL_043B: ldc.i4.s -100 IL_043D: stloc.s 13 (System.Int32) IL_043F: ldloc.s 12 (BuildingInfo) IL_0441: ldfld BuildingAI BuildingInfo::m_buildingAI IL_0446: ldarg.2 IL_0447: ldfld System.UInt16 Citizen::m_visitBuilding IL_044C: ldloc.1 IL_044D: ldfld Array16`1 BuildingManager::m_buildings IL_0452: ldfld Building[] Array16`1::m_buffer IL_0457: ldarg.2 IL_0458: ldfld System.UInt16 Citizen::m_visitBuilding IL_045D: ldelema Building IL_0462: ldc.i4.s 30 IL_0464: ldloca.s 13 (System.Int32) IL_0466: callvirt virtual System.Void BuildingAI::ModifyMaterialBuffer(System.UInt16 buildingID, Building& data, TransferReason material, System.Int32& amountDelta) IL_046B: ldarg.0 IL_046C: ldarg.1 IL_046D: ldarg.2 IL_046E: ldfld System.UInt16 Citizen::m_visitBuilding IL_0473: call System.Void TouristAI::AddTouristVisit(System.UInt32 citizenID, System.UInt16 buildingID) IL_0478: Label14 IL_0478: Label15 IL_0478: Label23 IL_0478: Label25 IL_0478: Label35 IL_0478: Label37 IL_0478: Label42 IL_0478: Label43 IL_0478: Label46 IL_0478: br => Label63 IL_047D: Label9 IL_047D: ldarg.2 IL_047E: call System.Boolean Citizen::get_Dead() IL_0483: brtrue => Label47 IL_0488: ldarg.2 IL_0489: call System.Boolean Citizen::get_Sick() IL_048E: brfalse => Label48 IL_0493: Label47 IL_0493: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0498: ldarg.1 IL_0499: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_049E: br => Label49 IL_04A3: Label48 IL_04A3: ldarg.2 IL_04A4: ldfld System.UInt16 Citizen::m_vehicle IL_04A9: brtrue => Label50 IL_04AE: ldarg.2 IL_04AF: ldfld System.UInt16 Citizen::m_instance IL_04B4: brtrue => Label51 IL_04B9: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_04BE: ldarg.1 IL_04BF: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_04C4: br => Label52 IL_04C9: Label50 IL_04C9: Label51 IL_04C9: ldarg.2 IL_04CA: ldfld System.UInt16 Citizen::m_instance IL_04CF: brfalse => Label53 IL_04D4: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_04D9: ldfld Array16`1 CitizenManager::m_instances IL_04DE: ldfld CitizenInstance[] Array16`1::m_buffer IL_04E3: ldarg.2 IL_04E4: ldfld System.UInt16 Citizen::m_instance IL_04E9: ldelema CitizenInstance IL_04EE: ldfld Flags CitizenInstance::m_flags IL_04F3: ldc.i4 402653184 IL_04F8: and IL_04F9: ldc.i4 402653184 IL_04FE: bne.un => Label54 IL_0503: ldarg.0 IL_0504: ldc.i4 5000 IL_0509: call System.Int32 TouristAI::GetRandomTargetType(System.Int32 doNothingProbability) IL_050E: stloc.s 14 (System.Int32) IL_0510: ldloc.s 14 (System.Int32) IL_0512: ldc.i4.1 IL_0513: bne.un => Label55 IL_0518: ldarg.0 IL_0519: ldarg.1 IL_051A: ldc.i4.0 IL_051B: ldarg.0 IL_051C: ldarg.1 IL_051D: ldarg.2 IL_051E: call TransferReason HumanAI::GetLeavingReason(System.UInt32 citizenID, Citizen& data) IL_0523: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_0528: br => Label56 IL_052D: Label55 IL_052D: ldloc.s 14 (System.Int32) IL_052F: ldc.i4.2 IL_0530: bne.un => Label57 IL_0535: ldarg.0 IL_0536: ldarg.1 IL_0537: ldc.i4.0 IL_0538: ldarg.0 IL_0539: call TransferReason TouristAI::GetShoppingReason() IL_053E: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_0543: br => Label58 IL_0548: Label57 IL_0548: ldloc.s 14 (System.Int32) IL_054A: ldc.i4.3 IL_054B: bne.un => Label59 IL_0550: ldarg.0 IL_0551: ldarg.1 IL_0552: ldc.i4.0 IL_0553: ldarg.0 IL_0554: call TransferReason TouristAI::GetEntertainmentReason() IL_0559: call System.Void HumanAI::FindVisitPlace(System.UInt32 citizenID, System.UInt16 sourceBuilding, TransferReason reason) IL_055E: // end original IL_055E: Label10 IL_055E: Label49 IL_055E: Label52 IL_055E: Label53 IL_055E: Label54 IL_055E: Label56 IL_055E: Label58 IL_055E: Label59 IL_055E: Label60 IL_055E: Label61 IL_055E: Label62 IL_055E: Label63 IL_055E: Label0 IL_055E: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: System.Void TransferManager::AddOutgoingOffer(TransferReason material, TransferOffer offer) ### Replacement: static System.Void TransferManager::TransferManager.AddOutgoingOffer_Patch1(TransferManager this, TransferReason material, TransferOffer offer) IL_0000: Local var 0: System.Byte IL_0000: Local var 1: DistrictPark/PedestrianZoneTransferReason IL_0000: Local var 2: Building[] IL_0000: Local var 3: System.Boolean IL_0000: Local var 4: System.UInt16 IL_0000: Local var 5: Notification/ProblemStruct IL_0000: Local var 6: System.Int32 IL_0000: Local var 7: System.Int32 IL_0000: Local var 8: System.Int32 IL_0000: Local var 9: System.Int32 IL_0000: Local var 10: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 10 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 10 (System.Boolean) IL_000E: ldloc 10 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarga 2 IL_001F: call static System.Boolean RealTime.GameConnection.Patches.TransferManager_AddOutgoingOffer::Prefix(TransferReason material, TransferOffer& offer) IL_0024: stloc 10 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 10 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: ldarga.s 2 IL_0034: call System.UInt16 TransferOffer::get_Building() IL_0039: brfalse => Label2 IL_003E: call static DistrictManager ColossalFramework.Singleton`1::get_instance() IL_0043: ldarga.s 2 IL_0045: call UnityEngine.Vector3 TransferOffer::get_Position() IL_004A: callvirt System.Byte DistrictManager::GetPark(UnityEngine.Vector3 worldPos) IL_004F: stloc.0 IL_0050: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0055: ldfld Array16`1 BuildingManager::m_buildings IL_005A: ldfld Building[] Array16`1::m_buffer IL_005F: stloc.2 IL_0060: ldloc.0 IL_0061: brfalse => Label3 IL_0066: call static DistrictManager ColossalFramework.Singleton`1::get_instance() IL_006B: ldfld Array8`1 DistrictManager::m_parks IL_0070: ldfld DistrictPark[] Array8`1::m_buffer IL_0075: ldloc.0 IL_0076: ldelema DistrictPark IL_007B: call System.Boolean DistrictPark::get_IsPedestrianZone() IL_0080: brfalse => Label4 IL_0085: ldloc.2 IL_0086: ldarga.s 2 IL_0088: call System.UInt16 TransferOffer::get_Building() IL_008D: ldelema Building IL_0092: call BuildingInfo Building::get_Info() IL_0097: ldfld BuildingAI BuildingInfo::m_buildingAI IL_009C: ldarga.s 2 IL_009E: call System.UInt16 TransferOffer::get_Building() IL_00A3: ldloc.2 IL_00A4: ldarga.s 2 IL_00A6: call System.UInt16 TransferOffer::get_Building() IL_00AB: ldelema Building IL_00B0: callvirt virtual System.Boolean BuildingAI::GetUseServicePoint(System.UInt16 buildingAI, Building& data) IL_00B5: brfalse => Label5 IL_00BA: ldarg.1 IL_00BB: ldloca.s 1 (DistrictPark+PedestrianZoneTransferReason) IL_00BD: call static System.Boolean DistrictPark::TryGetPedestrianReason(TransferReason material, PedestrianZoneTransferReason& reason) IL_00C2: brfalse => Label6 IL_00C7: ldc.i4.0 IL_00C8: stloc.3 IL_00C9: call static DistrictManager ColossalFramework.Singleton`1::get_instance() IL_00CE: ldfld Array8`1 DistrictManager::m_parks IL_00D3: ldfld DistrictPark[] Array8`1::m_buffer IL_00D8: ldloc.0 IL_00D9: ldelema DistrictPark IL_00DE: ldfld Park DistrictPark::m_parkPolicies IL_00E3: ldc.i4 16777216 IL_00E8: and IL_00E9: brfalse => Label7 IL_00EE: ldc.i4.1 IL_00EF: stloc.3 IL_00F0: Label7 IL_00F0: ldloc.3 IL_00F1: brtrue => Label8 IL_00F6: ldloc.2 IL_00F7: ldarga.s 2 IL_00F9: call System.UInt16 TransferOffer::get_Building() IL_00FE: ldelema Building IL_0103: ldfld System.UInt16 Building::m_accessSegment IL_0108: stloc.s 4 (System.UInt16) IL_010A: ldloc.s 4 (System.UInt16) IL_010C: brtrue => Label9 IL_0111: ldloc.2 IL_0112: ldarga.s 2 IL_0114: call System.UInt16 TransferOffer::get_Building() IL_0119: ldelema Building IL_011E: ldfld ProblemStruct Building::m_problems IL_0123: ldc.i4 4096 IL_0128: conv.i8 IL_0129: ldc.i4.1 IL_012A: conv.i8 IL_012B: newobj System.Void ProblemStruct::.ctor(Problem1 problem1, Problem2 problem2) IL_0130: call static ProblemStruct ProblemStruct::op_BitwiseAnd(ProblemStruct a, ProblemStruct b) IL_0135: stloc.s 5 (Notification+ProblemStruct) IL_0137: ldloca.s 5 (Notification+ProblemStruct) IL_0139: call System.Boolean ProblemStruct::get_IsNone() IL_013E: brfalse => Label10 IL_0143: ldloc.2 IL_0144: ldarga.s 2 IL_0146: call System.UInt16 TransferOffer::get_Building() IL_014B: ldelema Building IL_0150: call BuildingInfo Building::get_Info() IL_0155: ldfld BuildingAI BuildingInfo::m_buildingAI IL_015A: ldarga.s 2 IL_015C: call System.UInt16 TransferOffer::get_Building() IL_0161: ldloc.2 IL_0162: ldarga.s 2 IL_0164: call System.UInt16 TransferOffer::get_Building() IL_0169: ldelema Building IL_016E: callvirt virtual System.Void BuildingAI::CheckRoadAccess(System.UInt16 buildingID, Building& data) IL_0173: ldloc.2 IL_0174: ldarga.s 2 IL_0176: call System.UInt16 TransferOffer::get_Building() IL_017B: ldelema Building IL_0180: ldfld System.UInt16 Building::m_accessSegment IL_0185: stloc.s 4 (System.UInt16) IL_0187: Label9 IL_0187: Label10 IL_0187: ldloc.s 4 (System.UInt16) IL_0189: brfalse => Label11 IL_018E: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0193: ldfld Array16`1 NetManager::m_segments IL_0198: ldfld NetSegment[] Array16`1::m_buffer IL_019D: ldloc.s 4 (System.UInt16) IL_019F: ldelema NetSegment IL_01A4: call NetInfo NetSegment::get_Info() IL_01A9: ldfld VehicleCategory NetInfo::m_vehicleCategories IL_01AE: ldloca.s 1 (DistrictPark+PedestrianZoneTransferReason) IL_01B0: ldfld VehicleCategory PedestrianZoneTransferReason::m_vehicleCategory IL_01B5: and IL_01B6: ldc.i4.0 IL_01B7: conv.i8 IL_01B8: bne.un => Label12 IL_01BD: ldc.i4.1 IL_01BE: stloc.3 IL_01BF: Label8 IL_01BF: Label11 IL_01BF: Label12 IL_01BF: ldloc.3 IL_01C0: brfalse => Label13 IL_01C5: ldarga.s 2 IL_01C7: ldloc.0 IL_01C8: stfld System.Byte TransferOffer::m_isLocalPark IL_01CD: call static DistrictManager ColossalFramework.Singleton`1::get_instance() IL_01D2: ldfld Array8`1 DistrictManager::m_parks IL_01D7: ldfld DistrictPark[] Array8`1::m_buffer IL_01DC: ldloc.0 IL_01DD: ldelema DistrictPark IL_01E2: ldarga.s 2 IL_01E4: call System.UInt16 TransferOffer::get_Building() IL_01E9: ldarg.1 IL_01EA: call System.Void DistrictPark::AddMaterialSuggestion(System.UInt16 buildingID, TransferReason material) IL_01EF: Label2 IL_01EF: Label3 IL_01EF: Label4 IL_01EF: Label5 IL_01EF: Label6 IL_01EF: Label13 IL_01EF: ldarga.s 2 IL_01F1: call System.Int32 TransferOffer::get_Priority() IL_01F6: stloc.s 6 (System.Int32) IL_01F8: br => Label14 IL_01FD: Label16 IL_01FD: ldarg.1 IL_01FE: ldc.i4.8 IL_01FF: mul IL_0200: ldloc.s 6 (System.Int32) IL_0202: add IL_0203: stloc.s 7 (System.Int32) IL_0205: ldarg.0 IL_0206: ldfld System.UInt16[] TransferManager::m_outgoingCount IL_020B: ldloc.s 7 (System.Int32) IL_020D: ldelem.u2 IL_020E: stloc.s 8 (System.Int32) IL_0210: ldloc.s 8 (System.Int32) IL_0212: ldc.i4 256 IL_0217: bge => Label15 IL_021C: ldloc.s 7 (System.Int32) IL_021E: ldc.i4 256 IL_0223: mul IL_0224: ldloc.s 8 (System.Int32) IL_0226: add IL_0227: stloc.s 9 (System.Int32) IL_0229: ldarg.0 IL_022A: ldfld TransferOffer[] TransferManager::m_outgoingOffers IL_022F: ldloc.s 9 (System.Int32) IL_0231: ldelema TransferManager+TransferOffer IL_0236: ldarg.2 IL_0237: stobj TransferManager+TransferOffer IL_023C: ldarg.0 IL_023D: ldfld System.UInt16[] TransferManager::m_outgoingCount IL_0242: ldloc.s 7 (System.Int32) IL_0244: ldloc.s 8 (System.Int32) IL_0246: ldc.i4.1 IL_0247: add IL_0248: conv.u2 IL_0249: stelem.i2 IL_024A: ldarg.0 IL_024B: ldfld System.Int32[] TransferManager::m_outgoingAmount IL_0250: ldarg.1 IL_0251: ldelema System.Int32 IL_0256: dup IL_0257: ldind.i4 IL_0258: ldarga.s 2 IL_025A: call System.Int32 TransferOffer::get_Amount() IL_025F: add IL_0260: stind.i4 IL_0261: br => Label17 IL_0266: Label15 IL_0266: ldloc.s 6 (System.Int32) IL_0268: ldc.i4.1 IL_0269: sub IL_026A: stloc.s 6 (System.Int32) IL_026C: Label14 IL_026C: ldloc.s 6 (System.Int32) IL_026E: ldc.i4.0 IL_026F: bge => Label16 IL_0274: // end original IL_0274: Label17 IL_0274: Label0 IL_0274: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: virtual System.Void WorldInfoPanel::UpdateBindings() ### Replacement: static System.Void WorldInfoPanel::WorldInfoPanel.UpdateBindings_Patch1(WorldInfoPanel this) IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldfld ColossalFramework.UI.UIMultiStateButton WorldInfoPanel::m_LocationMarker IL_0006: ldnull IL_0007: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_000C: brfalse => Label0 IL_0011: ldarg.0 IL_0012: ldfld ColossalFramework.UI.UIMultiStateButton WorldInfoPanel::m_LocationMarker IL_0017: call static CameraController ToolsModifierControl::get_cameraController() IL_001C: ldarg.0 IL_001D: ldfld InstanceID WorldInfoPanel::m_InstanceID IL_0022: callvirt System.Boolean CameraController::HasTarget(InstanceID id) IL_0027: brfalse => Label1 IL_002C: ldc.i4.1 IL_002D: br => Label2 IL_0032: Label1 IL_0032: ldc.i4.0 IL_0033: Label2 IL_0033: callvirt System.Void ColossalFramework.UI.UIMultiStateButton::set_activeStateIndex(System.Int32 value) IL_0038: Label0 IL_0038: ldarg.0 IL_0039: ldfld ColossalFramework.UI.UIMultiStateButton WorldInfoPanel::m_ShowHideRoutesButton IL_003E: ldnull IL_003F: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_0044: brfalse => Label3 IL_0049: ldarg.0 IL_004A: ldfld ColossalFramework.UI.UIMultiStateButton WorldInfoPanel::m_ShowHideRoutesButton IL_004F: ldarg.0 IL_0050: call System.Boolean WorldInfoPanel::get_isRoutesViewOn() IL_0055: brfalse => Label4 IL_005A: ldc.i4.1 IL_005B: br => Label5 IL_0060: Label4 IL_0060: ldc.i4.0 IL_0061: Label5 IL_0061: callvirt System.Void ColossalFramework.UI.UIMultiStateButton::set_activeStateIndex(System.Int32 value) IL_0066: // end original IL_0066: Label3 IL_0066: ldarg.0 IL_0067: ldarg.0 IL_0068: ldflda InstanceID WorldInfoPanel::m_InstanceID IL_006D: call static System.Void RealTime.GameConnection.Patches.WorldInfoPanel_UpdateBindings::Postfix(WorldInfoPanel __instance, InstanceID& ___m_InstanceID) IL_0072: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: System.Int32 ColossalFramework.UI.UIGraph::GetMinDataPoints() ### Replacement: static System.Int32 ColossalFramework.UI.UIGraph::ColossalFramework.UI.UIGraph.GetMinDataPoints_Patch1(ColossalFramework.UI.UIGraph this) IL_0000: Local var 0: System.DateTime IL_0000: Local var 1: System.Int64 IL_0000: Local var 2: System.Int64 IL_0000: Local var 3: System.Int32 IL_0000: Local var 4: System.DateTime IL_0000: Local var 5: System.Int32 IL_0000: Local var 6: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 5 (System.Int32) IL_0009: ldc.i4 0 IL_000E: stloc 6 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 6 (System.Boolean) IL_0017: ldloc 6 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldarg.0 IL_0021: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_0026: ldarg.0 IL_0027: ldfld System.DateTime ColossalFramework.UI.UIGraph::m_StartTime IL_002C: ldarg.0 IL_002D: ldfld System.DateTime ColossalFramework.UI.UIGraph::m_EndTime IL_0032: ldloca 5 (System.Int32) IL_0036: call static System.Boolean RealTime.GameConnection.Patches.UIGraph_GetMinDataPoints::Prefix(System.Collections.Generic.List`1 ___m_Curves, System.DateTime ___m_StartTime, System.DateTime ___m_EndTime, System.Int32& __result) IL_003B: stloc 6 (System.Boolean) IL_003F: Label1 IL_003F: nop IL_0040: ldloc 6 (System.Boolean) IL_0044: brfalse => Label0 IL_0049: // start original IL_0049: ldarg.0 IL_004A: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_004F: callvirt virtual System.Int32 System.Collections.Generic.List`1::get_Count() IL_0054: ldc.i4.1 IL_0055: blt => Label2 IL_005A: ldarg.0 IL_005B: ldfld System.DateTime ColossalFramework.UI.UIGraph::m_StartTime IL_0060: ldarg.0 IL_0061: ldfld System.DateTime ColossalFramework.UI.UIGraph::m_EndTime IL_0066: call static System.Boolean System.DateTime::op_Equality(System.DateTime d1, System.DateTime d2) IL_006B: brtrue => Label3 IL_0070: ldarg.0 IL_0071: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_0076: ldarg.0 IL_0077: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_007C: callvirt virtual System.Int32 System.Collections.Generic.List`1::get_Count() IL_0081: ldc.i4.1 IL_0082: sub IL_0083: callvirt virtual ColossalFramework.UI.CurveSettings System.Collections.Generic.List`1::get_Item(System.Int32 index) IL_0088: callvirt System.Single[] ColossalFramework.UI.CurveSettings::get_data() IL_008D: ldlen IL_008E: conv.i4 IL_008F: ldc.i4.2 IL_0090: bge => Label4 IL_0095: Label2 IL_0095: Label3 IL_0095: ldsfld System.Int32 ColossalFramework.UI.UIGraph::MIN_DATA IL_009A: br => Label5 IL_009F: Label4 IL_009F: ldarg.0 IL_00A0: ldflda System.DateTime ColossalFramework.UI.UIGraph::m_StartTime IL_00A5: ldsfld System.Int32 ColossalFramework.UI.UIGraph::MIN_YEARS IL_00AA: call System.DateTime System.DateTime::AddYears(System.Int32 value) IL_00AF: stloc.s 4 (System.DateTime) IL_00B1: ldloca.s 4 (System.DateTime) IL_00B3: ldsfld System.Int32 ColossalFramework.UI.UIGraph::MIN_MONTHS IL_00B8: call System.DateTime System.DateTime::AddMonths(System.Int32 months) IL_00BD: stloc.0 IL_00BE: ldloca.s 0 (System.DateTime) IL_00C0: call System.Int64 System.DateTime::get_Ticks() IL_00C5: ldarg.0 IL_00C6: ldflda System.DateTime ColossalFramework.UI.UIGraph::m_StartTime IL_00CB: call System.Int64 System.DateTime::get_Ticks() IL_00D0: sub IL_00D1: stloc.1 IL_00D2: ldarg.0 IL_00D3: ldflda System.DateTime ColossalFramework.UI.UIGraph::m_EndTime IL_00D8: call System.Int64 System.DateTime::get_Ticks() IL_00DD: ldarg.0 IL_00DE: ldflda System.DateTime ColossalFramework.UI.UIGraph::m_StartTime IL_00E3: call System.Int64 System.DateTime::get_Ticks() IL_00E8: sub IL_00E9: ldarg.0 IL_00EA: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_00EF: ldarg.0 IL_00F0: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_00F5: callvirt virtual System.Int32 System.Collections.Generic.List`1::get_Count() IL_00FA: ldc.i4.1 IL_00FB: sub IL_00FC: callvirt virtual ColossalFramework.UI.CurveSettings System.Collections.Generic.List`1::get_Item(System.Int32 index) IL_0101: callvirt System.Single[] ColossalFramework.UI.CurveSettings::get_data() IL_0106: ldlen IL_0107: conv.i4 IL_0108: ldc.i4.1 IL_0109: sub IL_010A: conv.i8 IL_010B: div IL_010C: stloc.2 IL_010D: ldloc.1 IL_010E: conv.r4 IL_010F: ldloc.2 IL_0110: conv.r4 IL_0111: div IL_0112: call static System.Int32 UnityEngine.Mathf::CeilToInt(System.Single f) IL_0117: stloc.3 IL_0118: ldsfld System.Int32 ColossalFramework.UI.UIGraph::MIN_DATA IL_011D: ldloc.3 IL_011E: call static System.Int32 System.Math::Max(System.Int32 val1, System.Int32 val2) IL_0123: // end original IL_0123: Label5 IL_0123: stloc 5 (System.Int32) IL_0127: Label0 IL_0127: ldloc 5 (System.Int32) IL_012B: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: System.DateTime ColossalFramework.UI.UIGraph::GetVisibleEndTime() ### Replacement: static System.DateTime ColossalFramework.UI.UIGraph::ColossalFramework.UI.UIGraph.GetVisibleEndTime_Patch1(ColossalFramework.UI.UIGraph this) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: System.Int64 IL_0000: Local var 2: System.DateTime IL_0000: Local var 3: System.DateTime IL_0000: Local var 4: System.Boolean IL_0000: ldloca 3 (System.DateTime) IL_0004: initobj System.DateTime IL_000A: ldc.i4 0 IL_000F: stloc 4 (System.Boolean) IL_0013: ldc.i4.1 IL_0014: stloc 4 (System.Boolean) IL_0018: ldloc 4 (System.Boolean) IL_001C: brfalse => Label1 IL_0021: ldarg.0 IL_0022: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_0027: ldarg.0 IL_0028: ldfld System.DateTime ColossalFramework.UI.UIGraph::m_StartTime IL_002D: ldarg.0 IL_002E: ldfld System.DateTime ColossalFramework.UI.UIGraph::m_EndTime IL_0033: ldloca 3 (System.DateTime) IL_0037: call static System.Boolean RealTime.GameConnection.Patches.UIGraph_GetVisibleEndTime::Prefix(System.Collections.Generic.List`1 ___m_Curves, System.DateTime ___m_StartTime, System.DateTime ___m_EndTime, System.DateTime& __result) IL_003C: stloc 4 (System.Boolean) IL_0040: Label1 IL_0040: nop IL_0041: ldloc 4 (System.Boolean) IL_0045: brfalse => Label0 IL_004A: // start original IL_004A: ldarg.0 IL_004B: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_0050: callvirt virtual System.Int32 System.Collections.Generic.List`1::get_Count() IL_0055: ldc.i4.1 IL_0056: blt => Label2 IL_005B: ldarg.0 IL_005C: ldfld System.DateTime ColossalFramework.UI.UIGraph::m_StartTime IL_0061: ldarg.0 IL_0062: ldfld System.DateTime ColossalFramework.UI.UIGraph::m_EndTime IL_0067: call static System.Boolean System.DateTime::op_Equality(System.DateTime d1, System.DateTime d2) IL_006C: brtrue => Label3 IL_0071: ldarg.0 IL_0072: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_0077: ldarg.0 IL_0078: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_007D: callvirt virtual System.Int32 System.Collections.Generic.List`1::get_Count() IL_0082: ldc.i4.1 IL_0083: sub IL_0084: callvirt virtual ColossalFramework.UI.CurveSettings System.Collections.Generic.List`1::get_Item(System.Int32 index) IL_0089: callvirt System.Single[] ColossalFramework.UI.CurveSettings::get_data() IL_008E: ldlen IL_008F: conv.i4 IL_0090: ldc.i4.2 IL_0091: bge => Label4 IL_0096: Label2 IL_0096: Label3 IL_0096: ldc.i4.1 IL_0097: ldc.i4.1 IL_0098: ldc.i4.1 IL_0099: newobj System.Void System.DateTime::.ctor(System.Int32 year, System.Int32 month, System.Int32 day) IL_009E: br => Label5 IL_00A3: Label4 IL_00A3: ldarg.0 IL_00A4: call System.Int32 ColossalFramework.UI.UIGraph::GetMinDataPoints() IL_00A9: ldarg.0 IL_00AA: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_00AF: ldarg.0 IL_00B0: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_00B5: callvirt virtual System.Int32 System.Collections.Generic.List`1::get_Count() IL_00BA: ldc.i4.1 IL_00BB: sub IL_00BC: callvirt virtual ColossalFramework.UI.CurveSettings System.Collections.Generic.List`1::get_Item(System.Int32 index) IL_00C1: callvirt System.Single[] ColossalFramework.UI.CurveSettings::get_data() IL_00C6: ldlen IL_00C7: conv.i4 IL_00C8: call static System.Int32 System.Math::Max(System.Int32 val1, System.Int32 val2) IL_00CD: stloc.0 IL_00CE: ldarg.0 IL_00CF: ldflda System.DateTime ColossalFramework.UI.UIGraph::m_StartTime IL_00D4: ldsfld System.Int32 ColossalFramework.UI.UIGraph::MIN_YEARS IL_00D9: call System.DateTime System.DateTime::AddYears(System.Int32 value) IL_00DE: stloc.2 IL_00DF: ldloca.s 2 (System.DateTime) IL_00E1: ldsfld System.Int32 ColossalFramework.UI.UIGraph::MIN_MONTHS IL_00E6: call System.DateTime System.DateTime::AddMonths(System.Int32 months) IL_00EB: pop IL_00EC: ldarg.0 IL_00ED: ldflda System.DateTime ColossalFramework.UI.UIGraph::m_EndTime IL_00F2: call System.Int64 System.DateTime::get_Ticks() IL_00F7: ldarg.0 IL_00F8: ldflda System.DateTime ColossalFramework.UI.UIGraph::m_StartTime IL_00FD: call System.Int64 System.DateTime::get_Ticks() IL_0102: sub IL_0103: ldarg.0 IL_0104: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_0109: ldarg.0 IL_010A: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_010F: callvirt virtual System.Int32 System.Collections.Generic.List`1::get_Count() IL_0114: ldc.i4.1 IL_0115: sub IL_0116: callvirt virtual ColossalFramework.UI.CurveSettings System.Collections.Generic.List`1::get_Item(System.Int32 index) IL_011B: callvirt System.Single[] ColossalFramework.UI.CurveSettings::get_data() IL_0120: ldlen IL_0121: conv.i4 IL_0122: ldc.i4.1 IL_0123: sub IL_0124: conv.i8 IL_0125: div IL_0126: stloc.1 IL_0127: ldarg.0 IL_0128: ldflda System.DateTime ColossalFramework.UI.UIGraph::m_StartTime IL_012D: call System.Int64 System.DateTime::get_Ticks() IL_0132: ldloc.0 IL_0133: ldc.i4.1 IL_0134: sub IL_0135: conv.i8 IL_0136: ldloc.1 IL_0137: mul IL_0138: add IL_0139: newobj System.Void System.DateTime::.ctor(System.Int64 ticks) IL_013E: // end original IL_013E: Label5 IL_013E: stloc 3 (System.DateTime) IL_0142: Label0 IL_0142: ldloc 3 (System.DateTime) IL_0146: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: System.Void ColossalFramework.UI.UIGraph::BuildLabels(ColossalFramework.PoolList`1 vertices, ColossalFramework.PoolList`1 indices, ColossalFramework.PoolList`1 uvs, ColossalFramework.PoolList`1 colors) ### Replacement: static System.Void ColossalFramework.UI.UIGraph::ColossalFramework.UI.UIGraph.BuildLabels_Patch1(ColossalFramework.UI.UIGraph this, ColossalFramework.PoolList`1 vertices, ColossalFramework.PoolList`1 indices, ColossalFramework.PoolList`1 uvs, ColossalFramework.PoolList`1 colors) IL_0000: Local var 0: UnityEngine.Vector3 IL_0000: Local var 1: System.Single IL_0000: Local var 2: UnityEngine.Vector2 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: System.Single IL_0000: Local var 6: UnityEngine.Vector2 IL_0000: Local var 7: UnityEngine.Vector2 IL_0000: Local var 8: ColossalFramework.UI.UIFontRenderer IL_0000: Local var 9: System.Int32 IL_0000: Local var 10: System.Single IL_0000: Local var 11: System.String IL_0000: Local var 12: System.Single IL_0000: Local var 13: System.Single IL_0000: Local var 14: System.Single IL_0000: Local var 15: System.Single IL_0000: Local var 16: System.DateTime IL_0000: Local var 17: System.Single IL_0000: Local var 18: System.DateTime IL_0000: Local var 19: System.Int64 IL_0000: Local var 20: System.Int64 IL_0000: Local var 21: System.Single IL_0000: Local var 22: System.Single IL_0000: Local var 23: System.Int32 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.DateTime IL_0000: Local var 26: System.Single IL_0000: Local var 27: System.Single IL_0000: Local var 28: System.String IL_0000: Local var 29: System.Single IL_0000: Local var 30: System.DateTime IL_0000: Local var 31: System.DateTime IL_0000: Local var 32: System.DateTime IL_0000: Local var 33: System.DateTime IL_0000: Local var 34: System.DateTime IL_0000: Local var 35: System.DateTime IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_0006: callvirt virtual System.Int32 System.Collections.Generic.List`1::get_Count() IL_000B: ldc.i4.1 IL_000C: bge => Label0 IL_0011: br => Label11 IL_0016: Label0 IL_0016: ldarg.0 IL_0017: ldarg.0 IL_0018: call System.Single ColossalFramework.UI.UIGraph::get_min() IL_001D: ldarg.0 IL_001E: call System.Single ColossalFramework.UI.UIGraph::get_max() IL_0023: call UnityEngine.Vector3 ColossalFramework.UI.UIGraph::CalculateViewRange(System.Single themin, System.Single themax) IL_0028: stloc.0 IL_0029: ldarg.0 IL_002A: call System.Single ColossalFramework.UI.UIComponent::PixelsToUnits() IL_002F: stloc.1 IL_0030: ldloca.s 2 (UnityEngine.Vector2) IL_0032: ldarg.0 IL_0033: call UnityEngine.Vector2 ColossalFramework.UI.UIComponent::get_size() IL_0038: ldfld System.Single UnityEngine.Vector2::x IL_003D: ldarg.0 IL_003E: call UnityEngine.Vector2 ColossalFramework.UI.UIComponent::get_size() IL_0043: ldfld System.Single UnityEngine.Vector2::y IL_0048: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_004D: ldarg.0 IL_004E: call ColossalFramework.UI.UIPivotPoint ColossalFramework.UI.UIComponent::get_pivot() IL_0053: ldarg.0 IL_0054: call UnityEngine.Vector2 ColossalFramework.UI.UIComponent::get_size() IL_0059: ldarg.0 IL_005A: call UnityEngine.Vector2 ColossalFramework.UI.UIComponent::get_arbitraryPivotOffset() IL_005F: call static UnityEngine.Vector3 ColossalFramework.UI.UIPivotExtensions::TransformToCenter(ColossalFramework.UI.UIPivotPoint pivot, UnityEngine.Vector2 size, UnityEngine.Vector2 offset) IL_0064: ldloc.1 IL_0065: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_006A: stloc.3 IL_006B: ldloc.1 IL_006C: ldarg.0 IL_006D: call UnityEngine.Vector2 ColossalFramework.UI.UIComponent::get_size() IL_0072: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Multiply(System.Single d, UnityEngine.Vector2 a) IL_0077: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_007C: stloc.s 4 (UnityEngine.Vector3) IL_007E: ldarg.0 IL_007F: call UnityEngine.Vector2 ColossalFramework.UI.UIComponent::get_size() IL_0084: ldfld System.Single UnityEngine.Vector2::x IL_0089: ldarg.0 IL_008A: call UnityEngine.Vector2 ColossalFramework.UI.UIComponent::get_size() IL_008F: ldfld System.Single UnityEngine.Vector2::y IL_0094: div IL_0095: stloc.s 5 (System.Single) IL_0097: ldloca.s 6 (UnityEngine.Vector2) IL_0099: ldc.r4 -0.5 IL_009E: ldarg.0 IL_009F: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_00A4: call System.Single UnityEngine.Rect::get_xMin() IL_00A9: add IL_00AA: ldloc.s 5 (System.Single) IL_00AC: ldloc.1 IL_00AD: mul IL_00AE: ldarg.0 IL_00AF: ldfld System.Single ColossalFramework.UI.UIGraph::AxesWidth IL_00B4: mul IL_00B5: sub IL_00B6: ldc.r4 -0.5 IL_00BB: ldarg.0 IL_00BC: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_00C1: call System.Single UnityEngine.Rect::get_yMin() IL_00C6: add IL_00C7: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_00CC: ldloca.s 7 (UnityEngine.Vector2) IL_00CE: ldc.r4 -0.5 IL_00D3: ldarg.0 IL_00D4: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_00D9: call System.Single UnityEngine.Rect::get_xMin() IL_00DE: add IL_00DF: ldloc.s 5 (System.Single) IL_00E1: ldloc.1 IL_00E2: mul IL_00E3: ldarg.0 IL_00E4: ldfld System.Single ColossalFramework.UI.UIGraph::AxesWidth IL_00E9: mul IL_00EA: add IL_00EB: ldloca.s 6 (UnityEngine.Vector2) IL_00ED: ldfld System.Single UnityEngine.Vector2::y IL_00F2: ldarg.0 IL_00F3: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_00F8: call System.Single UnityEngine.Rect::get_height() IL_00FD: add IL_00FE: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_0103: ldarg.0 IL_0104: ldloc.s 6 (UnityEngine.Vector2) IL_0106: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_010B: ldloc.s 4 (UnityEngine.Vector3) IL_010D: call static UnityEngine.Vector3 UnityEngine.Vector3::Scale(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0112: ldloc.3 IL_0113: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0118: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector3 v) IL_011D: ldloc.s 7 (UnityEngine.Vector2) IL_011F: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0124: ldloc.s 4 (UnityEngine.Vector3) IL_0126: call static UnityEngine.Vector3 UnityEngine.Vector3::Scale(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_012B: ldloc.3 IL_012C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0131: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector3 v) IL_0136: ldarg.0 IL_0137: ldfld UnityEngine.Color32 ColossalFramework.UI.UIGraph::AxesColor IL_013C: ldarg.1 IL_013D: ldarg.2 IL_013E: ldarg.3 IL_013F: ldarg.s 4 IL_0141: call System.Void ColossalFramework.UI.UIGraph::AddSolidQuad(UnityEngine.Vector2 corner1, UnityEngine.Vector2 corner2, UnityEngine.Color32 col, ColossalFramework.PoolList`1 vertices, ColossalFramework.PoolList`1 indices, ColossalFramework.PoolList`1 uvs, ColossalFramework.PoolList`1 colors) IL_0146: ldloca.s 6 (UnityEngine.Vector2) IL_0148: ldc.r4 -0.5 IL_014D: ldarg.0 IL_014E: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_0153: call System.Single UnityEngine.Rect::get_xMin() IL_0158: add IL_0159: ldc.r4 -0.5 IL_015E: ldarg.0 IL_015F: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_0164: call System.Single UnityEngine.Rect::get_yMin() IL_0169: add IL_016A: ldloc.1 IL_016B: ldarg.0 IL_016C: ldfld System.Single ColossalFramework.UI.UIGraph::AxesWidth IL_0171: mul IL_0172: sub IL_0173: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_0178: ldloca.s 7 (UnityEngine.Vector2) IL_017A: ldloca.s 6 (UnityEngine.Vector2) IL_017C: ldfld System.Single UnityEngine.Vector2::x IL_0181: ldarg.0 IL_0182: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_0187: call System.Single UnityEngine.Rect::get_width() IL_018C: add IL_018D: ldc.r4 -0.5 IL_0192: ldarg.0 IL_0193: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_0198: call System.Single UnityEngine.Rect::get_yMin() IL_019D: add IL_019E: ldloc.1 IL_019F: ldarg.0 IL_01A0: ldfld System.Single ColossalFramework.UI.UIGraph::AxesWidth IL_01A5: mul IL_01A6: add IL_01A7: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_01AC: ldarg.0 IL_01AD: ldloc.s 6 (UnityEngine.Vector2) IL_01AF: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_01B4: ldloc.s 4 (UnityEngine.Vector3) IL_01B6: call static UnityEngine.Vector3 UnityEngine.Vector3::Scale(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_01BB: ldloc.3 IL_01BC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_01C1: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector3 v) IL_01C6: ldloc.s 7 (UnityEngine.Vector2) IL_01C8: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_01CD: ldloc.s 4 (UnityEngine.Vector3) IL_01CF: call static UnityEngine.Vector3 UnityEngine.Vector3::Scale(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_01D4: ldloc.3 IL_01D5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_01DA: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector3 v) IL_01DF: ldarg.0 IL_01E0: ldfld UnityEngine.Color32 ColossalFramework.UI.UIGraph::AxesColor IL_01E5: ldarg.1 IL_01E6: ldarg.2 IL_01E7: ldarg.3 IL_01E8: ldarg.s 4 IL_01EA: call System.Void ColossalFramework.UI.UIGraph::AddSolidQuad(UnityEngine.Vector2 corner1, UnityEngine.Vector2 corner2, UnityEngine.Color32 col, ColossalFramework.PoolList`1 vertices, ColossalFramework.PoolList`1 indices, ColossalFramework.PoolList`1 uvs, ColossalFramework.PoolList`1 colors) IL_01EF: ldarg.0 IL_01F0: call ColossalFramework.UI.UIFont ColossalFramework.UI.UIGraph::get_font() IL_01F5: callvirt abstract virtual ColossalFramework.UI.UIFontRenderer ColossalFramework.UI.UIFont::ObtainRenderer() IL_01FA: stloc.s 8 (ColossalFramework.UI.UIFontRenderer) .try { IL_01FC: ldloca.s 0 (UnityEngine.Vector3) IL_01FE: ldfld System.Single UnityEngine.Vector3::z IL_0203: ldc.r4 0 IL_0208: ble.un => Label1 IL_020D: ldc.i4.0 IL_020E: ldc.r4 1 IL_0213: ldloca.s 0 (UnityEngine.Vector3) IL_0215: ldfld System.Single UnityEngine.Vector3::z IL_021A: div IL_021B: call static System.Single UnityEngine.Mathf::Log10(System.Single f) IL_0220: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_0225: call static System.Int32 System.Math::Max(System.Int32 val1, System.Int32 val2) IL_022A: stloc.s 9 (System.Int32) IL_022C: br => Label2 IL_0231: Label1 IL_0231: ldc.i4.0 IL_0232: stloc.s 9 (System.Int32) IL_0234: Label2 IL_0234: ldloca.s 0 (UnityEngine.Vector3) IL_0236: ldfld System.Single UnityEngine.Vector3::x IL_023B: stloc.s 10 (System.Single) IL_023D: br => Label3 IL_0242: Label4 IL_0242: ldloca.s 10 (System.Single) IL_0244: ldstr "N" IL_0249: ldloc.s 9 (System.Int32) IL_024B: box System.Int32 IL_0250: call static System.String System.String::Concat(System.Object arg0, System.Object arg1) IL_0255: call System.String System.Single::ToString(System.String format) IL_025A: stloc.s 11 (System.String) IL_025C: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_025E: ldc.r4 1 IL_0263: callvirt System.Void ColossalFramework.UI.UIFontRenderer::set_textScale(System.Single value) IL_0268: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_026A: ldc.r4 0 IL_026F: ldarg.0 IL_0270: call System.Single ColossalFramework.UI.UIComponent::get_height() IL_0275: neg IL_0276: ldloc.1 IL_0277: mul IL_0278: ldc.r4 0.5 IL_027D: ldarg.0 IL_027E: ldloc.s 10 (System.Single) IL_0280: ldloca.s 0 (UnityEngine.Vector3) IL_0282: ldfld System.Single UnityEngine.Vector3::x IL_0287: ldloca.s 0 (UnityEngine.Vector3) IL_0289: ldfld System.Single UnityEngine.Vector3::y IL_028E: call System.Single ColossalFramework.UI.UIGraph::NormalizeY(System.Single y, System.Single min, System.Single max) IL_0293: sub IL_0294: mul IL_0295: ldloc.1 IL_0296: ldc.r4 8 IL_029B: mul IL_029C: add IL_029D: ldc.r4 0 IL_02A2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02A7: callvirt System.Void ColossalFramework.UI.UIFontRenderer::set_vectorOffset(UnityEngine.Vector3 value) IL_02AC: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_02AE: ldloc.1 IL_02AF: callvirt System.Void ColossalFramework.UI.UIFontRenderer::set_pixelRatio(System.Single value) IL_02B4: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_02B6: ldloc.2 IL_02B7: callvirt System.Void ColossalFramework.UI.UIFontRenderer::set_maxSize(UnityEngine.Vector2 value) IL_02BC: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_02BE: ldarg.0 IL_02BF: ldfld UnityEngine.Color32 ColossalFramework.UI.UIGraph::TextColor IL_02C4: callvirt System.Void ColossalFramework.UI.UIFontRenderer::set_defaultColor(UnityEngine.Color32 value) IL_02C9: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_02CB: ldloc.s 11 (System.String) IL_02CD: ldarg.0 IL_02CE: call ColossalFramework.UI.UIRenderData ColossalFramework.UI.UIGraph::get_textRenderData() IL_02D3: callvirt abstract virtual System.Void ColossalFramework.UI.UIFontRenderer::Render(System.String text, ColossalFramework.UI.UIRenderData destination) IL_02D8: ldc.r4 -0.5 IL_02DD: ldarg.0 IL_02DE: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_02E3: call System.Single UnityEngine.Rect::get_xMin() IL_02E8: add IL_02E9: ldarg.0 IL_02EA: ldloc.s 10 (System.Single) IL_02EC: ldloca.s 0 (UnityEngine.Vector3) IL_02EE: ldfld System.Single UnityEngine.Vector3::x IL_02F3: ldloca.s 0 (UnityEngine.Vector3) IL_02F5: ldfld System.Single UnityEngine.Vector3::y IL_02FA: call System.Single ColossalFramework.UI.UIGraph::NormalizeY(System.Single y, System.Single min, System.Single max) IL_02FF: ldloc.1 IL_0300: ldarg.0 IL_0301: ldfld System.Single ColossalFramework.UI.UIGraph::HelpAxesWidth IL_0306: mul IL_0307: sub IL_0308: newobj System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_030D: stloc.s 6 (UnityEngine.Vector2) IL_030F: ldloca.s 6 (UnityEngine.Vector2) IL_0311: ldfld System.Single UnityEngine.Vector2::x IL_0316: ldarg.0 IL_0317: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_031C: call System.Single UnityEngine.Rect::get_width() IL_0321: add IL_0322: ldarg.0 IL_0323: ldloc.s 10 (System.Single) IL_0325: ldloca.s 0 (UnityEngine.Vector3) IL_0327: ldfld System.Single UnityEngine.Vector3::x IL_032C: ldloca.s 0 (UnityEngine.Vector3) IL_032E: ldfld System.Single UnityEngine.Vector3::y IL_0333: call System.Single ColossalFramework.UI.UIGraph::NormalizeY(System.Single y, System.Single min, System.Single max) IL_0338: ldloc.1 IL_0339: ldarg.0 IL_033A: ldfld System.Single ColossalFramework.UI.UIGraph::HelpAxesWidth IL_033F: mul IL_0340: add IL_0341: newobj System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_0346: stloc.s 7 (UnityEngine.Vector2) IL_0348: ldarg.0 IL_0349: ldloc.s 6 (UnityEngine.Vector2) IL_034B: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0350: ldloc.s 4 (UnityEngine.Vector3) IL_0352: call static UnityEngine.Vector3 UnityEngine.Vector3::Scale(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0357: ldloc.3 IL_0358: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_035D: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector3 v) IL_0362: ldloc.s 7 (UnityEngine.Vector2) IL_0364: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0369: ldloc.s 4 (UnityEngine.Vector3) IL_036B: call static UnityEngine.Vector3 UnityEngine.Vector3::Scale(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0370: ldloc.3 IL_0371: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0376: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector3 v) IL_037B: ldarg.0 IL_037C: ldfld UnityEngine.Color32 ColossalFramework.UI.UIGraph::HelpAxesColor IL_0381: ldarg.1 IL_0382: ldarg.2 IL_0383: ldarg.3 IL_0384: ldarg.s 4 IL_0386: call System.Void ColossalFramework.UI.UIGraph::AddSolidQuad(UnityEngine.Vector2 corner1, UnityEngine.Vector2 corner2, UnityEngine.Color32 col, ColossalFramework.PoolList`1 vertices, ColossalFramework.PoolList`1 indices, ColossalFramework.PoolList`1 uvs, ColossalFramework.PoolList`1 colors) IL_038B: ldloc.s 10 (System.Single) IL_038D: ldloca.s 0 (UnityEngine.Vector3) IL_038F: ldfld System.Single UnityEngine.Vector3::z IL_0394: add IL_0395: stloc.s 10 (System.Single) IL_0397: Label3 IL_0397: ldloc.s 10 (System.Single) IL_0399: ldloca.s 0 (UnityEngine.Vector3) IL_039B: ldfld System.Single UnityEngine.Vector3::y IL_03A0: ble => Label4 IL_03A5: ldarg.0 IL_03A6: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_03AB: call System.Single UnityEngine.Rect::get_width() IL_03B0: ldarg.0 IL_03B1: call System.Int32 ColossalFramework.UI.UIGraph::GetMinDataPoints() IL_03B6: ldarg.0 IL_03B7: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_03BC: ldc.i4.0 IL_03BD: callvirt virtual ColossalFramework.UI.CurveSettings System.Collections.Generic.List`1::get_Item(System.Int32 index) IL_03C2: callvirt System.Single[] ColossalFramework.UI.CurveSettings::get_data() IL_03C7: ldlen IL_03C8: conv.i4 IL_03C9: call static System.Int32 System.Math::Max(System.Int32 val1, System.Int32 val2) IL_03CE: ldc.i4.1 IL_03CF: sub IL_03D0: conv.r4 IL_03D1: div IL_03D2: pop IL_03D3: ldloc.1 IL_03D4: ldarg.0 IL_03D5: call System.Single ColossalFramework.UI.UIComponent::get_width() IL_03DA: mul IL_03DB: ldc.r4 -0.5 IL_03E0: ldarg.0 IL_03E1: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_03E6: call System.Single UnityEngine.Rect::get_xMin() IL_03EB: add IL_03EC: mul IL_03ED: stloc.s 12 (System.Single) IL_03EF: ldloc.1 IL_03F0: ldarg.0 IL_03F1: call System.Single ColossalFramework.UI.UIComponent::get_width() IL_03F6: mul IL_03F7: ldc.r4 -0.5 IL_03FC: ldarg.0 IL_03FD: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_0402: call System.Single UnityEngine.Rect::get_xMax() IL_0407: add IL_0408: mul IL_0409: stloc.s 13 (System.Single) IL_040B: ldc.r4 64 IL_0410: ldloc.1 IL_0411: mul IL_0412: stloc.s 14 (System.Single) IL_0414: ldarg.0 IL_0415: call System.DateTime ColossalFramework.UI.UIGraph::get_StartTime() IL_041A: stloc.s 30 (System.DateTime) IL_041C: ldloca.s 30 (System.DateTime) IL_041E: call System.Int64 System.DateTime::get_Ticks() IL_0423: conv.r4 IL_0424: stloc.s 15 (System.Single) IL_0426: ldarg.0 IL_0427: call System.DateTime ColossalFramework.UI.UIGraph::GetVisibleEndTime() IL_042C: stloc.s 16 (System.DateTime) IL_042E: ldloca.s 16 (System.DateTime) IL_0430: call System.Int64 System.DateTime::get_Ticks() IL_0435: conv.r4 IL_0436: stloc.s 17 (System.Single) IL_0438: ldarg.0 IL_0439: call System.DateTime ColossalFramework.UI.UIGraph::get_StartTime() IL_043E: stloc.s 31 (System.DateTime) IL_0440: ldloca.s 31 (System.DateTime) IL_0442: ldc.i4.1 IL_0443: call System.DateTime System.DateTime::AddYears(System.Int32 value) IL_0448: stloc.s 18 (System.DateTime) IL_044A: ldloca.s 18 (System.DateTime) IL_044C: call System.Int64 System.DateTime::get_Ticks() IL_0451: ldarg.0 IL_0452: call System.DateTime ColossalFramework.UI.UIGraph::get_StartTime() IL_0457: stloc.s 32 (System.DateTime) IL_0459: ldloca.s 32 (System.DateTime) IL_045B: call System.Int64 System.DateTime::get_Ticks() IL_0460: sub IL_0461: stloc.s 19 (System.Int64) IL_0463: ldarg.0 IL_0464: call System.DateTime ColossalFramework.UI.UIGraph::get_EndTime() IL_0469: stloc.s 33 (System.DateTime) IL_046B: ldloca.s 33 (System.DateTime) IL_046D: call System.Int64 System.DateTime::get_Ticks() IL_0472: ldarg.0 IL_0473: call System.DateTime ColossalFramework.UI.UIGraph::get_StartTime() IL_0478: stloc.s 34 (System.DateTime) IL_047A: ldloca.s 34 (System.DateTime) IL_047C: call System.Int64 System.DateTime::get_Ticks() IL_0481: sub IL_0482: stloc.s 20 (System.Int64) IL_0484: ldloc.s 19 (System.Int64) IL_0486: conv.r8 IL_0487: ldloc.s 20 (System.Int64) IL_0489: conv.r8 IL_048A: div IL_048B: conv.r4 IL_048C: stloc.s 21 (System.Single) IL_048E: ldloc.s 12 (System.Single) IL_0490: ldloc.s 13 (System.Single) IL_0492: ldloc.s 21 (System.Single) IL_0494: call static System.Single UnityEngine.Mathf::Lerp(System.Single a, System.Single b, System.Single t) IL_0499: ldloc.s 12 (System.Single) IL_049B: sub IL_049C: stloc.s 22 (System.Single) IL_049E: ldloc.s 22 (System.Single) IL_04A0: conv.r8 IL_04A1: ldc.r8 0.0001 IL_04AA: ble.un => Label5 IL_04AF: ldloc.s 14 (System.Single) IL_04B1: ldloc.s 22 (System.Single) IL_04B3: div IL_04B4: call static System.Int32 UnityEngine.Mathf::CeilToInt(System.Single f) IL_04B9: stloc.s 23 (System.Int32) IL_04BB: br => Label6 IL_04C0: Label5 IL_04C0: ldc.i4 10000 IL_04C5: stloc.s 23 (System.Int32) IL_04C7: Label6 IL_04C7: ldarg.0 IL_04C8: call System.DateTime ColossalFramework.UI.UIGraph::get_StartTime() IL_04CD: stloc.s 35 (System.DateTime) IL_04CF: ldloca.s 35 (System.DateTime) IL_04D1: call System.Int32 System.DateTime::get_Year() IL_04D6: ldc.i4.1 IL_04D7: add IL_04D8: stloc.s 24 (System.Int32) IL_04DA: br => Label7 IL_04DF: Label8 IL_04DF: ldloca.s 25 (System.DateTime) IL_04E1: ldloc.s 24 (System.Int32) IL_04E3: ldc.i4.1 IL_04E4: ldc.i4.1 IL_04E5: call System.Void System.DateTime::.ctor(System.Int32 year, System.Int32 month, System.Int32 day) IL_04EA: ldloca.s 25 (System.DateTime) IL_04EC: call System.Int64 System.DateTime::get_Ticks() IL_04F1: conv.r4 IL_04F2: stloc.s 26 (System.Single) IL_04F4: ldloc.s 12 (System.Single) IL_04F6: ldloc.s 13 (System.Single) IL_04F8: ldloc.s 26 (System.Single) IL_04FA: ldloc.s 15 (System.Single) IL_04FC: sub IL_04FD: ldloc.s 17 (System.Single) IL_04FF: ldloc.s 15 (System.Single) IL_0501: sub IL_0502: div IL_0503: call static System.Single UnityEngine.Mathf::Lerp(System.Single a, System.Single b, System.Single t) IL_0508: stloc.s 27 (System.Single) IL_050A: ldloca.s 24 (System.Int32) IL_050C: call virtual System.String System.Int32::ToString() IL_0511: stloc.s 28 (System.String) IL_0513: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_0515: ldc.r4 1 IL_051A: callvirt System.Void ColossalFramework.UI.UIFontRenderer::set_textScale(System.Single value) IL_051F: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_0521: ldloc.s 27 (System.Single) IL_0523: ldarg.0 IL_0524: call System.Single ColossalFramework.UI.UIComponent::get_height() IL_0529: ldloc.1 IL_052A: mul IL_052B: ldc.r4 -0.95 IL_0530: mul IL_0531: ldc.r4 0 IL_0536: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_053B: callvirt System.Void ColossalFramework.UI.UIFontRenderer::set_vectorOffset(UnityEngine.Vector3 value) IL_0540: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_0542: ldloc.1 IL_0543: callvirt System.Void ColossalFramework.UI.UIFontRenderer::set_pixelRatio(System.Single value) IL_0548: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_054A: ldloc.2 IL_054B: callvirt System.Void ColossalFramework.UI.UIFontRenderer::set_maxSize(UnityEngine.Vector2 value) IL_0550: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_0552: ldc.i4.1 IL_0553: callvirt System.Void ColossalFramework.UI.UIFontRenderer::set_textAlign(ColossalFramework.UI.UIHorizontalAlignment value) IL_0558: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_055A: ldarg.0 IL_055B: ldfld UnityEngine.Color32 ColossalFramework.UI.UIGraph::TextColor IL_0560: callvirt System.Void ColossalFramework.UI.UIFontRenderer::set_defaultColor(UnityEngine.Color32 value) IL_0565: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_0567: ldloc.s 28 (System.String) IL_0569: ldarg.0 IL_056A: call ColossalFramework.UI.UIRenderData ColossalFramework.UI.UIGraph::get_textRenderData() IL_056F: callvirt abstract virtual System.Void ColossalFramework.UI.UIFontRenderer::Render(System.String text, ColossalFramework.UI.UIRenderData destination) IL_0574: ldc.r4 -0.5 IL_0579: ldarg.0 IL_057A: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_057F: call System.Single UnityEngine.Rect::get_xMin() IL_0584: add IL_0585: ldc.r4 -0.5 IL_058A: ldarg.0 IL_058B: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_0590: call System.Single UnityEngine.Rect::get_xMax() IL_0595: add IL_0596: ldloc.s 26 (System.Single) IL_0598: ldloc.s 15 (System.Single) IL_059A: sub IL_059B: ldloc.s 17 (System.Single) IL_059D: ldloc.s 15 (System.Single) IL_059F: sub IL_05A0: div IL_05A1: call static System.Single UnityEngine.Mathf::Lerp(System.Single a, System.Single b, System.Single t) IL_05A6: stloc.s 29 (System.Single) IL_05A8: ldloc.s 29 (System.Single) IL_05AA: ldloc.1 IL_05AB: ldarg.0 IL_05AC: ldfld System.Single ColossalFramework.UI.UIGraph::HelpAxesWidth IL_05B1: mul IL_05B2: ldloc.s 5 (System.Single) IL_05B4: mul IL_05B5: sub IL_05B6: ldc.r4 -0.5 IL_05BB: ldarg.0 IL_05BC: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_05C1: call System.Single UnityEngine.Rect::get_yMin() IL_05C6: add IL_05C7: newobj System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_05CC: stloc.s 6 (UnityEngine.Vector2) IL_05CE: ldloc.s 29 (System.Single) IL_05D0: ldloc.1 IL_05D1: ldarg.0 IL_05D2: ldfld System.Single ColossalFramework.UI.UIGraph::HelpAxesWidth IL_05D7: mul IL_05D8: ldloc.s 5 (System.Single) IL_05DA: mul IL_05DB: add IL_05DC: ldloca.s 6 (UnityEngine.Vector2) IL_05DE: ldfld System.Single UnityEngine.Vector2::y IL_05E3: ldarg.0 IL_05E4: ldflda UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_05E9: call System.Single UnityEngine.Rect::get_height() IL_05EE: add IL_05EF: newobj System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_05F4: stloc.s 7 (UnityEngine.Vector2) IL_05F6: ldarg.0 IL_05F7: ldloc.s 6 (UnityEngine.Vector2) IL_05F9: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_05FE: ldloc.s 4 (UnityEngine.Vector3) IL_0600: call static UnityEngine.Vector3 UnityEngine.Vector3::Scale(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0605: ldloc.3 IL_0606: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_060B: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector3 v) IL_0610: ldloc.s 7 (UnityEngine.Vector2) IL_0612: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0617: ldloc.s 4 (UnityEngine.Vector3) IL_0619: call static UnityEngine.Vector3 UnityEngine.Vector3::Scale(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061E: ldloc.3 IL_061F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0624: call static UnityEngine.Vector2 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector3 v) IL_0629: ldarg.0 IL_062A: ldfld UnityEngine.Color32 ColossalFramework.UI.UIGraph::HelpAxesColor IL_062F: ldarg.1 IL_0630: ldarg.2 IL_0631: ldarg.3 IL_0632: ldarg.s 4 IL_0634: call System.Void ColossalFramework.UI.UIGraph::AddSolidQuad(UnityEngine.Vector2 corner1, UnityEngine.Vector2 corner2, UnityEngine.Color32 col, ColossalFramework.PoolList`1 vertices, ColossalFramework.PoolList`1 indices, ColossalFramework.PoolList`1 uvs, ColossalFramework.PoolList`1 colors) IL_0639: ldloc.s 24 (System.Int32) IL_063B: ldloc.s 23 (System.Int32) IL_063D: add IL_063E: stloc.s 24 (System.Int32) IL_0640: Label7 IL_0640: ldloc.s 24 (System.Int32) IL_0642: ldloca.s 16 (System.DateTime) IL_0644: call System.Int32 System.DateTime::get_Year() IL_0649: ble => Label8 IL_064E: leave => Label9 IL_0653: leave => (autogenerated) } // end try .finally { IL_0658: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_065A: brfalse => Label10 IL_065F: ldloc.s 8 (ColossalFramework.UI.UIFontRenderer) IL_0661: callvirt abstract virtual System.Void System.IDisposable::Dispose() IL_0666: Label10 IL_0666: endfinally IL_0667: leave => (autogenerated) } // end handler IL_0668: // end original IL_0668: Label9 IL_0668: Label11 IL_0668: ldarg.0 IL_0669: ldarg.0 IL_066A: ldfld System.Collections.Generic.List`1 ColossalFramework.UI.UIGraph::m_Curves IL_066F: ldarg.0 IL_0670: ldfld UnityEngine.Rect ColossalFramework.UI.UIGraph::m_GraphRect IL_0675: ldarg.0 IL_0676: ldfld ColossalFramework.PoolList`1 ColossalFramework.UI.UIComponent::m_RenderData IL_067B: ldarg 1 IL_067F: ldarg 2 IL_0683: ldarg 3 IL_0687: ldarg 4 IL_068B: call static System.Void RealTime.GameConnection.Patches.UIGraph_BuildLabels::Postfix(ColossalFramework.UI.UIGraph __instance, System.Collections.Generic.List`1 ___m_Curves, UnityEngine.Rect ___m_GraphRect, ColossalFramework.PoolList`1 ___m_RenderData, ColossalFramework.PoolList`1 vertices, ColossalFramework.PoolList`1 indices, ColossalFramework.PoolList`1 uvs, ColossalFramework.PoolList`1 colors) IL_0690: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: virtual System.Void WeatherManager::SimulationStepImpl(System.Int32 subStep) ### Replacement: static System.Void WeatherManager::WeatherManager.SimulationStepImpl_Patch1(WeatherManager this, System.Int32 subStep) IL_0000: Local var 0: SimulationManager IL_0000: Local var 1: System.Single IL_0000: Local var 2: System.Single IL_0000: Local var 3: ItemClass/Availability IL_0000: Local var 4: System.Single IL_0000: Local var 5: System.Int32 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Int32 IL_0000: Local var 8: System.Int32 IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Single IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Int32 IL_0000: Local var 13: System.Int32 IL_0000: Local var 14: System.Single IL_0000: Local var 15: System.Single IL_0000: Local var 16: System.Single IL_0000: Local var 17: System.Int32 IL_0000: Local var 18: System.UInt32 IL_0000: Local var 19: InstanceID IL_0000: Local var 20: System.Single IL_0000: Local var 21: System.Int32 IL_0000: Local var 22: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 22 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 22 (System.Boolean) IL_000E: ldloc 22 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg.0 IL_0018: ldflda System.Single WeatherManager::m_temperatureSpeed IL_001D: ldarg.0 IL_001E: ldfld System.Single WeatherManager::m_targetTemperature IL_0023: ldarg.0 IL_0024: ldfld System.Single WeatherManager::m_currentTemperature IL_0029: call static System.Void RealTime.GameConnection.Patches.WeatherManager_SimulationStepImpl::Prefix(System.Single& ___m_temperatureSpeed, System.Single ___m_targetTemperature, System.Single ___m_currentTemperature) IL_002E: Label1 IL_002E: nop IL_002F: ldloc 22 (System.Boolean) IL_0033: brfalse => Label0 IL_0038: // start original IL_0038: ldarg.1 IL_0039: brfalse => Label2 IL_003E: ldarg.1 IL_003F: ldc.i4 1000 IL_0044: beq => Label3 IL_0049: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_004E: stloc.0 IL_004F: ldarg.0 IL_0050: ldfld System.Single WeatherManager::m_targetDirection IL_0055: ldarg.0 IL_0056: ldfld System.Single WeatherManager::m_windDirection IL_005B: call static System.Single UnityEngine.Mathf::DeltaAngle(System.Single current, System.Single target) IL_0060: ldc.r4 0.001 IL_0065: mul IL_0066: call static System.Single UnityEngine.Mathf::Abs(System.Single f) IL_006B: stloc.1 IL_006C: ldarg.0 IL_006D: ldarg.0 IL_006E: ldfld System.Single WeatherManager::m_directionSpeed IL_0073: ldc.r4 0.001 IL_0078: add IL_0079: ldloc.1 IL_007A: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_007F: stfld System.Single WeatherManager::m_directionSpeed IL_0084: ldarg.0 IL_0085: ldarg.0 IL_0086: ldfld System.Single WeatherManager::m_windDirection IL_008B: ldarg.0 IL_008C: ldfld System.Single WeatherManager::m_targetDirection IL_0091: ldarg.0 IL_0092: ldfld System.Single WeatherManager::m_directionSpeed IL_0097: call static System.Single UnityEngine.Mathf::MoveTowardsAngle(System.Single current, System.Single target, System.Single maxDelta) IL_009C: stfld System.Single WeatherManager::m_windDirection IL_00A1: ldarg.0 IL_00A2: ldc.r4 0 IL_00A7: ldarg.0 IL_00A8: ldfld System.Single WeatherManager::m_windDirection IL_00AD: call static System.Single UnityEngine.Mathf::DeltaAngle(System.Single current, System.Single target) IL_00B2: stfld System.Single WeatherManager::m_windDirection IL_00B7: ldloc.1 IL_00B8: ldc.r4 0.0002 IL_00BD: bge.un => Label4 IL_00C2: ldarg.0 IL_00C3: ldloc.0 IL_00C4: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_00C9: ldc.i4 10000 IL_00CE: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_00D3: conv.r4 IL_00D4: ldc.r4 0.036 IL_00D9: mul IL_00DA: stfld System.Single WeatherManager::m_targetDirection IL_00DF: Label4 IL_00DF: ldarg.0 IL_00E0: ldfld System.Boolean WeatherManager::m_enableWeather IL_00E5: brfalse => Label5 IL_00EA: ldc.r4 1 IL_00EF: br => Label6 IL_00F4: Label5 IL_00F4: ldc.r4 0 IL_00F9: Label6 IL_00F9: stloc.2 IL_00FA: ldarg.0 IL_00FB: ldfld System.Single WeatherManager::m_forceWeatherOn IL_0100: ldc.r4 0 IL_0105: beq => Label7 IL_010A: ldarg.0 IL_010B: ldc.r4 0 IL_0110: ldarg.0 IL_0111: ldfld System.Single WeatherManager::m_forceWeatherOn IL_0116: ldc.r4 0.001 IL_011B: sub IL_011C: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0121: stfld System.Single WeatherManager::m_forceWeatherOn IL_0126: ldloc.2 IL_0127: ldarg.0 IL_0128: ldfld System.Single WeatherManager::m_forceWeatherOn IL_012D: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0132: stloc.2 IL_0133: Label7 IL_0133: ldloc.2 IL_0134: ldc.r4 1 IL_0139: blt.un => Label8 IL_013E: call static ToolManager ColossalFramework.Singleton`1::get_instance() IL_0143: ldfld ToolController SimulationManagerBase`2::m_properties IL_0148: ldfld Availability ToolController::m_mode IL_014D: stloc.3 IL_014E: ldloc.3 IL_014F: ldc.i4.1 IL_0150: and IL_0151: brfalse => Label9 IL_0156: ldarg.0 IL_0157: ldfld System.Single WeatherManager::m_targetRain IL_015C: ldarg.0 IL_015D: ldfld System.Single WeatherManager::m_currentRain IL_0162: ble.un => Label10 IL_0167: ldarg.0 IL_0168: ldfld System.Single WeatherManager::m_currentRain IL_016D: stloc.s 4 (System.Single) IL_016F: ldarg.0 IL_0170: ldarg.0 IL_0171: ldfld System.Single WeatherManager::m_targetRain IL_0176: ldarg.0 IL_0177: ldfld System.Single WeatherManager::m_currentRain IL_017C: ldc.r4 0.0002 IL_0181: add IL_0182: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0187: stfld System.Single WeatherManager::m_currentRain IL_018C: ldarg.0 IL_018D: ldfld System.Single WeatherManager::m_currentRain IL_0192: ldc.r4 0.2 IL_0197: blt.un => Label11 IL_019C: ldloc.s 4 (System.Single) IL_019E: ldc.r4 0.2 IL_01A3: bge.un => Label12 IL_01A8: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_01AD: ldfld SimulationMetaData SimulationManager::m_metaData IL_01B2: ldfld MetaBool SimulationMetaData::m_disableAchievements IL_01B7: ldc.i4.2 IL_01B8: beq => Label13 IL_01BD: ldarg.0 IL_01BE: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_01C3: ldfld System.Boolean WeatherProperties::m_rainIsSnow IL_01C8: brfalse => Label14 IL_01CD: call static ColossalFramework.Threading.Dispatcher ColossalFramework.Threading.ThreadHelper::get_dispatcher() IL_01D2: ldsfld System.Action WeatherManager::<>f__am$cache0 IL_01D7: brtrue => Label15 IL_01DC: ldnull IL_01DD: ldftn static System.Void WeatherManager::m__0() IL_01E3: newobj System.Void System.Action::.ctor(System.Object object, System.IntPtr method) IL_01E8: stsfld System.Action WeatherManager::<>f__am$cache0 IL_01ED: Label15 IL_01ED: ldsfld System.Action WeatherManager::<>f__am$cache0 IL_01F2: callvirt ColossalFramework.Threading.Task ColossalFramework.Threading.DispatcherBase::Dispatch(System.Action action) IL_01F7: pop IL_01F8: br => Label16 IL_01FD: Label14 IL_01FD: call static ColossalFramework.Threading.Dispatcher ColossalFramework.Threading.ThreadHelper::get_dispatcher() IL_0202: ldsfld System.Action WeatherManager::<>f__am$cache1 IL_0207: brtrue => Label17 IL_020C: ldnull IL_020D: ldftn static System.Void WeatherManager::m__1() IL_0213: newobj System.Void System.Action::.ctor(System.Object object, System.IntPtr method) IL_0218: stsfld System.Action WeatherManager::<>f__am$cache1 IL_021D: Label17 IL_021D: ldsfld System.Action WeatherManager::<>f__am$cache1 IL_0222: callvirt ColossalFramework.Threading.Task ColossalFramework.Threading.DispatcherBase::Dispatch(System.Action action) IL_0227: pop IL_0228: Label11 IL_0228: Label12 IL_0228: Label13 IL_0228: Label16 IL_0228: br => Label18 IL_022D: Label10 IL_022D: ldarg.0 IL_022E: ldfld System.Single WeatherManager::m_targetRain IL_0233: ldarg.0 IL_0234: ldfld System.Single WeatherManager::m_currentRain IL_0239: bge.un => Label19 IL_023E: ldarg.0 IL_023F: ldarg.0 IL_0240: ldfld System.Single WeatherManager::m_targetRain IL_0245: ldarg.0 IL_0246: ldfld System.Single WeatherManager::m_currentRain IL_024B: ldc.r4 0.0002 IL_0250: sub IL_0251: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0256: stfld System.Single WeatherManager::m_currentRain IL_025B: br => Label20 IL_0260: Label19 IL_0260: ldloc.0 IL_0261: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0266: ldc.i4 20000 IL_026B: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0270: brtrue => Label21 IL_0275: ldarg.0 IL_0276: ldfld System.Single WeatherManager::m_currentFog IL_027B: ldc.r4 0 IL_0280: bne.un => Label22 IL_0285: ldarg.0 IL_0286: ldfld System.Single WeatherManager::m_targetFog IL_028B: ldc.r4 0 IL_0290: bne.un => Label23 IL_0295: ldloc.0 IL_0296: ldfld System.Boolean SimulationManager::m_isNightTime IL_029B: brfalse => Label24 IL_02A0: ldarg.0 IL_02A1: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_02A6: ldfld System.Int32 WeatherProperties::m_rainProbabilityNight IL_02AB: br => Label25 IL_02B0: Label24 IL_02B0: ldarg.0 IL_02B1: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_02B6: ldfld System.Int32 WeatherProperties::m_rainProbabilityDay IL_02BB: Label25 IL_02BB: stloc.s 5 (System.Int32) IL_02BD: ldloc.0 IL_02BE: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_02C3: ldc.i4.s 100 IL_02C5: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_02CA: ldloc.s 5 (System.Int32) IL_02CC: bge => Label26 IL_02D1: ldarg.0 IL_02D2: ldloc.0 IL_02D3: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_02D8: ldc.i4 2500 IL_02DD: ldc.i4 10000 IL_02E2: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max) IL_02E7: conv.r4 IL_02E8: ldc.r4 0.0001 IL_02ED: mul IL_02EE: stfld System.Single WeatherManager::m_targetRain IL_02F3: br => Label27 IL_02F8: Label26 IL_02F8: ldarg.0 IL_02F9: ldc.r4 0 IL_02FE: stfld System.Single WeatherManager::m_targetRain IL_0303: Label27 IL_0303: br => Label28 IL_0308: Label22 IL_0308: Label23 IL_0308: ldarg.0 IL_0309: ldc.r4 0 IL_030E: stfld System.Single WeatherManager::m_targetRain IL_0313: Label18 IL_0313: Label20 IL_0313: Label21 IL_0313: Label28 IL_0313: ldarg.0 IL_0314: ldfld System.Single WeatherManager::m_targetFog IL_0319: ldarg.0 IL_031A: ldfld System.Single WeatherManager::m_currentFog IL_031F: ble.un => Label29 IL_0324: ldarg.0 IL_0325: ldfld System.Single WeatherManager::m_currentFog IL_032A: stloc.s 6 (System.Single) IL_032C: ldarg.0 IL_032D: ldarg.0 IL_032E: ldfld System.Single WeatherManager::m_targetFog IL_0333: ldarg.0 IL_0334: ldfld System.Single WeatherManager::m_currentFog IL_0339: ldc.r4 0.0002 IL_033E: add IL_033F: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0344: stfld System.Single WeatherManager::m_currentFog IL_0349: ldarg.0 IL_034A: ldfld System.Single WeatherManager::m_currentFog IL_034F: ldc.r4 0.2 IL_0354: blt.un => Label30 IL_0359: ldloc.s 6 (System.Single) IL_035B: ldc.r4 0.2 IL_0360: bge.un => Label31 IL_0365: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_036A: ldfld SimulationMetaData SimulationManager::m_metaData IL_036F: ldfld MetaBool SimulationMetaData::m_disableAchievements IL_0374: ldc.i4.2 IL_0375: beq => Label32 IL_037A: call static ColossalFramework.Threading.Dispatcher ColossalFramework.Threading.ThreadHelper::get_dispatcher() IL_037F: ldsfld System.Action WeatherManager::<>f__am$cache2 IL_0384: brtrue => Label33 IL_0389: ldnull IL_038A: ldftn static System.Void WeatherManager::m__2() IL_0390: newobj System.Void System.Action::.ctor(System.Object object, System.IntPtr method) IL_0395: stsfld System.Action WeatherManager::<>f__am$cache2 IL_039A: Label33 IL_039A: ldsfld System.Action WeatherManager::<>f__am$cache2 IL_039F: callvirt ColossalFramework.Threading.Task ColossalFramework.Threading.DispatcherBase::Dispatch(System.Action action) IL_03A4: pop IL_03A5: Label30 IL_03A5: Label31 IL_03A5: Label32 IL_03A5: br => Label34 IL_03AA: Label29 IL_03AA: ldarg.0 IL_03AB: ldfld System.Single WeatherManager::m_targetFog IL_03B0: ldarg.0 IL_03B1: ldfld System.Single WeatherManager::m_currentFog IL_03B6: bge.un => Label35 IL_03BB: ldarg.0 IL_03BC: ldarg.0 IL_03BD: ldfld System.Single WeatherManager::m_targetFog IL_03C2: ldarg.0 IL_03C3: ldfld System.Single WeatherManager::m_currentFog IL_03C8: ldc.r4 0.0002 IL_03CD: sub IL_03CE: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_03D3: stfld System.Single WeatherManager::m_currentFog IL_03D8: br => Label36 IL_03DD: Label35 IL_03DD: ldloc.0 IL_03DE: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_03E3: ldc.i4 20000 IL_03E8: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_03ED: brtrue => Label37 IL_03F2: ldarg.0 IL_03F3: ldfld System.Single WeatherManager::m_currentRain IL_03F8: ldc.r4 0 IL_03FD: bne.un => Label38 IL_0402: ldarg.0 IL_0403: ldfld System.Single WeatherManager::m_targetRain IL_0408: ldc.r4 0 IL_040D: bne.un => Label39 IL_0412: ldloc.0 IL_0413: ldfld System.Boolean SimulationManager::m_isNightTime IL_0418: brfalse => Label40 IL_041D: ldarg.0 IL_041E: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_0423: ldfld System.Int32 WeatherProperties::m_fogProbabilityNight IL_0428: br => Label41 IL_042D: Label40 IL_042D: ldarg.0 IL_042E: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_0433: ldfld System.Int32 WeatherProperties::m_fogProbabilityDay IL_0438: Label41 IL_0438: stloc.s 7 (System.Int32) IL_043A: ldloc.0 IL_043B: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0440: ldc.i4.s 100 IL_0442: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0447: ldloc.s 7 (System.Int32) IL_0449: bge => Label42 IL_044E: ldarg.0 IL_044F: ldloc.0 IL_0450: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0455: ldc.i4 2500 IL_045A: ldc.i4 10000 IL_045F: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max) IL_0464: conv.r4 IL_0465: ldc.r4 0.0001 IL_046A: mul IL_046B: stfld System.Single WeatherManager::m_targetFog IL_0470: br => Label43 IL_0475: Label42 IL_0475: ldarg.0 IL_0476: ldc.r4 0 IL_047B: stfld System.Single WeatherManager::m_targetFog IL_0480: Label43 IL_0480: br => Label44 IL_0485: Label38 IL_0485: Label39 IL_0485: ldarg.0 IL_0486: ldc.r4 0 IL_048B: stfld System.Single WeatherManager::m_targetFog IL_0490: Label34 IL_0490: Label36 IL_0490: Label37 IL_0490: Label44 IL_0490: ldarg.0 IL_0491: ldfld System.Single WeatherManager::m_targetCloud IL_0496: ldarg.0 IL_0497: ldfld System.Single WeatherManager::m_currentCloud IL_049C: ble.un => Label45 IL_04A1: ldarg.0 IL_04A2: ldarg.0 IL_04A3: ldfld System.Single WeatherManager::m_targetCloud IL_04A8: ldarg.0 IL_04A9: ldfld System.Single WeatherManager::m_currentCloud IL_04AE: ldc.r4 0.0008 IL_04B3: add IL_04B4: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_04B9: stfld System.Single WeatherManager::m_currentCloud IL_04BE: br => Label46 IL_04C3: Label45 IL_04C3: ldarg.0 IL_04C4: ldfld System.Single WeatherManager::m_targetCloud IL_04C9: ldarg.0 IL_04CA: ldfld System.Single WeatherManager::m_currentCloud IL_04CF: bge.un => Label47 IL_04D4: ldarg.0 IL_04D5: ldarg.0 IL_04D6: ldfld System.Single WeatherManager::m_targetCloud IL_04DB: ldarg.0 IL_04DC: ldfld System.Single WeatherManager::m_currentCloud IL_04E1: ldc.r4 0.0008 IL_04E6: sub IL_04E7: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_04EC: stfld System.Single WeatherManager::m_currentCloud IL_04F1: br => Label48 IL_04F6: Label47 IL_04F6: ldloc.0 IL_04F7: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_04FC: ldc.i4 20000 IL_0501: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0506: brtrue => Label49 IL_050B: ldloc.0 IL_050C: ldfld System.Boolean SimulationManager::m_isNightTime IL_0511: brfalse => Label50 IL_0516: ldarg.0 IL_0517: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_051C: ldfld System.Int32 WeatherProperties::m_cloudProbabilityNight IL_0521: br => Label51 IL_0526: Label50 IL_0526: ldarg.0 IL_0527: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_052C: ldfld System.Int32 WeatherProperties::m_cloudProbabilityDay IL_0531: Label51 IL_0531: stloc.s 8 (System.Int32) IL_0533: ldloc.0 IL_0534: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0539: ldc.i4.s 100 IL_053B: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0540: ldloc.s 8 (System.Int32) IL_0542: bge => Label52 IL_0547: ldarg.0 IL_0548: ldloc.0 IL_0549: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_054E: ldc.i4 2500 IL_0553: ldc.i4 10000 IL_0558: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max) IL_055D: conv.r4 IL_055E: ldc.r4 0.0001 IL_0563: mul IL_0564: stfld System.Single WeatherManager::m_targetCloud IL_0569: br => Label53 IL_056E: Label52 IL_056E: ldarg.0 IL_056F: ldc.r4 0 IL_0574: stfld System.Single WeatherManager::m_targetCloud IL_0579: Label9 IL_0579: Label46 IL_0579: Label48 IL_0579: Label49 IL_0579: Label53 IL_0579: br => Label54 IL_057E: Label8 IL_057E: ldarg.0 IL_057F: ldc.r4 0 IL_0584: stfld System.Single WeatherManager::m_targetRain IL_0589: ldarg.0 IL_058A: ldarg.0 IL_058B: ldfld System.Single WeatherManager::m_currentRain IL_0590: ldloc.2 IL_0591: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0596: stfld System.Single WeatherManager::m_currentRain IL_059B: ldarg.0 IL_059C: ldc.r4 0 IL_05A1: stfld System.Single WeatherManager::m_targetFog IL_05A6: ldarg.0 IL_05A7: ldarg.0 IL_05A8: ldfld System.Single WeatherManager::m_currentFog IL_05AD: ldloc.2 IL_05AE: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_05B3: stfld System.Single WeatherManager::m_currentFog IL_05B8: ldarg.0 IL_05B9: ldc.r4 0 IL_05BE: stfld System.Single WeatherManager::m_targetCloud IL_05C3: ldarg.0 IL_05C4: ldarg.0 IL_05C5: ldfld System.Single WeatherManager::m_currentCloud IL_05CA: ldloc.2 IL_05CB: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_05D0: stfld System.Single WeatherManager::m_currentCloud IL_05D5: Label54 IL_05D5: ldarg.0 IL_05D6: ldfld System.Single WeatherManager::m_groundWetness IL_05DB: ldc.r4 0 IL_05E0: bne.un => Label55 IL_05E5: ldarg.0 IL_05E6: ldfld System.Single WeatherManager::m_currentRain IL_05EB: ldc.r4 0 IL_05F0: beq => Label56 IL_05F5: ldarg.0 IL_05F6: ldloc.0 IL_05F7: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_05FC: ldc.i4.s 100 IL_05FE: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0603: ldarg.0 IL_0604: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_0609: ldfld System.Int32 WeatherProperties::m_rainbowProbability IL_060E: bge => Label57 IL_0613: ldc.r4 1 IL_0618: br => Label58 IL_061D: Label57 IL_061D: ldc.r4 0 IL_0622: Label58 IL_0622: stfld System.Single WeatherManager::m_targetRainbow IL_0627: Label55 IL_0627: Label56 IL_0627: ldarg.0 IL_0628: ldfld System.Single WeatherManager::m_groundWetness IL_062D: stloc.s 9 (System.Single) IL_062F: ldloc.s 9 (System.Single) IL_0631: ldloc.s 9 (System.Single) IL_0633: ldc.r4 0.00013 IL_0638: mul IL_0639: ldc.r4 1E-05 IL_063E: add IL_063F: sub IL_0640: stloc.s 9 (System.Single) IL_0642: ldloc.s 9 (System.Single) IL_0644: ldarg.0 IL_0645: ldfld System.Single WeatherManager::m_currentRain IL_064A: ldc.r4 0.25 IL_064F: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0654: ldc.r4 0.00061 IL_0659: mul IL_065A: add IL_065B: stloc.s 9 (System.Single) IL_065D: ldarg.0 IL_065E: ldloc.s 9 (System.Single) IL_0660: call static System.Single UnityEngine.Mathf::Clamp01(System.Single value) IL_0665: stfld System.Single WeatherManager::m_groundWetness IL_066A: ldc.r4 1 IL_066F: ldarg.0 IL_0670: ldfld System.Single WeatherManager::m_currentRain IL_0675: ldc.r4 4 IL_067A: mul IL_067B: sub IL_067C: ldarg.0 IL_067D: ldfld System.Single WeatherManager::m_groundWetness IL_0682: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0687: stloc.s 10 (System.Single) IL_0689: ldloc.s 10 (System.Single) IL_068B: ldarg.0 IL_068C: ldfld System.Single WeatherManager::m_targetRainbow IL_0691: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0696: call static System.Single UnityEngine.Mathf::Clamp01(System.Single value) IL_069B: stloc.s 10 (System.Single) IL_069D: ldloc.s 10 (System.Single) IL_069F: ldarg.0 IL_06A0: ldfld System.Single WeatherManager::m_currentRainbow IL_06A5: ble.un => Label59 IL_06AA: ldarg.0 IL_06AB: ldloc.s 10 (System.Single) IL_06AD: ldarg.0 IL_06AE: ldfld System.Single WeatherManager::m_currentRainbow IL_06B3: ldc.r4 0.0002 IL_06B8: add IL_06B9: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_06BE: stfld System.Single WeatherManager::m_currentRainbow IL_06C3: br => Label60 IL_06C8: Label59 IL_06C8: ldloc.s 10 (System.Single) IL_06CA: ldarg.0 IL_06CB: ldfld System.Single WeatherManager::m_currentRainbow IL_06D0: bge.un => Label61 IL_06D5: ldarg.0 IL_06D6: ldloc.s 10 (System.Single) IL_06D8: ldarg.0 IL_06D9: ldfld System.Single WeatherManager::m_currentRainbow IL_06DE: ldc.r4 0.0002 IL_06E3: sub IL_06E4: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_06E9: stfld System.Single WeatherManager::m_currentRainbow IL_06EE: Label60 IL_06EE: Label61 IL_06EE: ldarg.0 IL_06EF: ldfld System.Single WeatherManager::m_targetNorthernLights IL_06F4: ldarg.0 IL_06F5: ldfld System.Single WeatherManager::m_currentNorthernLights IL_06FA: ble.un => Label62 IL_06FF: ldarg.0 IL_0700: ldarg.0 IL_0701: ldfld System.Single WeatherManager::m_targetNorthernLights IL_0706: ldarg.0 IL_0707: ldfld System.Single WeatherManager::m_currentNorthernLights IL_070C: ldc.r4 0.0002 IL_0711: add IL_0712: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0717: stfld System.Single WeatherManager::m_currentNorthernLights IL_071C: br => Label63 IL_0721: Label62 IL_0721: ldarg.0 IL_0722: ldfld System.Single WeatherManager::m_targetNorthernLights IL_0727: ldarg.0 IL_0728: ldfld System.Single WeatherManager::m_currentRain IL_072D: bge.un => Label64 IL_0732: ldarg.0 IL_0733: ldarg.0 IL_0734: ldfld System.Single WeatherManager::m_targetNorthernLights IL_0739: ldarg.0 IL_073A: ldfld System.Single WeatherManager::m_currentNorthernLights IL_073F: ldc.r4 0.0002 IL_0744: sub IL_0745: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_074A: stfld System.Single WeatherManager::m_currentNorthernLights IL_074F: br => Label65 IL_0754: Label64 IL_0754: ldloc.0 IL_0755: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_075A: ldc.i4 10000 IL_075F: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0764: brtrue => Label66 IL_0769: ldloc.0 IL_076A: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_076F: ldc.i4.s 100 IL_0771: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0776: ldarg.0 IL_0777: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_077C: ldfld System.Int32 WeatherProperties::m_northernLightsProbability IL_0781: bge => Label67 IL_0786: ldarg.0 IL_0787: ldloc.0 IL_0788: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_078D: ldc.i4 5000 IL_0792: ldc.i4 10000 IL_0797: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max) IL_079C: conv.r4 IL_079D: ldc.r4 0.0001 IL_07A2: mul IL_07A3: stfld System.Single WeatherManager::m_targetNorthernLights IL_07A8: br => Label68 IL_07AD: Label67 IL_07AD: ldarg.0 IL_07AE: ldc.r4 0 IL_07B3: stfld System.Single WeatherManager::m_targetNorthernLights IL_07B8: Label63 IL_07B8: Label65 IL_07B8: Label66 IL_07B8: Label68 IL_07B8: ldarg.0 IL_07B9: ldfld System.Single WeatherManager::m_targetTemperature IL_07BE: ldarg.0 IL_07BF: ldfld System.Single WeatherManager::m_currentTemperature IL_07C4: sub IL_07C5: ldc.r4 0.001 IL_07CA: mul IL_07CB: call static System.Single UnityEngine.Mathf::Abs(System.Single f) IL_07D0: stloc.s 11 (System.Single) IL_07D2: ldarg.0 IL_07D3: ldarg.0 IL_07D4: ldfld System.Single WeatherManager::m_temperatureSpeed IL_07D9: ldc.r4 0.0001 IL_07DE: add IL_07DF: ldloc.s 11 (System.Single) IL_07E1: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_07E6: stfld System.Single WeatherManager::m_temperatureSpeed IL_07EB: ldarg.0 IL_07EC: ldarg.0 IL_07ED: ldfld System.Single WeatherManager::m_currentTemperature IL_07F2: ldarg.0 IL_07F3: ldfld System.Single WeatherManager::m_targetTemperature IL_07F8: ldarg.0 IL_07F9: ldfld System.Single WeatherManager::m_temperatureSpeed IL_07FE: call static System.Single UnityEngine.Mathf::MoveTowards(System.Single current, System.Single target, System.Single maxDelta) IL_0803: stfld System.Single WeatherManager::m_currentTemperature IL_0808: ldloc.0 IL_0809: ldfld System.UInt32 SimulationManager::m_dayTimeFrame IL_080E: stloc.s 12 (System.Int32) IL_0810: ldsfld System.UInt32 SimulationManager::DAYTIME_FRAMES IL_0815: stloc.s 13 (System.Int32) IL_0817: ldloc.s 12 (System.Int32) IL_0819: conv.r4 IL_081A: ldloc.s 13 (System.Int32) IL_081C: conv.r4 IL_081D: div IL_081E: ldc.r4 0.5 IL_0823: sub IL_0824: call static System.Single UnityEngine.Mathf::Abs(System.Single f) IL_0829: ldc.r4 2 IL_082E: mul IL_082F: stloc.s 14 (System.Single) IL_0831: ldarg.0 IL_0832: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_0837: ldfld System.Single WeatherProperties::m_minTemperatureDay IL_083C: ldarg.0 IL_083D: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_0842: ldfld System.Single WeatherProperties::m_minTemperatureNight IL_0847: ldloc.s 14 (System.Single) IL_0849: call static System.Single UnityEngine.Mathf::Lerp(System.Single a, System.Single b, System.Single t) IL_084E: stloc.s 15 (System.Single) IL_0850: ldarg.0 IL_0851: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_0856: ldfld System.Single WeatherProperties::m_maxTemperatureDay IL_085B: ldarg.0 IL_085C: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_0861: ldfld System.Single WeatherProperties::m_maxTemperatureNight IL_0866: ldloc.s 14 (System.Single) IL_0868: call static System.Single UnityEngine.Mathf::Lerp(System.Single a, System.Single b, System.Single t) IL_086D: stloc.s 16 (System.Single) IL_086F: ldloc.s 15 (System.Single) IL_0871: ldarg.0 IL_0872: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_0877: ldfld System.Single WeatherProperties::m_minTemperatureRain IL_087C: ldarg.0 IL_087D: ldfld System.Single WeatherManager::m_currentRain IL_0882: call static System.Single UnityEngine.Mathf::Lerp(System.Single a, System.Single b, System.Single t) IL_0887: stloc.s 15 (System.Single) IL_0889: ldloc.s 16 (System.Single) IL_088B: ldarg.0 IL_088C: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_0891: ldfld System.Single WeatherProperties::m_maxTemperatureRain IL_0896: ldarg.0 IL_0897: ldfld System.Single WeatherManager::m_currentRain IL_089C: call static System.Single UnityEngine.Mathf::Lerp(System.Single a, System.Single b, System.Single t) IL_08A1: stloc.s 16 (System.Single) IL_08A3: ldloc.s 15 (System.Single) IL_08A5: ldarg.0 IL_08A6: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_08AB: ldfld System.Single WeatherProperties::m_minTemperatureFog IL_08B0: ldarg.0 IL_08B1: ldfld System.Single WeatherManager::m_currentFog IL_08B6: call static System.Single UnityEngine.Mathf::Lerp(System.Single a, System.Single b, System.Single t) IL_08BB: stloc.s 15 (System.Single) IL_08BD: ldloc.s 16 (System.Single) IL_08BF: ldarg.0 IL_08C0: ldfld WeatherProperties SimulationManagerBase`2::m_properties IL_08C5: ldfld System.Single WeatherProperties::m_maxTemperatureFog IL_08CA: ldarg.0 IL_08CB: ldfld System.Single WeatherManager::m_currentFog IL_08D0: call static System.Single UnityEngine.Mathf::Lerp(System.Single a, System.Single b, System.Single t) IL_08D5: stloc.s 16 (System.Single) IL_08D7: ldloc.s 11 (System.Single) IL_08D9: ldc.r4 2E-05 IL_08DE: blt => Label69 IL_08E3: ldarg.0 IL_08E4: ldfld System.Single WeatherManager::m_targetTemperature IL_08E9: ldloc.s 15 (System.Single) IL_08EB: blt => Label70 IL_08F0: ldarg.0 IL_08F1: ldfld System.Single WeatherManager::m_targetTemperature IL_08F6: ldloc.s 16 (System.Single) IL_08F8: ble.un => Label71 IL_08FD: Label69 IL_08FD: Label70 IL_08FD: ldarg.0 IL_08FE: ldloc.0 IL_08FF: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0904: ldc.i4.0 IL_0905: ldc.i4 10000 IL_090A: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.Int32 min, System.Int32 max) IL_090F: conv.r4 IL_0910: ldloc.s 16 (System.Single) IL_0912: ldloc.s 15 (System.Single) IL_0914: sub IL_0915: mul IL_0916: ldc.r4 10000 IL_091B: div IL_091C: ldloc.s 15 (System.Single) IL_091E: add IL_091F: stfld System.Single WeatherManager::m_targetTemperature IL_0924: Label71 IL_0924: ldc.i4.0 IL_0925: stloc.s 17 (System.Int32) IL_0927: br => Label72 IL_092C: Label77 IL_092C: ldarg.0 IL_092D: ldfld FastList`1 WeatherManager::m_lightningQueue IL_0932: ldfld LightningStrike[] FastList`1::m_buffer IL_0937: ldloc.s 17 (System.Int32) IL_0939: ldelema WeatherManager+LightningStrike IL_093E: ldfld System.UInt32 LightningStrike::m_startFrame IL_0943: stloc.s 18 (System.UInt32) IL_0945: ldloc.s 18 (System.UInt32) IL_0947: brfalse => Label73 IL_094C: ldloc.s 18 (System.UInt32) IL_094E: ldloc.0 IL_094F: ldfld System.UInt32 SimulationManager::m_currentFrameIndex IL_0954: bne.un => Label74 IL_0959: ldarg.0 IL_095A: ldloc.s 17 (System.Int32) IL_095C: call System.Boolean WeatherManager::StrikeNow(System.Int32 lightningIndex) IL_0961: pop IL_0962: br => Label75 IL_0967: Label74 IL_0967: ldloc.s 18 (System.UInt32) IL_0969: ldc.i4.s 45 IL_096B: add IL_096C: ldloc.0 IL_096D: ldfld System.UInt32 SimulationManager::m_currentFrameIndex IL_0972: bge.un => Label76 IL_0977: ldsfld InstanceID InstanceID::Empty IL_097C: stloc.s 19 (InstanceID) IL_097E: ldloca.s 19 (InstanceID) IL_0980: ldloc.s 17 (System.Int32) IL_0982: conv.u1 IL_0983: call System.Void InstanceID::set_Lightning(System.Byte value) IL_0988: call static InstanceManager ColossalFramework.Singleton`1::get_instance() IL_098D: ldloc.s 19 (InstanceID) IL_098F: callvirt System.Void InstanceManager::ReleaseInstance(InstanceID id) IL_0994: ldarg.0 IL_0995: ldfld FastList`1 WeatherManager::m_lightningQueue IL_099A: ldfld LightningStrike[] FastList`1::m_buffer IL_099F: ldloc.s 17 (System.Int32) IL_09A1: ldelema WeatherManager+LightningStrike IL_09A6: ldc.i4.0 IL_09A7: stfld System.UInt32 LightningStrike::m_startFrame IL_09AC: Label73 IL_09AC: Label75 IL_09AC: Label76 IL_09AC: ldloc.s 17 (System.Int32) IL_09AE: ldc.i4.1 IL_09AF: add IL_09B0: stloc.s 17 (System.Int32) IL_09B2: Label72 IL_09B2: ldloc.s 17 (System.Int32) IL_09B4: ldarg.0 IL_09B5: ldfld FastList`1 WeatherManager::m_lightningQueue IL_09BA: ldfld System.Int32 FastList`1::m_size IL_09BF: blt => Label77 IL_09C4: br => Label78 IL_09C9: Label80 IL_09C9: ldarg.0 IL_09CA: ldfld FastList`1 WeatherManager::m_lightningQueue IL_09CF: dup IL_09D0: ldfld System.Int32 FastList`1::m_size IL_09D5: ldc.i4.1 IL_09D6: sub IL_09D7: stfld System.Int32 FastList`1::m_size IL_09DC: Label78 IL_09DC: ldarg.0 IL_09DD: ldfld FastList`1 WeatherManager::m_lightningQueue IL_09E2: ldfld System.Int32 FastList`1::m_size IL_09E7: ldc.i4.0 IL_09E8: ble => Label79 IL_09ED: ldarg.0 IL_09EE: ldfld FastList`1 WeatherManager::m_lightningQueue IL_09F3: ldfld LightningStrike[] FastList`1::m_buffer IL_09F8: ldarg.0 IL_09F9: ldfld FastList`1 WeatherManager::m_lightningQueue IL_09FE: ldfld System.Int32 FastList`1::m_size IL_0A03: ldc.i4.1 IL_0A04: sub IL_0A05: ldelema WeatherManager+LightningStrike IL_0A0A: ldfld System.UInt32 LightningStrike::m_startFrame IL_0A0F: brfalse => Label80 IL_0A14: Label79 IL_0A14: ldarg.0 IL_0A15: ldfld System.Single WeatherManager::m_currentRain IL_0A1A: ldc.r4 0.8 IL_0A1F: ble.un => Label81 IL_0A24: ldarg.0 IL_0A25: ldfld FastList`1 WeatherManager::m_lightningQueue IL_0A2A: ldfld System.Int32 FastList`1::m_size IL_0A2F: brtrue => Label82 IL_0A34: ldarg.0 IL_0A35: ldfld System.Single WeatherManager::m_currentRain IL_0A3A: ldc.r4 5 IL_0A3F: mul IL_0A40: ldc.r4 4 IL_0A45: sub IL_0A46: stloc.s 20 (System.Single) IL_0A48: ldc.i4 5000 IL_0A4D: ldloc.s 20 (System.Single) IL_0A4F: ldc.r4 4000 IL_0A54: mul IL_0A55: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_0A5A: sub IL_0A5B: stloc.s 21 (System.Int32) IL_0A5D: ldarg.0 IL_0A5E: ldloc.0 IL_0A5F: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0A64: ldloc.s 21 (System.Int32) IL_0A66: call System.UInt32 ColossalFramework.Math.Randomizer::UInt32(System.UInt32 range) IL_0A6B: call System.Boolean WeatherManager::QueueLightningStrike(System.UInt32 delay) IL_0A70: pop IL_0A71: // end original IL_0A71: Label2 IL_0A71: Label3 IL_0A71: Label81 IL_0A71: Label82 IL_0A71: Label0 IL_0A71: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: System.Void DistrictPark::SimulationStep(System.Byte parkID) ### Replacement: static System.Void DistrictPark::DistrictPark.SimulationStep_Patch1(DistrictPark& this, System.Byte parkID) IL_0000: Local var 0: DistrictPark/ParkType IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldfld ParkType DistrictPark::m_parkType IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: switch => Labels0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 IL_004D: br => Label16 IL_0052: Label0 IL_0052: ldarg.0 IL_0053: ldarg.1 IL_0054: call System.Void DistrictPark::BaseSimulationStep(System.Byte parkID) IL_0059: br => Label17 IL_005E: Label1 IL_005E: Label2 IL_005E: Label3 IL_005E: Label4 IL_005E: ldarg.0 IL_005F: ldarg.1 IL_0060: call System.Void DistrictPark::ParkSimulationStep(System.Byte parkID) IL_0065: ldarg.0 IL_0066: ldarg.1 IL_0067: call System.Void DistrictPark::CheckPolicies(System.Byte parkID) IL_006C: br => Label18 IL_0071: Label5 IL_0071: Label6 IL_0071: Label7 IL_0071: Label8 IL_0071: Label9 IL_0071: ldarg.0 IL_0072: ldarg.1 IL_0073: call System.Void DistrictPark::IndustrySimulationStep(System.Byte parkID) IL_0078: ldarg.0 IL_0079: ldarg.1 IL_007A: call System.Void DistrictPark::CheckPolicies(System.Byte parkID) IL_007F: br => Label19 IL_0084: Label10 IL_0084: Label11 IL_0084: Label12 IL_0084: Label13 IL_0084: ldarg.0 IL_0085: ldarg.1 IL_0086: call System.Void DistrictPark::CampusSimulationStep(System.Byte parkID) IL_008B: ldarg.0 IL_008C: ldarg.1 IL_008D: call System.Void DistrictPark::CheckPolicies(System.Byte parkID) IL_0092: br => Label20 IL_0097: Label14 IL_0097: ldarg.0 IL_0098: ldarg.1 IL_0099: call System.Void DistrictPark::AirportSimulationStep(System.Byte parkID) IL_009E: ldarg.0 IL_009F: ldarg.1 IL_00A0: call System.Void DistrictPark::CheckPolicies(System.Byte parkID) IL_00A5: br => Label21 IL_00AA: Label15 IL_00AA: ldarg.0 IL_00AB: ldarg.1 IL_00AC: call System.Void DistrictPark::PedestrianZoneSimulationStep(System.Byte parkID) IL_00B1: ldarg.0 IL_00B2: ldarg.1 IL_00B3: call System.Void DistrictPark::CheckPolicies(System.Byte parkID) IL_00B8: br => Label22 IL_00BD: // end original IL_00BD: Label16 IL_00BD: Label17 IL_00BD: Label18 IL_00BD: Label19 IL_00BD: Label20 IL_00BD: Label21 IL_00BD: Label22 IL_00BD: ldarg 1 IL_00C1: call static System.Void RealTime.GameConnection.Patches.DistrictPark_SimulationStep::Postfix(System.Byte parkID) IL_00C6: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: static System.Int32 OutsideConnectionAI::DummyTrafficProbability() ### Replacement: static System.Int32 OutsideConnectionAI::OutsideConnectionAI.DummyTrafficProbability_Patch1() IL_0000: Local var 0: System.UInt32 IL_0000: Local var 1: System.UInt32 IL_0000: Local var 2: System.Int32 IL_0000: ldc.i4 0 IL_0005: stloc 2 (System.Int32) IL_0009: // start original IL_0009: call static VehicleManager ColossalFramework.Singleton`1::get_instance() IL_000E: ldfld System.Int32 VehicleManager::m_vehicleCount IL_0013: stloc.0 IL_0014: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0019: ldfld System.Int32 CitizenManager::m_instanceCount IL_001E: stloc.1 IL_001F: ldloc.0 IL_0020: ldc.i4 65536 IL_0025: mul IL_0026: ldloc.1 IL_0027: ldc.i4 16384 IL_002C: mul IL_002D: ble.un => Label0 IL_0032: ldc.i4 2048000 IL_0037: ldc.i4 16384 IL_003C: ldloc.0 IL_003D: ldc.i4.4 IL_003E: mul IL_003F: add IL_0040: div IL_0041: ldc.i4.s 25 IL_0043: sub IL_0044: br => Label1 IL_0049: Label0 IL_0049: ldc.i4 8192000 IL_004E: ldc.i4 65536 IL_0053: ldloc.1 IL_0054: ldc.i4.4 IL_0055: mul IL_0056: add IL_0057: div IL_0058: ldc.i4.s 25 IL_005A: sub IL_005B: // end original IL_005B: Label1 IL_005B: stloc 2 (System.Int32) IL_005F: ldloca 2 (System.Int32) IL_0063: call static System.Void RealTime.GameConnection.Patches.OutsideConnectionAI_DummyTrafficProbability::Postfix(System.Int32& __result) IL_0068: ldloc 2 (System.Int32) IL_006C: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: virtual BuildingInfo PrivateBuildingAI::GetUpgradeInfo(System.UInt16 buildingID, Building& data) ### Replacement: static BuildingInfo PrivateBuildingAI::PrivateBuildingAI.GetUpgradeInfo_Patch1(PrivateBuildingAI this, System.UInt16 buildingID, Building& data) IL_0000: Local var 0: ColossalFramework.Math.Randomizer IL_0000: Local var 1: System.Int32 IL_0000: Local var 2: ItemClass/Level IL_0000: Local var 3: DistrictManager IL_0000: Local var 4: System.Byte IL_0000: Local var 5: System.UInt16 IL_0000: Local var 6: BuildingInfo IL_0000: Local var 7: System.Boolean IL_0000: ldnull IL_0001: stloc 6 (BuildingInfo) IL_0005: ldc.i4 0 IL_000A: stloc 7 (System.Boolean) IL_000E: ldc.i4.1 IL_000F: stloc 7 (System.Boolean) IL_0013: ldloc 7 (System.Boolean) IL_0017: brfalse => Label1 IL_001C: ldloca 6 (BuildingInfo) IL_0020: ldarg 1 IL_0024: ldarg 2 IL_0028: call static System.Boolean RealTime.GameConnection.Patches.PrivateBuildingAI_GetUpgradeInfo::Prefix(BuildingInfo& __result, System.UInt16 buildingID, Building& data) IL_002D: stloc 7 (System.Boolean) IL_0031: Label1 IL_0031: nop IL_0032: ldloc 7 (System.Boolean) IL_0036: brfalse => Label0 IL_003B: // start original IL_003B: ldarg.2 IL_003C: ldfld System.Byte Building::m_level IL_0041: ldc.i4.4 IL_0042: bne.un => Label2 IL_0047: ldnull IL_0048: br => Label5 IL_004D: Label2 IL_004D: ldloca.s 0 (ColossalFramework.Math.Randomizer) IL_004F: ldarg.1 IL_0050: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0055: ldc.i4.0 IL_0056: stloc.1 IL_0057: br => Label3 IL_005C: Label4 IL_005C: ldloca.s 0 (ColossalFramework.Math.Randomizer) IL_005E: ldc.i4 1000 IL_0063: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0068: pop IL_0069: ldloc.1 IL_006A: ldc.i4.1 IL_006B: add IL_006C: stloc.1 IL_006D: Label3 IL_006D: ldloc.1 IL_006E: ldarg.2 IL_006F: ldfld System.Byte Building::m_level IL_0074: ble => Label4 IL_0079: ldarg.2 IL_007A: ldfld System.Byte Building::m_level IL_007F: ldc.i4.1 IL_0080: add IL_0081: stloc.2 IL_0082: call static DistrictManager ColossalFramework.Singleton`1::get_instance() IL_0087: stloc.3 IL_0088: ldloc.3 IL_0089: ldarg.2 IL_008A: ldfld UnityEngine.Vector3 Building::m_position IL_008F: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3 worldPos) IL_0094: stloc.s 4 (System.Byte) IL_0096: ldloc.3 IL_0097: ldfld Array8`1 DistrictManager::m_districts IL_009C: ldfld District[] Array8`1::m_buffer IL_00A1: ldloc.s 4 (System.Byte) IL_00A3: ldelema District IL_00A8: ldfld System.UInt16 District::m_Style IL_00AD: stloc.s 5 (System.UInt16) IL_00AF: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_00B4: ldloca.s 0 (ColossalFramework.Math.Randomizer) IL_00B6: ldarg.0 IL_00B7: ldfld BuildingInfo BuildingAI::m_info IL_00BC: ldfld ItemClass BuildingInfo::m_class IL_00C1: ldfld Service ItemClass::m_service IL_00C6: ldarg.0 IL_00C7: ldfld BuildingInfo BuildingAI::m_info IL_00CC: ldfld ItemClass BuildingInfo::m_class IL_00D1: ldfld SubService ItemClass::m_subService IL_00D6: ldloc.2 IL_00D7: ldarg.2 IL_00D8: call System.Int32 Building::get_Width() IL_00DD: ldarg.2 IL_00DE: call System.Int32 Building::get_Length() IL_00E3: ldarg.0 IL_00E4: ldfld BuildingInfo BuildingAI::m_info IL_00E9: ldfld ZoningMode BuildingInfo::m_zoningMode IL_00EE: ldloc.s 5 (System.UInt16) IL_00F0: callvirt BuildingInfo BuildingManager::GetRandomBuildingInfo(ColossalFramework.Math.Randomizer& r, Service service, SubService subService, Level level, System.Int32 width, System.Int32 length, ZoningMode zoningMode, System.Int32 style) IL_00F5: // end original IL_00F5: Label5 IL_00F5: stloc 6 (BuildingInfo) IL_00F9: Label0 IL_00F9: ldloc 6 (BuildingInfo) IL_00FD: ret DONE ### Harmony id=com.cities_skylines.dymanoid.realtime, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.25 ### Patch: System.Boolean BuildingManager::CreateBuilding(System.UInt16& building, ColossalFramework.Math.Randomizer& randomizer, BuildingInfo info, UnityEngine.Vector3 position, System.Single angle, System.Int32 length, System.UInt32 buildIndex) ### Replacement: static System.Boolean BuildingManager::BuildingManager.CreateBuilding_Patch2(BuildingManager this, System.UInt16& building, ColossalFramework.Math.Randomizer& randomizer, BuildingInfo info, UnityEngine.Vector3 position, System.Single angle, System.Int32 length, System.UInt32 buildIndex) IL_0000: Local var 0: System.UInt16 IL_0000: Local var 1: Building/Frame IL_0000: Local var 2: System.Boolean IL_0000: Local var 3: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 2 (System.Boolean) IL_0009: ldc.i4 0 IL_000E: stloc 3 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 3 (System.Boolean) IL_0017: ldloc 3 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldarg 3 IL_0024: ldloca 2 (System.Boolean) IL_0028: call static System.Boolean RealTime.GameConnection.Patches.BuildingManager_CreateBuilding::Prefix(BuildingInfo info, System.Boolean& __result) IL_002D: stloc 3 (System.Boolean) IL_0031: Label1 IL_0031: nop IL_0032: ldloc 3 (System.Boolean) IL_0036: brfalse => Label0 IL_003B: // start original IL_003B: ldarg.0 IL_003C: ldfld Array16`1 BuildingManager::m_buildings IL_0041: ldloca.s 0 (System.UInt16) IL_0043: ldarg.2 IL_0044: callvirt System.Boolean Array16`1::CreateItem(System.UInt16& item, ColossalFramework.Math.Randomizer& r) IL_0049: brfalse => Label2 IL_004E: ldarg.s 6 IL_0050: ldc.i4.0 IL_0051: bgt => Label3 IL_0056: ldarg.3 IL_0057: ldfld System.Int32 BuildingInfo::m_cellLength IL_005C: starg.s 6 IL_005E: Label3 IL_005E: ldarg.1 IL_005F: ldloc.0 IL_0060: stind.i2 IL_0061: ldarg.0 IL_0062: ldfld Array16`1 BuildingManager::m_buildings IL_0067: ldfld Building[] Array16`1::m_buffer IL_006C: ldarg.1 IL_006D: ldind.u2 IL_006E: ldelema Building IL_0073: ldc.i4.1 IL_0074: stfld Flags Building::m_flags IL_0079: ldarg.0 IL_007A: ldfld Array16`1 BuildingManager::m_buildings IL_007F: ldfld Building[] Array16`1::m_buffer IL_0084: ldarg.1 IL_0085: ldind.u2 IL_0086: ldelema Building IL_008B: ldarg.3 IL_008C: call System.Void Building::set_Info(BuildingInfo value) IL_0091: ldarg.0 IL_0092: ldfld Array16`1 BuildingManager::m_buildings IL_0097: ldfld Building[] Array16`1::m_buffer IL_009C: ldarg.1 IL_009D: ldind.u2 IL_009E: ldelema Building IL_00A3: ldarg.3 IL_00A4: ldfld System.Int32 BuildingInfo::m_cellWidth IL_00A9: call System.Void Building::set_Width(System.Int32 value) IL_00AE: ldarg.0 IL_00AF: ldfld Array16`1 BuildingManager::m_buildings IL_00B4: ldfld Building[] Array16`1::m_buffer IL_00B9: ldarg.1 IL_00BA: ldind.u2 IL_00BB: ldelema Building IL_00C0: ldarg.s 6 IL_00C2: call System.Void Building::set_Length(System.Int32 value) IL_00C7: ldarg.0 IL_00C8: ldfld Array16`1 BuildingManager::m_buildings IL_00CD: ldfld Building[] Array16`1::m_buffer IL_00D2: ldarg.1 IL_00D3: ldind.u2 IL_00D4: ldelema Building IL_00D9: ldloca.s 1 (Building+Frame) IL_00DB: initobj Building+Frame IL_00E1: ldloc.1 IL_00E2: stfld Frame Building::m_frame0 IL_00E7: ldarg.0 IL_00E8: ldfld Array16`1 BuildingManager::m_buildings IL_00ED: ldfld Building[] Array16`1::m_buffer IL_00F2: ldarg.1 IL_00F3: ldind.u2 IL_00F4: ldelema Building IL_00F9: ldarg.s 7 IL_00FB: stfld System.UInt32 Building::m_buildIndex IL_0100: ldarg.0 IL_0101: ldfld Array16`1 BuildingManager::m_buildings IL_0106: ldfld Building[] Array16`1::m_buffer IL_010B: ldarg.1 IL_010C: ldind.u2 IL_010D: ldelema Building IL_0112: ldarg.s 5 IL_0114: stfld System.Single Building::m_angle IL_0119: ldarg.0 IL_011A: ldfld Array16`1 BuildingManager::m_buildings IL_011F: ldfld Building[] Array16`1::m_buffer IL_0124: ldarg.1 IL_0125: ldind.u2 IL_0126: ldelema Building IL_012B: ldarg.s 4 IL_012D: stfld UnityEngine.Vector3 Building::m_position IL_0132: ldarg.0 IL_0133: ldfld Array16`1 BuildingManager::m_buildings IL_0138: ldfld Building[] Array16`1::m_buffer IL_013D: ldarg.1 IL_013E: ldind.u2 IL_013F: ldelema Building IL_0144: ldc.i4.0 IL_0145: stfld System.Byte Building::m_baseHeight IL_014A: ldarg.0 IL_014B: ldfld Array16`1 BuildingManager::m_buildings IL_0150: ldfld Building[] Array16`1::m_buffer IL_0155: ldarg.1 IL_0156: ldind.u2 IL_0157: ldelema Building IL_015C: ldc.i4.0 IL_015D: stfld System.UInt16 Building::m_ownVehicles IL_0162: ldarg.0 IL_0163: ldfld Array16`1 BuildingManager::m_buildings IL_0168: ldfld Building[] Array16`1::m_buffer IL_016D: ldarg.1 IL_016E: ldind.u2 IL_016F: ldelema Building IL_0174: ldc.i4.0 IL_0175: stfld System.UInt16 Building::m_guestVehicles IL_017A: ldarg.0 IL_017B: ldfld Array16`1 BuildingManager::m_buildings IL_0180: ldfld Building[] Array16`1::m_buffer IL_0185: ldarg.1 IL_0186: ldind.u2 IL_0187: ldelema Building IL_018C: ldc.i4.0 IL_018D: stfld System.UInt16 Building::m_sourceCitizens IL_0192: ldarg.0 IL_0193: ldfld Array16`1 BuildingManager::m_buildings IL_0198: ldfld Building[] Array16`1::m_buffer IL_019D: ldarg.1 IL_019E: ldind.u2 IL_019F: ldelema Building IL_01A4: ldc.i4.0 IL_01A5: stfld System.UInt16 Building::m_targetCitizens IL_01AA: ldarg.0 IL_01AB: ldfld Array16`1 BuildingManager::m_buildings IL_01B0: ldfld Building[] Array16`1::m_buffer IL_01B5: ldarg.1 IL_01B6: ldind.u2 IL_01B7: ldelema Building IL_01BC: ldc.i4.0 IL_01BD: stfld System.UInt32 Building::m_citizenUnits IL_01C2: ldarg.0 IL_01C3: ldfld Array16`1 BuildingManager::m_buildings IL_01C8: ldfld Building[] Array16`1::m_buffer IL_01CD: ldarg.1 IL_01CE: ldind.u2 IL_01CF: ldelema Building IL_01D4: ldc.i4.0 IL_01D5: stfld System.UInt16 Building::m_netNode IL_01DA: ldarg.0 IL_01DB: ldfld Array16`1 BuildingManager::m_buildings IL_01E0: ldfld Building[] Array16`1::m_buffer IL_01E5: ldarg.1 IL_01E6: ldind.u2 IL_01E7: ldelema Building IL_01EC: ldc.i4.0 IL_01ED: stfld System.UInt16 Building::m_subBuilding IL_01F2: ldarg.0 IL_01F3: ldfld Array16`1 BuildingManager::m_buildings IL_01F8: ldfld Building[] Array16`1::m_buffer IL_01FD: ldarg.1 IL_01FE: ldind.u2 IL_01FF: ldelema Building IL_0204: ldc.i4.0 IL_0205: stfld System.UInt16 Building::m_parentBuilding IL_020A: ldarg.0 IL_020B: ldfld Array16`1 BuildingManager::m_buildings IL_0210: ldfld Building[] Array16`1::m_buffer IL_0215: ldarg.1 IL_0216: ldind.u2 IL_0217: ldelema Building IL_021C: ldc.i4.0 IL_021D: stfld System.UInt16 Building::m_waterSource IL_0222: ldarg.0 IL_0223: ldfld Array16`1 BuildingManager::m_buildings IL_0228: ldfld Building[] Array16`1::m_buffer IL_022D: ldarg.1 IL_022E: ldind.u2 IL_022F: ldelema Building IL_0234: ldc.i4.0 IL_0235: stfld System.UInt16 Building::m_eventIndex IL_023A: ldarg.0 IL_023B: ldfld Array16`1 BuildingManager::m_buildings IL_0240: ldfld Building[] Array16`1::m_buffer IL_0245: ldarg.1 IL_0246: ldind.u2 IL_0247: ldelema Building IL_024C: ldc.i4.0 IL_024D: stfld System.UInt16 Building::m_nextGridBuilding IL_0252: ldarg.0 IL_0253: ldfld Array16`1 BuildingManager::m_buildings IL_0258: ldfld Building[] Array16`1::m_buffer IL_025D: ldarg.1 IL_025E: ldind.u2 IL_025F: ldelema Building IL_0264: ldc.i4.0 IL_0265: stfld System.UInt16 Building::m_nextGridBuilding2 IL_026A: ldarg.0 IL_026B: ldfld Array16`1 BuildingManager::m_buildings IL_0270: ldfld Building[] Array16`1::m_buffer IL_0275: ldarg.1 IL_0276: ldind.u2 IL_0277: ldelema Building IL_027C: ldc.i4.0 IL_027D: stfld System.UInt16 Building::m_electricityBuffer IL_0282: ldarg.0 IL_0283: ldfld Array16`1 BuildingManager::m_buildings IL_0288: ldfld Building[] Array16`1::m_buffer IL_028D: ldarg.1 IL_028E: ldind.u2 IL_028F: ldelema Building IL_0294: ldc.i4.0 IL_0295: stfld System.UInt16 Building::m_waterBuffer IL_029A: ldarg.0 IL_029B: ldfld Array16`1 BuildingManager::m_buildings IL_02A0: ldfld Building[] Array16`1::m_buffer IL_02A5: ldarg.1 IL_02A6: ldind.u2 IL_02A7: ldelema Building IL_02AC: ldc.i4.0 IL_02AD: stfld System.UInt16 Building::m_sewageBuffer IL_02B2: ldarg.0 IL_02B3: ldfld Array16`1 BuildingManager::m_buildings IL_02B8: ldfld Building[] Array16`1::m_buffer IL_02BD: ldarg.1 IL_02BE: ldind.u2 IL_02BF: ldelema Building IL_02C4: ldc.i4.0 IL_02C5: stfld System.UInt16 Building::m_heatingBuffer IL_02CA: ldarg.0 IL_02CB: ldfld Array16`1 BuildingManager::m_buildings IL_02D0: ldfld Building[] Array16`1::m_buffer IL_02D5: ldarg.1 IL_02D6: ldind.u2 IL_02D7: ldelema Building IL_02DC: ldc.i4.0 IL_02DD: stfld System.UInt16 Building::m_garbageBuffer IL_02E2: ldarg.0 IL_02E3: ldfld Array16`1 BuildingManager::m_buildings IL_02E8: ldfld Building[] Array16`1::m_buffer IL_02ED: ldarg.1 IL_02EE: ldind.u2 IL_02EF: ldelema Building IL_02F4: ldc.i4.0 IL_02F5: stfld System.UInt16 Building::m_crimeBuffer IL_02FA: ldarg.0 IL_02FB: ldfld Array16`1 BuildingManager::m_buildings IL_0300: ldfld Building[] Array16`1::m_buffer IL_0305: ldarg.1 IL_0306: ldind.u2 IL_0307: ldelema Building IL_030C: ldc.i4.0 IL_030D: stfld System.UInt16 Building::m_mailBuffer IL_0312: ldarg.0 IL_0313: ldfld Array16`1 BuildingManager::m_buildings IL_0318: ldfld Building[] Array16`1::m_buffer IL_031D: ldarg.1 IL_031E: ldind.u2 IL_031F: ldelema Building IL_0324: ldc.i4.0 IL_0325: stfld System.UInt16 Building::m_customBuffer1 IL_032A: ldarg.0 IL_032B: ldfld Array16`1 BuildingManager::m_buildings IL_0330: ldfld Building[] Array16`1::m_buffer IL_0335: ldarg.1 IL_0336: ldind.u2 IL_0337: ldelema Building IL_033C: ldc.i4.0 IL_033D: stfld System.UInt16 Building::m_customBuffer2 IL_0342: ldarg.0 IL_0343: ldfld Array16`1 BuildingManager::m_buildings IL_0348: ldfld Building[] Array16`1::m_buffer IL_034D: ldarg.1 IL_034E: ldind.u2 IL_034F: ldelema Building IL_0354: ldc.i4.0 IL_0355: stfld System.UInt16 Building::m_buildWaterHeight IL_035A: ldarg.0 IL_035B: ldfld Array16`1 BuildingManager::m_buildings IL_0360: ldfld Building[] Array16`1::m_buffer IL_0365: ldarg.1 IL_0366: ldind.u2 IL_0367: ldelema Building IL_036C: ldc.i4.0 IL_036D: stfld System.Byte Building::m_productionRate IL_0372: ldarg.0 IL_0373: ldfld Array16`1 BuildingManager::m_buildings IL_0378: ldfld Building[] Array16`1::m_buffer IL_037D: ldarg.1 IL_037E: ldind.u2 IL_037F: ldelema Building IL_0384: ldc.i4.0 IL_0385: stfld System.Byte Building::m_waterPollution IL_038A: ldarg.0 IL_038B: ldfld Array16`1 BuildingManager::m_buildings IL_0390: ldfld Building[] Array16`1::m_buffer IL_0395: ldarg.1 IL_0396: ldind.u2 IL_0397: ldelema Building IL_039C: ldc.i4.0 IL_039D: stfld System.Byte Building::m_fireIntensity IL_03A2: ldarg.0 IL_03A3: ldfld Array16`1 BuildingManager::m_buildings IL_03A8: ldfld Building[] Array16`1::m_buffer IL_03AD: ldarg.1 IL_03AE: ldind.u2 IL_03AF: ldelema Building IL_03B4: call static ProblemStruct ProblemStruct::get_None() IL_03B9: stfld ProblemStruct Building::m_problems IL_03BE: ldarg.0 IL_03BF: ldfld Array16`1 BuildingManager::m_buildings IL_03C4: ldfld Building[] Array16`1::m_buffer IL_03C9: ldarg.1 IL_03CA: ldind.u2 IL_03CB: ldelema Building IL_03D0: ldc.i4.0 IL_03D1: stfld System.Byte Building::m_lastFrame IL_03D6: ldarg.0 IL_03D7: ldfld Array16`1 BuildingManager::m_buildings IL_03DC: ldfld Building[] Array16`1::m_buffer IL_03E1: ldarg.1 IL_03E2: ldind.u2 IL_03E3: ldelema Building IL_03E8: ldc.i4.0 IL_03E9: stfld System.Byte Building::m_tempImport IL_03EE: ldarg.0 IL_03EF: ldfld Array16`1 BuildingManager::m_buildings IL_03F4: ldfld Building[] Array16`1::m_buffer IL_03F9: ldarg.1 IL_03FA: ldind.u2 IL_03FB: ldelema Building IL_0400: ldc.i4.0 IL_0401: stfld System.Byte Building::m_tempExport IL_0406: ldarg.0 IL_0407: ldfld Array16`1 BuildingManager::m_buildings IL_040C: ldfld Building[] Array16`1::m_buffer IL_0411: ldarg.1 IL_0412: ldind.u2 IL_0413: ldelema Building IL_0418: ldc.i4.0 IL_0419: stfld System.Byte Building::m_finalImport IL_041E: ldarg.0 IL_041F: ldfld Array16`1 BuildingManager::m_buildings IL_0424: ldfld Building[] Array16`1::m_buffer IL_0429: ldarg.1 IL_042A: ldind.u2 IL_042B: ldelema Building IL_0430: ldc.i4.0 IL_0431: stfld System.Byte Building::m_finalExport IL_0436: ldarg.0 IL_0437: ldfld Array16`1 BuildingManager::m_buildings IL_043C: ldfld Building[] Array16`1::m_buffer IL_0441: ldarg.1 IL_0442: ldind.u2 IL_0443: ldelema Building IL_0448: ldc.i4.0 IL_0449: stfld System.Byte Building::m_education1 IL_044E: ldarg.0 IL_044F: ldfld Array16`1 BuildingManager::m_buildings IL_0454: ldfld Building[] Array16`1::m_buffer IL_0459: ldarg.1 IL_045A: ldind.u2 IL_045B: ldelema Building IL_0460: ldc.i4.0 IL_0461: stfld System.Byte Building::m_education2 IL_0466: ldarg.0 IL_0467: ldfld Array16`1 BuildingManager::m_buildings IL_046C: ldfld Building[] Array16`1::m_buffer IL_0471: ldarg.1 IL_0472: ldind.u2 IL_0473: ldelema Building IL_0478: ldc.i4.0 IL_0479: stfld System.Byte Building::m_education3 IL_047E: ldarg.0 IL_047F: ldfld Array16`1 BuildingManager::m_buildings IL_0484: ldfld Building[] Array16`1::m_buffer IL_0489: ldarg.1 IL_048A: ldind.u2 IL_048B: ldelema Building IL_0490: ldc.i4.0 IL_0491: stfld System.Byte Building::m_children IL_0496: ldarg.0 IL_0497: ldfld Array16`1 BuildingManager::m_buildings IL_049C: ldfld Building[] Array16`1::m_buffer IL_04A1: ldarg.1 IL_04A2: ldind.u2 IL_04A3: ldelema Building IL_04A8: ldc.i4.0 IL_04A9: stfld System.Byte Building::m_teens IL_04AE: ldarg.0 IL_04AF: ldfld Array16`1 BuildingManager::m_buildings IL_04B4: ldfld Building[] Array16`1::m_buffer IL_04B9: ldarg.1 IL_04BA: ldind.u2 IL_04BB: ldelema Building IL_04C0: ldc.i4.0 IL_04C1: stfld System.Byte Building::m_youngs IL_04C6: ldarg.0 IL_04C7: ldfld Array16`1 BuildingManager::m_buildings IL_04CC: ldfld Building[] Array16`1::m_buffer IL_04D1: ldarg.1 IL_04D2: ldind.u2 IL_04D3: ldelema Building IL_04D8: ldc.i4.0 IL_04D9: stfld System.Byte Building::m_adults IL_04DE: ldarg.0 IL_04DF: ldfld Array16`1 BuildingManager::m_buildings IL_04E4: ldfld Building[] Array16`1::m_buffer IL_04E9: ldarg.1 IL_04EA: ldind.u2 IL_04EB: ldelema Building IL_04F0: ldc.i4.0 IL_04F1: stfld System.Byte Building::m_seniors IL_04F6: ldarg.0 IL_04F7: ldfld Array16`1 BuildingManager::m_buildings IL_04FC: ldfld Building[] Array16`1::m_buffer IL_0501: ldarg.1 IL_0502: ldind.u2 IL_0503: ldelema Building IL_0508: ldc.i4.0 IL_0509: stfld System.Byte Building::m_fireHazard IL_050E: ldarg.0 IL_050F: ldfld Array16`1 BuildingManager::m_buildings IL_0514: ldfld Building[] Array16`1::m_buffer IL_0519: ldarg.1 IL_051A: ldind.u2 IL_051B: ldelema Building IL_0520: ldc.i4.0 IL_0521: stfld System.Byte Building::m_electricityProblemTimer IL_0526: ldarg.0 IL_0527: ldfld Array16`1 BuildingManager::m_buildings IL_052C: ldfld Building[] Array16`1::m_buffer IL_0531: ldarg.1 IL_0532: ldind.u2 IL_0533: ldelema Building IL_0538: ldc.i4.0 IL_0539: stfld System.Byte Building::m_heatingProblemTimer IL_053E: ldarg.0 IL_053F: ldfld Array16`1 BuildingManager::m_buildings IL_0544: ldfld Building[] Array16`1::m_buffer IL_0549: ldarg.1 IL_054A: ldind.u2 IL_054B: ldelema Building IL_0550: ldc.i4.0 IL_0551: stfld System.Byte Building::m_waterProblemTimer IL_0556: ldarg.0 IL_0557: ldfld Array16`1 BuildingManager::m_buildings IL_055C: ldfld Building[] Array16`1::m_buffer IL_0561: ldarg.1 IL_0562: ldind.u2 IL_0563: ldelema Building IL_0568: ldc.i4.0 IL_0569: stfld System.Byte Building::m_workerProblemTimer IL_056E: ldarg.0 IL_056F: ldfld Array16`1 BuildingManager::m_buildings IL_0574: ldfld Building[] Array16`1::m_buffer IL_0579: ldarg.1 IL_057A: ldind.u2 IL_057B: ldelema Building IL_0580: ldc.i4.0 IL_0581: stfld System.Byte Building::m_incomingProblemTimer IL_0586: ldarg.0 IL_0587: ldfld Array16`1 BuildingManager::m_buildings IL_058C: ldfld Building[] Array16`1::m_buffer IL_0591: ldarg.1 IL_0592: ldind.u2 IL_0593: ldelema Building IL_0598: ldc.i4.0 IL_0599: stfld System.Byte Building::m_outgoingProblemTimer IL_059E: ldarg.0 IL_059F: ldfld Array16`1 BuildingManager::m_buildings IL_05A4: ldfld Building[] Array16`1::m_buffer IL_05A9: ldarg.1 IL_05AA: ldind.u2 IL_05AB: ldelema Building IL_05B0: ldc.i4.0 IL_05B1: stfld System.Byte Building::m_healthProblemTimer IL_05B6: ldarg.0 IL_05B7: ldfld Array16`1 BuildingManager::m_buildings IL_05BC: ldfld Building[] Array16`1::m_buffer IL_05C1: ldarg.1 IL_05C2: ldind.u2 IL_05C3: ldelema Building IL_05C8: ldc.i4.0 IL_05C9: stfld System.Byte Building::m_deathProblemTimer IL_05CE: ldarg.0 IL_05CF: ldfld Array16`1 BuildingManager::m_buildings IL_05D4: ldfld Building[] Array16`1::m_buffer IL_05D9: ldarg.1 IL_05DA: ldind.u2 IL_05DB: ldelema Building IL_05E0: ldc.i4.0 IL_05E1: stfld System.Byte Building::m_serviceProblemTimer IL_05E6: ldarg.0 IL_05E7: ldfld Array16`1 BuildingManager::m_buildings IL_05EC: ldfld Building[] Array16`1::m_buffer IL_05F1: ldarg.1 IL_05F2: ldind.u2 IL_05F3: ldelema Building IL_05F8: ldc.i4.0 IL_05F9: stfld System.Byte Building::m_taxProblemTimer IL_05FE: ldarg.0 IL_05FF: ldfld Array16`1 BuildingManager::m_buildings IL_0604: ldfld Building[] Array16`1::m_buffer IL_0609: ldarg.1 IL_060A: ldind.u2 IL_060B: ldelema Building IL_0610: ldc.i4.0 IL_0611: stfld System.Byte Building::m_majorProblemTimer IL_0616: ldarg.0 IL_0617: ldfld Array16`1 BuildingManager::m_buildings IL_061C: ldfld Building[] Array16`1::m_buffer IL_0621: ldarg.1 IL_0622: ldind.u2 IL_0623: ldelema Building IL_0628: ldc.i4.0 IL_0629: stfld System.Byte Building::m_levelUpProgress IL_062E: ldarg.0 IL_062F: ldfld Array16`1 BuildingManager::m_buildings IL_0634: ldfld Building[] Array16`1::m_buffer IL_0639: ldarg.1 IL_063A: ldind.u2 IL_063B: ldelema Building IL_0640: ldc.i4.0 IL_0641: stfld System.Byte Building::m_level IL_0646: ldarg.3 IL_0647: ldfld BuildingAI BuildingInfo::m_buildingAI IL_064C: ldarg.1 IL_064D: ldind.u2 IL_064E: ldarg.0 IL_064F: ldfld Array16`1 BuildingManager::m_buildings IL_0654: ldfld Building[] Array16`1::m_buffer IL_0659: ldarg.1 IL_065A: ldind.u2 IL_065B: ldelema Building IL_0660: callvirt virtual System.Void BuildingAI::CreateBuilding(System.UInt16 buildingID, Building& data) IL_0665: ldarg.0 IL_0666: ldfld Array16`1 BuildingManager::m_buildings IL_066B: ldfld Building[] Array16`1::m_buffer IL_0670: ldarg.1 IL_0671: ldind.u2 IL_0672: ldelema Building IL_0677: ldarg.0 IL_0678: ldfld Array16`1 BuildingManager::m_buildings IL_067D: ldfld Building[] Array16`1::m_buffer IL_0682: ldarg.1 IL_0683: ldind.u2 IL_0684: ldelema Building IL_0689: ldfld Frame Building::m_frame0 IL_068E: stfld Frame Building::m_frame1 IL_0693: ldarg.0 IL_0694: ldfld Array16`1 BuildingManager::m_buildings IL_0699: ldfld Building[] Array16`1::m_buffer IL_069E: ldarg.1 IL_069F: ldind.u2 IL_06A0: ldelema Building IL_06A5: ldarg.0 IL_06A6: ldfld Array16`1 BuildingManager::m_buildings IL_06AB: ldfld Building[] Array16`1::m_buffer IL_06B0: ldarg.1 IL_06B1: ldind.u2 IL_06B2: ldelema Building IL_06B7: ldfld Frame Building::m_frame0 IL_06BC: stfld Frame Building::m_frame2 IL_06C1: ldarg.0 IL_06C2: ldfld Array16`1 BuildingManager::m_buildings IL_06C7: ldfld Building[] Array16`1::m_buffer IL_06CC: ldarg.1 IL_06CD: ldind.u2 IL_06CE: ldelema Building IL_06D3: ldarg.0 IL_06D4: ldfld Array16`1 BuildingManager::m_buildings IL_06D9: ldfld Building[] Array16`1::m_buffer IL_06DE: ldarg.1 IL_06DF: ldind.u2 IL_06E0: ldelema Building IL_06E5: ldfld Frame Building::m_frame0 IL_06EA: stfld Frame Building::m_frame3 IL_06EF: ldarg.0 IL_06F0: ldarg.1 IL_06F1: ldind.u2 IL_06F2: ldarg.0 IL_06F3: ldfld Array16`1 BuildingManager::m_buildings IL_06F8: ldfld Building[] Array16`1::m_buffer IL_06FD: ldarg.1 IL_06FE: ldind.u2 IL_06FF: ldelema Building IL_0704: call System.Void BuildingManager::InitializeBuilding(System.UInt16 building, Building& data) IL_0709: ldarg.0 IL_070A: ldarg.1 IL_070B: ldind.u2 IL_070C: call System.Void BuildingManager::UpdateBuilding(System.UInt16 building) IL_0711: ldarg.0 IL_0712: ldarg.1 IL_0713: ldind.u2 IL_0714: call System.Void BuildingManager::UpdateBuildingColors(System.UInt16 building) IL_0719: ldarg.0 IL_071A: ldarg.0 IL_071B: ldfld Array16`1 BuildingManager::m_buildings IL_0720: callvirt System.UInt32 Array16`1::ItemCount() IL_0725: ldc.i4.1 IL_0726: sub IL_0727: stfld System.Int32 BuildingManager::m_buildingCount IL_072C: ldarg.0 IL_072D: ldfld BuildingCreatedHandler BuildingManager::EventBuildingCreated IL_0732: brfalse => Label4 IL_0737: ldarg.0 IL_0738: ldfld BuildingCreatedHandler BuildingManager::EventBuildingCreated IL_073D: ldarg.1 IL_073E: ldind.u2 IL_073F: callvirt virtual System.Void BuildingCreatedHandler::Invoke(System.UInt16 building) IL_0744: Label4 IL_0744: ldc.i4.1 IL_0745: br => Label5 IL_074A: Label2 IL_074A: ldarg.1 IL_074B: ldc.i4.0 IL_074C: stind.i2 IL_074D: ldc.i4.0 IL_074E: // end original IL_074E: Label5 IL_074E: stloc 2 (System.Boolean) IL_0752: Label0 IL_0752: ldloc 2 (System.Boolean) IL_0756: ldarg 1 IL_075A: ldarg 3 IL_075E: call static System.Void RealTime.GameConnection.Patches.BuildingManager_CreateBuilding::Postfix(System.Boolean __result, System.UInt16& building, BuildingInfo info) IL_0763: ldloc 2 (System.Boolean) IL_0767: ret DONE ### Harmony id=RemoveAllAnimals, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.26 ### Patch: virtual System.Void LivestockAI::SimulationStep(System.UInt16 instanceID, CitizenInstance& data, UnityEngine.Vector3 physicsLodRefPos) ### Replacement: static System.Void LivestockAI::LivestockAI.SimulationStep_Patch1(LivestockAI this, System.UInt16 instanceID, CitizenInstance& data, UnityEngine.Vector3 physicsLodRefPos) IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: ldarg.2 IL_0003: ldarg.3 IL_0004: call virtual System.Void CitizenAI::SimulationStep(System.UInt16 instanceID, CitizenInstance& data, UnityEngine.Vector3 physicsLodRefPos) IL_0009: ldarg.2 IL_000A: ldfld System.UInt32 CitizenInstance::m_citizen IL_000F: brfalse => Label0 IL_0014: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0019: ldarg.2 IL_001A: ldfld System.UInt32 CitizenInstance::m_citizen IL_001F: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_0024: br => Label1 IL_0029: Label0 IL_0029: ldarg.2 IL_002A: ldfld System.UInt16 CitizenInstance::m_targetBuilding IL_002F: brtrue => Label2 IL_0034: ldarg.2 IL_0035: ldfld Flags CitizenInstance::m_flags IL_003A: ldc.i4 33554432 IL_003F: and IL_0040: brfalse => Label3 IL_0045: Label2 IL_0045: ldarg.2 IL_0046: ldfld Flags CitizenInstance::m_flags IL_004B: ldc.i4.s 16 IL_004D: and IL_004E: brtrue => Label4 IL_0053: Label3 IL_0053: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0058: ldarg.1 IL_0059: callvirt System.Void CitizenManager::ReleaseCitizenInstance(System.UInt16 instance) IL_005E: // end original IL_005E: Label1 IL_005E: Label4 IL_005E: ldarg 1 IL_0062: ldarg 2 IL_0066: call static System.Void RemoveAllAnimals.CustomAI.CustomCitizenAI::CitizenAISimulationStepPostFix(System.UInt16 instanceID, CitizenInstance& data) IL_006B: ret DONE ### Harmony id=RemoveAllAnimals, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.26 ### Patch: virtual System.Void PetAI::SimulationStep(System.UInt16 instanceID, CitizenInstance& data, UnityEngine.Vector3 physicsLodRefPos) ### Replacement: static System.Void PetAI::PetAI.SimulationStep_Patch1(PetAI this, System.UInt16 instanceID, CitizenInstance& data, UnityEngine.Vector3 physicsLodRefPos) IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: ldarg.2 IL_0003: ldarg.3 IL_0004: call virtual System.Void CitizenAI::SimulationStep(System.UInt16 instanceID, CitizenInstance& data, UnityEngine.Vector3 physicsLodRefPos) IL_0009: ldarg.2 IL_000A: ldfld System.UInt32 CitizenInstance::m_citizen IL_000F: brfalse => Label0 IL_0014: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0019: ldarg.2 IL_001A: ldfld System.UInt32 CitizenInstance::m_citizen IL_001F: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_0024: br => Label1 IL_0029: Label0 IL_0029: ldarg.2 IL_002A: ldfld System.UInt16 CitizenInstance::m_targetBuilding IL_002F: brfalse => Label2 IL_0034: ldarg.2 IL_0035: ldfld Flags CitizenInstance::m_flags IL_003A: ldc.i4.s 16 IL_003C: and IL_003D: brtrue => Label3 IL_0042: Label2 IL_0042: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0047: ldarg.1 IL_0048: callvirt System.Void CitizenManager::ReleaseCitizenInstance(System.UInt16 instance) IL_004D: // end original IL_004D: Label1 IL_004D: Label3 IL_004D: ldarg 1 IL_0051: ldarg 2 IL_0055: call static System.Void RemoveAllAnimals.CustomAI.CustomCitizenAI::CitizenAISimulationStepPostFix(System.UInt16 instanceID, CitizenInstance& data) IL_005A: ret DONE ### Harmony id=RemoveAllAnimals, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.26 ### Patch: virtual System.Void BirdAI::SimulationStep(System.UInt16 instanceID, CitizenInstance& data, UnityEngine.Vector3 physicsLodRefPos) ### Replacement: static System.Void BirdAI::BirdAI.SimulationStep_Patch1(BirdAI this, System.UInt16 instanceID, CitizenInstance& data, UnityEngine.Vector3 physicsLodRefPos) IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: ldarg.2 IL_0003: ldarg.3 IL_0004: call virtual System.Void CitizenAI::SimulationStep(System.UInt16 instanceID, CitizenInstance& data, UnityEngine.Vector3 physicsLodRefPos) IL_0009: ldarg.2 IL_000A: ldfld System.UInt32 CitizenInstance::m_citizen IL_000F: brfalse => Label0 IL_0014: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0019: ldarg.2 IL_001A: ldfld System.UInt32 CitizenInstance::m_citizen IL_001F: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_0024: br => Label1 IL_0029: Label0 IL_0029: ldarg.2 IL_002A: ldfld System.UInt16 CitizenInstance::m_targetBuilding IL_002F: brfalse => Label2 IL_0034: ldarg.2 IL_0035: ldfld Flags CitizenInstance::m_flags IL_003A: ldc.i4.s 16 IL_003C: and IL_003D: brtrue => Label3 IL_0042: Label2 IL_0042: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0047: ldarg.1 IL_0048: callvirt System.Void CitizenManager::ReleaseCitizenInstance(System.UInt16 instance) IL_004D: // end original IL_004D: Label1 IL_004D: Label3 IL_004D: ldarg 1 IL_0051: ldarg 2 IL_0055: call static System.Void RemoveAllAnimals.CustomAI.CustomCitizenAI::CitizenAISimulationStepPostFix(System.UInt16 instanceID, CitizenInstance& data) IL_005A: ret DONE ### Harmony id=RemoveAllAnimals, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.26 ### Patch: virtual System.Void WildlifeAI::SimulationStep(System.UInt16 instanceID, CitizenInstance& data, UnityEngine.Vector3 physicsLodRefPos) ### Replacement: static System.Void WildlifeAI::WildlifeAI.SimulationStep_Patch1(WildlifeAI this, System.UInt16 instanceID, CitizenInstance& data, UnityEngine.Vector3 physicsLodRefPos) IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: ldarg.2 IL_0003: ldarg.3 IL_0004: call virtual System.Void CitizenAI::SimulationStep(System.UInt16 instanceID, CitizenInstance& data, UnityEngine.Vector3 physicsLodRefPos) IL_0009: ldarg.2 IL_000A: ldfld System.UInt32 CitizenInstance::m_citizen IL_000F: brfalse => Label0 IL_0014: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0019: ldarg.2 IL_001A: ldfld System.UInt32 CitizenInstance::m_citizen IL_001F: callvirt System.Void CitizenManager::ReleaseCitizen(System.UInt32 citizen) IL_0024: br => Label1 IL_0029: Label0 IL_0029: ldarg.2 IL_002A: ldfld System.UInt16 CitizenInstance::m_targetBuilding IL_002F: brtrue => Label2 IL_0034: ldarg.2 IL_0035: ldfld Flags CitizenInstance::m_flags IL_003A: ldc.i4 33554432 IL_003F: and IL_0040: brfalse => Label3 IL_0045: Label2 IL_0045: ldarg.2 IL_0046: ldfld Flags CitizenInstance::m_flags IL_004B: ldc.i4.s 16 IL_004D: and IL_004E: brtrue => Label4 IL_0053: Label3 IL_0053: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0058: ldarg.1 IL_0059: callvirt System.Void CitizenManager::ReleaseCitizenInstance(System.UInt16 instance) IL_005E: // end original IL_005E: Label1 IL_005E: Label4 IL_005E: ldarg 1 IL_0062: ldarg 2 IL_0066: call static System.Void RemoveAllAnimals.CustomAI.CustomCitizenAI::CitizenAISimulationStepPostFix(System.UInt16 instanceID, CitizenInstance& data) IL_006B: ret DONE ### Harmony id=RemoveAllAnimals, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static HarmonyLib.Harmony CitiesHarmony.Harmony1SelfPatcher::CreateHarmony(System.Object oldHarmonyInstance), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003BD5C980 ### At 2022-09-14 06.36.26 ### Patch: System.Boolean CitizenManager::CreateCitizenInstance(System.UInt16& instance, ColossalFramework.Math.Randomizer& randomizer, CitizenInfo info, System.UInt32 citizen) ### Replacement: static System.Boolean CitizenManager::CitizenManager.CreateCitizenInstance_Patch1(CitizenManager this, System.UInt16& instance, ColossalFramework.Math.Randomizer& randomizer, CitizenInfo info, System.UInt32 citizen) IL_0000: Local var 0: System.UInt16 IL_0000: Local var 1: CitizenInstance/Frame IL_0000: Local var 2: UnityEngine.Color32 IL_0000: Local var 3: System.Boolean IL_0000: Local var 4: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 3 (System.Boolean) IL_0009: ldc.i4 0 IL_000E: stloc 4 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 4 (System.Boolean) IL_0017: ldloc 4 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldarg 3 IL_0024: ldloca 3 (System.Boolean) IL_0028: call static System.Boolean RemoveAllAnimals.CustomManager.CustomCitizenManager::CitizenManagerCreateCitizenInstancePrefix(CitizenInfo info, System.Boolean& __result) IL_002D: stloc 4 (System.Boolean) IL_0031: Label1 IL_0031: nop IL_0032: ldloc 4 (System.Boolean) IL_0036: brfalse => Label0 IL_003B: // start original IL_003B: ldarg.0 IL_003C: ldfld Array16`1 CitizenManager::m_instances IL_0041: ldloca.s 0 (System.UInt16) IL_0043: ldarg.2 IL_0044: callvirt System.Boolean Array16`1::CreateItem(System.UInt16& item, ColossalFramework.Math.Randomizer& r) IL_0049: brfalse => Label2 IL_004E: ldarg.1 IL_004F: ldloc.0 IL_0050: stind.i2 IL_0051: ldloca.s 1 (CitizenInstance+Frame) IL_0053: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero() IL_0058: stfld UnityEngine.Vector3 Frame::m_velocity IL_005D: ldloca.s 1 (CitizenInstance+Frame) IL_005F: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero() IL_0064: stfld UnityEngine.Vector3 Frame::m_position IL_0069: ldloca.s 1 (CitizenInstance+Frame) IL_006B: call static UnityEngine.Quaternion UnityEngine.Quaternion::get_identity() IL_0070: stfld UnityEngine.Quaternion Frame::m_rotation IL_0075: ldloca.s 1 (CitizenInstance+Frame) IL_0077: ldc.i4.0 IL_0078: stfld System.Boolean Frame::m_underground IL_007D: ldloca.s 1 (CitizenInstance+Frame) IL_007F: ldc.i4.0 IL_0080: stfld System.Boolean Frame::m_insideBuilding IL_0085: ldloca.s 1 (CitizenInstance+Frame) IL_0087: ldc.i4.0 IL_0088: stfld System.Boolean Frame::m_transition IL_008D: ldarg.0 IL_008E: ldfld Array16`1 CitizenManager::m_instances IL_0093: ldfld CitizenInstance[] Array16`1::m_buffer IL_0098: ldarg.1 IL_0099: ldind.u2 IL_009A: ldelema CitizenInstance IL_009F: ldc.i4.1 IL_00A0: stfld Flags CitizenInstance::m_flags IL_00A5: ldarg.0 IL_00A6: ldfld Array16`1 CitizenManager::m_instances IL_00AB: ldfld CitizenInstance[] Array16`1::m_buffer IL_00B0: ldarg.1 IL_00B1: ldind.u2 IL_00B2: ldelema CitizenInstance IL_00B7: ldarg.3 IL_00B8: call System.Void CitizenInstance::set_Info(CitizenInfo value) IL_00BD: ldarg.0 IL_00BE: ldfld Array16`1 CitizenManager::m_instances IL_00C3: ldfld CitizenInstance[] Array16`1::m_buffer IL_00C8: ldarg.1 IL_00C9: ldind.u2 IL_00CA: ldelema CitizenInstance IL_00CF: ldarg.s 4 IL_00D1: stfld System.UInt32 CitizenInstance::m_citizen IL_00D6: ldarg.0 IL_00D7: ldfld Array16`1 CitizenManager::m_instances IL_00DC: ldfld CitizenInstance[] Array16`1::m_buffer IL_00E1: ldarg.1 IL_00E2: ldind.u2 IL_00E3: ldelema CitizenInstance IL_00E8: ldloc.1 IL_00E9: stfld Frame CitizenInstance::m_frame0 IL_00EE: ldarg.0 IL_00EF: ldfld Array16`1 CitizenManager::m_instances IL_00F4: ldfld CitizenInstance[] Array16`1::m_buffer IL_00F9: ldarg.1 IL_00FA: ldind.u2 IL_00FB: ldelema CitizenInstance IL_0100: ldloc.1 IL_0101: stfld Frame CitizenInstance::m_frame1 IL_0106: ldarg.0 IL_0107: ldfld Array16`1 CitizenManager::m_instances IL_010C: ldfld CitizenInstance[] Array16`1::m_buffer IL_0111: ldarg.1 IL_0112: ldind.u2 IL_0113: ldelema CitizenInstance IL_0118: ldloc.1 IL_0119: stfld Frame CitizenInstance::m_frame2 IL_011E: ldarg.0 IL_011F: ldfld Array16`1 CitizenManager::m_instances IL_0124: ldfld CitizenInstance[] Array16`1::m_buffer IL_0129: ldarg.1 IL_012A: ldind.u2 IL_012B: ldelema CitizenInstance IL_0130: ldloc.1 IL_0131: stfld Frame CitizenInstance::m_frame3 IL_0136: ldarg.0 IL_0137: ldfld Array16`1 CitizenManager::m_instances IL_013C: ldfld CitizenInstance[] Array16`1::m_buffer IL_0141: ldarg.1 IL_0142: ldind.u2 IL_0143: ldelema CitizenInstance IL_0148: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero() IL_014D: call static UnityEngine.Vector4 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector3 v) IL_0152: stfld UnityEngine.Vector4 CitizenInstance::m_targetPos IL_0157: ldarg.0 IL_0158: ldfld Array16`1 CitizenManager::m_instances IL_015D: ldfld CitizenInstance[] Array16`1::m_buffer IL_0162: ldarg.1 IL_0163: ldind.u2 IL_0164: ldelema CitizenInstance IL_0169: call static UnityEngine.Vector2 UnityEngine.Vector2::get_zero() IL_016E: stfld UnityEngine.Vector2 CitizenInstance::m_targetDir IL_0173: ldarg.0 IL_0174: ldfld Array16`1 CitizenManager::m_instances IL_0179: ldfld CitizenInstance[] Array16`1::m_buffer IL_017E: ldarg.1 IL_017F: ldind.u2 IL_0180: ldelema CitizenInstance IL_0185: ldloca.s 2 (UnityEngine.Color32) IL_0187: initobj UnityEngine.Color32 IL_018D: ldloc.2 IL_018E: stfld UnityEngine.Color32 CitizenInstance::m_color IL_0193: ldarg.0 IL_0194: ldfld Array16`1 CitizenManager::m_instances IL_0199: ldfld CitizenInstance[] Array16`1::m_buffer IL_019E: ldarg.1 IL_019F: ldind.u2 IL_01A0: ldelema CitizenInstance IL_01A5: ldc.i4.0 IL_01A6: stfld System.UInt16 CitizenInstance::m_sourceBuilding IL_01AB: ldarg.0 IL_01AC: ldfld Array16`1 CitizenManager::m_instances IL_01B1: ldfld CitizenInstance[] Array16`1::m_buffer IL_01B6: ldarg.1 IL_01B7: ldind.u2 IL_01B8: ldelema CitizenInstance IL_01BD: ldc.i4.0 IL_01BE: stfld System.UInt16 CitizenInstance::m_targetBuilding IL_01C3: ldarg.0 IL_01C4: ldfld Array16`1 CitizenManager::m_instances IL_01C9: ldfld CitizenInstance[] Array16`1::m_buffer IL_01CE: ldarg.1 IL_01CF: ldind.u2 IL_01D0: ldelema CitizenInstance IL_01D5: ldc.i4.0 IL_01D6: stfld System.UInt16 CitizenInstance::m_nextGridInstance IL_01DB: ldarg.0 IL_01DC: ldfld Array16`1 CitizenManager::m_instances IL_01E1: ldfld CitizenInstance[] Array16`1::m_buffer IL_01E6: ldarg.1 IL_01E7: ldind.u2 IL_01E8: ldelema CitizenInstance IL_01ED: ldc.i4.0 IL_01EE: stfld System.UInt16 CitizenInstance::m_nextSourceInstance IL_01F3: ldarg.0 IL_01F4: ldfld Array16`1 CitizenManager::m_instances IL_01F9: ldfld CitizenInstance[] Array16`1::m_buffer IL_01FE: ldarg.1 IL_01FF: ldind.u2 IL_0200: ldelema CitizenInstance IL_0205: ldc.i4.0 IL_0206: stfld System.UInt16 CitizenInstance::m_nextTargetInstance IL_020B: ldarg.0 IL_020C: ldfld Array16`1 CitizenManager::m_instances IL_0211: ldfld CitizenInstance[] Array16`1::m_buffer IL_0216: ldarg.1 IL_0217: ldind.u2 IL_0218: ldelema CitizenInstance IL_021D: ldc.i4.0 IL_021E: stfld System.Byte CitizenInstance::m_lastFrame IL_0223: ldarg.0 IL_0224: ldfld Array16`1 CitizenManager::m_instances IL_0229: ldfld CitizenInstance[] Array16`1::m_buffer IL_022E: ldarg.1 IL_022F: ldind.u2 IL_0230: ldelema CitizenInstance IL_0235: ldc.i4.0 IL_0236: stfld System.Byte CitizenInstance::m_pathPositionIndex IL_023B: ldarg.0 IL_023C: ldfld Array16`1 CitizenManager::m_instances IL_0241: ldfld CitizenInstance[] Array16`1::m_buffer IL_0246: ldarg.1 IL_0247: ldind.u2 IL_0248: ldelema CitizenInstance IL_024D: ldc.i4.0 IL_024E: stfld System.Byte CitizenInstance::m_lastPathOffset IL_0253: ldarg.0 IL_0254: ldfld Array16`1 CitizenManager::m_instances IL_0259: ldfld CitizenInstance[] Array16`1::m_buffer IL_025E: ldarg.1 IL_025F: ldind.u2 IL_0260: ldelema CitizenInstance IL_0265: ldc.i4.0 IL_0266: stfld System.Byte CitizenInstance::m_waitCounter IL_026B: ldarg.0 IL_026C: ldfld Array16`1 CitizenManager::m_instances IL_0271: ldfld CitizenInstance[] Array16`1::m_buffer IL_0276: ldarg.1 IL_0277: ldind.u2 IL_0278: ldelema CitizenInstance IL_027D: ldc.i4.0 IL_027E: stfld System.Byte CitizenInstance::m_targetSeed IL_0283: ldarg.s 4 IL_0285: brfalse => Label3 IL_028A: ldarg.0 IL_028B: ldfld Array32`1 CitizenManager::m_citizens IL_0290: ldfld Citizen[] Array32`1::m_buffer IL_0295: ldarg.s 4 IL_0297: conv.u IL_0298: ldelema Citizen IL_029D: ldarg.1 IL_029E: ldind.u2 IL_029F: stfld System.UInt16 Citizen::m_instance IL_02A4: Label3 IL_02A4: ldarg.3 IL_02A5: ldfld CitizenAI CitizenInfo::m_citizenAI IL_02AA: ldarg.1 IL_02AB: ldind.u2 IL_02AC: ldarg.0 IL_02AD: ldfld Array16`1 CitizenManager::m_instances IL_02B2: ldfld CitizenInstance[] Array16`1::m_buffer IL_02B7: ldarg.1 IL_02B8: ldind.u2 IL_02B9: ldelema CitizenInstance IL_02BE: callvirt virtual System.Void CitizenAI::CreateInstance(System.UInt16 instanceID, CitizenInstance& data) IL_02C3: ldarg.0 IL_02C4: ldarg.0 IL_02C5: ldfld Array16`1 CitizenManager::m_instances IL_02CA: callvirt System.UInt32 Array16`1::ItemCount() IL_02CF: ldc.i4.1 IL_02D0: sub IL_02D1: stfld System.Int32 CitizenManager::m_instanceCount IL_02D6: ldc.i4.1 IL_02D7: br => Label4 IL_02DC: Label2 IL_02DC: ldarg.1 IL_02DD: ldc.i4.0 IL_02DE: stind.i2 IL_02DF: ldc.i4.0 IL_02E0: // end original IL_02E0: Label4 IL_02E0: stloc 3 (System.Boolean) IL_02E4: Label0 IL_02E4: ldloc 3 (System.Boolean) IL_02E8: ret DONE ### Harmony id=quboid.csl_mods.optimisedoutsideconnections, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static System.Void CargoHoldFix.Patcher::PatchAll(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F2A3430 ### At 2022-09-14 06.36.26 ### Patch: virtual System.Void CargoPlaneAI::SimulationStep(System.UInt16 vehicleID, Vehicle& data, UnityEngine.Vector3 physicsLodRefPos) ### Replacement: static System.Void CargoPlaneAI::CargoPlaneAI.SimulationStep_Patch0(CargoPlaneAI this, System.UInt16 vehicleID, Vehicle& data, UnityEngine.Vector3 physicsLodRefPos) IL_0000: Local var 0: System.Boolean IL_0000: Local var 1: System.Byte IL_0000: // start original IL_0000: ldarg.2 IL_0001: ldfld Flags Vehicle::m_flags IL_0006: ldc.i4 131072 IL_000B: and IL_000C: brfalse => Label0 IL_0011: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0016: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_001B: ldc.i4 16 IL_0020: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0025: ldc.i4.0 IL_0026: cgt IL_0028: stloc.0 IL_0029: ldloc.0 IL_002A: brtrue => Label1 IL_002F: ldarg.2 IL_0030: ldfld System.UInt16 Vehicle::m_sourceBuilding IL_0035: brfalse => Label2 IL_003A: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_003F: ldfld Array16`1 BuildingManager::m_buildings IL_0044: ldfld Building[] Array16`1::m_buffer IL_0049: ldarg.2 IL_004A: ldfld System.UInt16 Vehicle::m_sourceBuilding IL_004F: ldelema Building IL_0054: ldfld Flags Building::m_flags IL_0059: ldc.i4 131072 IL_005E: and IL_005F: brtrue => Label3 IL_0064: ldc.i4.1 IL_0065: stloc.0 IL_0066: Label1 IL_0066: Label2 IL_0066: Label3 IL_0066: ldloc.0 IL_0067: brtrue => Label4 IL_006C: ldarg.2 IL_006D: ldfld System.UInt16 Vehicle::m_targetBuilding IL_0072: brfalse => Label5 IL_0077: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_007C: ldfld Array16`1 BuildingManager::m_buildings IL_0081: ldfld Building[] Array16`1::m_buffer IL_0086: ldarg.2 IL_0087: ldfld System.UInt16 Vehicle::m_targetBuilding IL_008C: ldelema Building IL_0091: ldfld Flags Building::m_flags IL_0096: ldc.i4 131072 IL_009B: and IL_009C: brtrue => Label6 IL_00A1: ldc.i4.1 IL_00A2: stloc.0 IL_00A3: Label4 IL_00A3: Label5 IL_00A3: Label6 IL_00A3: ldloc.0 IL_00A4: brtrue => Label7 IL_00A9: ldarg.2 IL_00AA: ldfld System.UInt16 Vehicle::m_transferSize IL_00AF: ldarg.0 IL_00B0: ldfld System.Int32 CargoPlaneAI::m_cargoCapacity IL_00B5: blt => Label8 IL_00BA: ldarg.2 IL_00BB: ldc.i4 255 IL_00C0: stfld System.Byte Vehicle::m_waitCounter IL_00C5: br => Label9 IL_00CA: Label8 IL_00CA: ldarg.2 IL_00CB: ldarg.2 IL_00CC: ldfld System.Byte Vehicle::m_waitCounter IL_00D1: ldc.i4.1 IL_00D2: add IL_00D3: ldc.i4 255 IL_00D8: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_00DD: conv.u1 IL_00DE: stfld System.Byte Vehicle::m_waitCounter IL_00E3: Label9 IL_00E3: ldarg.2 IL_00E4: ldfld System.Byte Vehicle::m_waitCounter IL_00E9: ldc.i4 255 IL_00EE: bne.un => Label10 IL_00F3: ldarg.2 IL_00F4: ldfld Flags Vehicle::m_flags IL_00F9: ldc.i4.4 IL_00FA: and IL_00FB: brtrue => Label11 IL_0100: ldarg.0 IL_0101: ldarg.2 IL_0102: call UnityEngine.Vector3 Vehicle::GetLastFramePosition() IL_0107: callvirt virtual System.Boolean VehicleAI::CanSpawnAt(UnityEngine.Vector3 pos) IL_010C: brfalse => Label12 IL_0111: Label11 IL_0111: ldarg.2 IL_0112: dup IL_0113: ldfld Flags Vehicle::m_flags IL_0118: ldc.i4 -131073 IL_011D: and IL_011E: stfld Flags Vehicle::m_flags IL_0123: ldarg.2 IL_0124: dup IL_0125: ldfld Flags Vehicle::m_flags IL_012A: ldc.i4 1024 IL_012F: or IL_0130: stfld Flags Vehicle::m_flags IL_0135: ldarg.2 IL_0136: ldc.i4.0 IL_0137: stfld System.Byte Vehicle::m_waitCounter IL_013C: ldarg.0 IL_013D: ldarg.1 IL_013E: ldarg.2 IL_013F: callvirt virtual System.Boolean VehicleAI::StartPathFind(System.UInt16 vehicleID, Vehicle& vehicleData) IL_0144: pop IL_0145: Label7 IL_0145: Label10 IL_0145: Label12 IL_0145: br => Label13 IL_014A: Label0 IL_014A: ldarg.2 IL_014B: ldfld Flags Vehicle::m_flags IL_0150: ldc.i4 512 IL_0155: and IL_0156: brfalse => Label14 IL_015B: ldarg.2 IL_015C: ldfld Flags Vehicle::m_flags IL_0161: ldc.i4.4 IL_0162: and IL_0163: brfalse => Label15 IL_0168: ldarg.2 IL_0169: dup IL_016A: ldfld System.Byte Vehicle::m_waitCounter IL_016F: ldc.i4.1 IL_0170: add IL_0171: conv.u1 IL_0172: dup IL_0173: stloc.1 IL_0174: stfld System.Byte Vehicle::m_waitCounter IL_0179: ldloc.1 IL_017A: ldarg.0 IL_017B: ldarg.2 IL_017C: ldfld System.UInt16 Vehicle::m_targetBuilding IL_0181: call System.Int32 CargoPlaneAI::GetCargoPlaneLoadingTime(System.UInt16 building) IL_0186: bne.un => Label16 IL_018B: ldarg.2 IL_018C: dup IL_018D: ldfld Flags Vehicle::m_flags IL_0192: ldc.i4 -33554945 IL_0197: and IL_0198: stfld Flags Vehicle::m_flags IL_019D: ldarg.2 IL_019E: dup IL_019F: ldfld Flags Vehicle::m_flags IL_01A4: ldc.i4 1024 IL_01A9: or IL_01AA: stfld Flags Vehicle::m_flags IL_01AF: ldarg.2 IL_01B0: ldc.i4.0 IL_01B1: stfld System.Byte Vehicle::m_waitCounter IL_01B6: Label15 IL_01B6: Label16 IL_01B6: br => Label17 IL_01BB: Label14 IL_01BB: ldarg.2 IL_01BC: ldfld Flags Vehicle::m_flags IL_01C1: ldc.i4 262144 IL_01C6: and IL_01C7: brtrue => Label18 IL_01CC: ldarg.2 IL_01CD: ldfld System.UInt16 Vehicle::m_targetBuilding IL_01D2: brfalse => Label19 IL_01D7: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_01DC: ldfld Array16`1 BuildingManager::m_buildings IL_01E1: ldfld Building[] Array16`1::m_buffer IL_01E6: ldarg.2 IL_01E7: ldfld System.UInt16 Vehicle::m_targetBuilding IL_01EC: ldelema Building IL_01F1: ldfld Flags Building::m_flags IL_01F6: ldc.i4 131072 IL_01FB: and IL_01FC: brtrue => Label20 IL_0201: ldarg.0 IL_0202: ldarg.1 IL_0203: ldarg.2 IL_0204: ldc.i4.0 IL_0205: callvirt virtual System.Void VehicleAI::SetTarget(System.UInt16 vehicleID, Vehicle& data, System.UInt16 targetBuilding) IL_020A: Label13 IL_020A: Label17 IL_020A: Label18 IL_020A: Label19 IL_020A: Label20 IL_020A: ldarg.0 IL_020B: ldarg.1 IL_020C: ldarg.2 IL_020D: ldarg.3 IL_020E: call virtual System.Void AircraftAI::SimulationStep(System.UInt16 vehicleID, Vehicle& data, UnityEngine.Vector3 physicsLodRefPos) IL_0213: // end original IL_0213: ret DONE ### Patch: virtual System.Void CargoShipAI::SimulationStep(System.UInt16 vehicleID, Vehicle& data, UnityEngine.Vector3 physicsLodRefPos) ### Replacement: static System.Void CargoShipAI::CargoShipAI.SimulationStep_Patch0(CargoShipAI this, System.UInt16 vehicleID, Vehicle& data, UnityEngine.Vector3 physicsLodRefPos) IL_0000: Local var 0: System.Boolean IL_0000: Local var 1: System.Byte IL_0000: // start original IL_0000: ldarg.2 IL_0001: ldfld Flags Vehicle::m_flags IL_0006: ldc.i4 131072 IL_000B: and IL_000C: brfalse => Label0 IL_0011: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0016: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_001B: ldc.i4 16 IL_0020: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0025: ldc.i4.0 IL_0026: cgt IL_0028: stloc.0 IL_0029: ldloc.0 IL_002A: brtrue => Label1 IL_002F: ldarg.2 IL_0030: ldfld System.UInt16 Vehicle::m_sourceBuilding IL_0035: brfalse => Label2 IL_003A: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_003F: ldfld Array16`1 BuildingManager::m_buildings IL_0044: ldfld Building[] Array16`1::m_buffer IL_0049: ldarg.2 IL_004A: ldfld System.UInt16 Vehicle::m_sourceBuilding IL_004F: ldelema Building IL_0054: ldfld Flags Building::m_flags IL_0059: ldc.i4 131072 IL_005E: and IL_005F: brtrue => Label3 IL_0064: ldc.i4.1 IL_0065: stloc.0 IL_0066: Label1 IL_0066: Label2 IL_0066: Label3 IL_0066: ldloc.0 IL_0067: brtrue => Label4 IL_006C: ldarg.2 IL_006D: ldfld System.UInt16 Vehicle::m_targetBuilding IL_0072: brfalse => Label5 IL_0077: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_007C: ldfld Array16`1 BuildingManager::m_buildings IL_0081: ldfld Building[] Array16`1::m_buffer IL_0086: ldarg.2 IL_0087: ldfld System.UInt16 Vehicle::m_targetBuilding IL_008C: ldelema Building IL_0091: ldfld Flags Building::m_flags IL_0096: ldc.i4 131072 IL_009B: and IL_009C: brtrue => Label6 IL_00A1: ldc.i4.1 IL_00A2: stloc.0 IL_00A3: Label4 IL_00A3: Label5 IL_00A3: Label6 IL_00A3: ldloc.0 IL_00A4: brtrue => Label7 IL_00A9: ldarg.2 IL_00AA: ldfld System.UInt16 Vehicle::m_transferSize IL_00AF: ldarg.0 IL_00B0: ldfld System.Int32 CargoShipAI::m_cargoCapacity IL_00B5: blt => Label8 IL_00BA: ldarg.2 IL_00BB: ldc.i4 255 IL_00C0: stfld System.Byte Vehicle::m_waitCounter IL_00C5: br => Label9 IL_00CA: Label8 IL_00CA: ldarg.2 IL_00CB: ldarg.2 IL_00CC: ldfld System.Byte Vehicle::m_waitCounter IL_00D1: ldc.i4.1 IL_00D2: add IL_00D3: ldc.i4 255 IL_00D8: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_00DD: conv.u1 IL_00DE: stfld System.Byte Vehicle::m_waitCounter IL_00E3: Label9 IL_00E3: ldarg.2 IL_00E4: ldfld System.Byte Vehicle::m_waitCounter IL_00E9: ldc.i4 255 IL_00EE: bne.un => Label10 IL_00F3: ldarg.2 IL_00F4: ldfld Flags Vehicle::m_flags IL_00F9: ldc.i4.4 IL_00FA: and IL_00FB: brtrue => Label11 IL_0100: ldarg.0 IL_0101: ldarg.2 IL_0102: call UnityEngine.Vector3 Vehicle::GetLastFramePosition() IL_0107: callvirt virtual System.Boolean VehicleAI::CanSpawnAt(UnityEngine.Vector3 pos) IL_010C: brfalse => Label12 IL_0111: Label11 IL_0111: ldarg.2 IL_0112: dup IL_0113: ldfld Flags Vehicle::m_flags IL_0118: ldc.i4 -131073 IL_011D: and IL_011E: stfld Flags Vehicle::m_flags IL_0123: ldarg.2 IL_0124: dup IL_0125: ldfld Flags Vehicle::m_flags IL_012A: ldc.i4 1024 IL_012F: or IL_0130: stfld Flags Vehicle::m_flags IL_0135: ldarg.2 IL_0136: ldc.i4.0 IL_0137: stfld System.Byte Vehicle::m_waitCounter IL_013C: ldarg.0 IL_013D: ldarg.1 IL_013E: ldarg.2 IL_013F: callvirt virtual System.Boolean VehicleAI::StartPathFind(System.UInt16 vehicleID, Vehicle& vehicleData) IL_0144: pop IL_0145: Label7 IL_0145: Label10 IL_0145: Label12 IL_0145: br => Label13 IL_014A: Label0 IL_014A: ldarg.2 IL_014B: ldfld Flags Vehicle::m_flags IL_0150: ldc.i4 512 IL_0155: and IL_0156: brfalse => Label14 IL_015B: ldarg.2 IL_015C: ldfld Flags Vehicle::m_flags IL_0161: ldc.i4.4 IL_0162: and IL_0163: brfalse => Label15 IL_0168: ldarg.2 IL_0169: dup IL_016A: ldfld System.Byte Vehicle::m_waitCounter IL_016F: ldc.i4.1 IL_0170: add IL_0171: conv.u1 IL_0172: dup IL_0173: stloc.1 IL_0174: stfld System.Byte Vehicle::m_waitCounter IL_0179: ldloc.1 IL_017A: ldc.i4.s 16 IL_017C: bne.un => Label16 IL_0181: ldarg.2 IL_0182: dup IL_0183: ldfld Flags Vehicle::m_flags IL_0188: ldc.i4 -33554945 IL_018D: and IL_018E: stfld Flags Vehicle::m_flags IL_0193: ldarg.2 IL_0194: dup IL_0195: ldfld Flags Vehicle::m_flags IL_019A: ldc.i4 1024 IL_019F: or IL_01A0: stfld Flags Vehicle::m_flags IL_01A5: ldarg.2 IL_01A6: ldc.i4.0 IL_01A7: stfld System.Byte Vehicle::m_waitCounter IL_01AC: Label15 IL_01AC: Label16 IL_01AC: br => Label17 IL_01B1: Label14 IL_01B1: ldarg.2 IL_01B2: ldfld Flags Vehicle::m_flags IL_01B7: ldc.i4 262144 IL_01BC: and IL_01BD: brtrue => Label18 IL_01C2: ldarg.2 IL_01C3: ldfld System.UInt16 Vehicle::m_targetBuilding IL_01C8: brfalse => Label19 IL_01CD: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_01D2: ldfld Array16`1 BuildingManager::m_buildings IL_01D7: ldfld Building[] Array16`1::m_buffer IL_01DC: ldarg.2 IL_01DD: ldfld System.UInt16 Vehicle::m_targetBuilding IL_01E2: ldelema Building IL_01E7: ldfld Flags Building::m_flags IL_01EC: ldc.i4 131072 IL_01F1: and IL_01F2: brtrue => Label20 IL_01F7: ldarg.0 IL_01F8: ldarg.1 IL_01F9: ldarg.2 IL_01FA: ldc.i4.0 IL_01FB: callvirt virtual System.Void VehicleAI::SetTarget(System.UInt16 vehicleID, Vehicle& data, System.UInt16 targetBuilding) IL_0200: Label13 IL_0200: Label17 IL_0200: Label18 IL_0200: Label19 IL_0200: Label20 IL_0200: ldarg.0 IL_0201: ldarg.1 IL_0202: ldarg.2 IL_0203: ldarg.3 IL_0204: call virtual System.Void ShipAI::SimulationStep(System.UInt16 vehicleID, Vehicle& data, UnityEngine.Vector3 physicsLodRefPos) IL_0209: // end original IL_0209: ret DONE ### Patch: virtual System.Void CargoTrainAI::SimulationStep(System.UInt16 vehicleID, Vehicle& data, UnityEngine.Vector3 physicsLodRefPos) ### Replacement: static System.Void CargoTrainAI::CargoTrainAI.SimulationStep_Patch0(CargoTrainAI this, System.UInt16 vehicleID, Vehicle& data, UnityEngine.Vector3 physicsLodRefPos) IL_0000: Local var 0: System.Boolean IL_0000: Local var 1: System.Byte IL_0000: // start original IL_0000: ldarg.2 IL_0001: ldfld Flags Vehicle::m_flags IL_0006: ldc.i4 131072 IL_000B: and IL_000C: brfalse => Label0 IL_0011: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0016: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_001B: ldc.i4 8 IL_0020: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0025: ldc.i4.0 IL_0026: cgt IL_0028: stloc.0 IL_0029: ldloc.0 IL_002A: brtrue => Label1 IL_002F: ldarg.2 IL_0030: ldfld System.UInt16 Vehicle::m_sourceBuilding IL_0035: brfalse => Label2 IL_003A: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_003F: ldfld Array16`1 BuildingManager::m_buildings IL_0044: ldfld Building[] Array16`1::m_buffer IL_0049: ldarg.2 IL_004A: ldfld System.UInt16 Vehicle::m_sourceBuilding IL_004F: ldelema Building IL_0054: ldfld Flags Building::m_flags IL_0059: ldc.i4 131072 IL_005E: and IL_005F: brtrue => Label3 IL_0064: ldc.i4.1 IL_0065: stloc.0 IL_0066: Label1 IL_0066: Label2 IL_0066: Label3 IL_0066: ldloc.0 IL_0067: brtrue => Label4 IL_006C: ldarg.2 IL_006D: ldfld System.UInt16 Vehicle::m_targetBuilding IL_0072: brfalse => Label5 IL_0077: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_007C: ldfld Array16`1 BuildingManager::m_buildings IL_0081: ldfld Building[] Array16`1::m_buffer IL_0086: ldarg.2 IL_0087: ldfld System.UInt16 Vehicle::m_targetBuilding IL_008C: ldelema Building IL_0091: ldfld Flags Building::m_flags IL_0096: ldc.i4 131072 IL_009B: and IL_009C: brtrue => Label6 IL_00A1: ldc.i4.1 IL_00A2: stloc.0 IL_00A3: Label4 IL_00A3: Label5 IL_00A3: Label6 IL_00A3: ldloc.0 IL_00A4: brtrue => Label7 IL_00A9: ldarg.2 IL_00AA: ldfld System.UInt16 Vehicle::m_transferSize IL_00AF: ldarg.0 IL_00B0: ldfld System.Int32 CargoTrainAI::m_cargoCapacity IL_00B5: blt => Label8 IL_00BA: ldarg.2 IL_00BB: ldc.i4 255 IL_00C0: stfld System.Byte Vehicle::m_waitCounter IL_00C5: br => Label9 IL_00CA: Label8 IL_00CA: ldarg.2 IL_00CB: ldarg.2 IL_00CC: ldfld System.Byte Vehicle::m_waitCounter IL_00D1: ldc.i4.1 IL_00D2: add IL_00D3: ldc.i4 255 IL_00D8: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_00DD: conv.u1 IL_00DE: stfld System.Byte Vehicle::m_waitCounter IL_00E3: Label9 IL_00E3: ldarg.2 IL_00E4: ldfld System.Byte Vehicle::m_waitCounter IL_00E9: ldc.i4 255 IL_00EE: bne.un => Label10 IL_00F3: ldarg.2 IL_00F4: ldfld Flags Vehicle::m_flags IL_00F9: ldc.i4.4 IL_00FA: and IL_00FB: brtrue => Label11 IL_0100: ldarg.0 IL_0101: ldarg.2 IL_0102: call UnityEngine.Vector3 Vehicle::GetLastFramePosition() IL_0107: callvirt virtual System.Boolean VehicleAI::CanSpawnAt(UnityEngine.Vector3 pos) IL_010C: brfalse => Label12 IL_0111: Label11 IL_0111: ldarg.2 IL_0112: dup IL_0113: ldfld Flags Vehicle::m_flags IL_0118: ldc.i4 -131073 IL_011D: and IL_011E: stfld Flags Vehicle::m_flags IL_0123: ldarg.2 IL_0124: ldc.i4.0 IL_0125: stfld System.Byte Vehicle::m_waitCounter IL_012A: ldarg.0 IL_012B: ldarg.1 IL_012C: ldarg.2 IL_012D: callvirt virtual System.Boolean VehicleAI::StartPathFind(System.UInt16 vehicleID, Vehicle& vehicleData) IL_0132: pop IL_0133: Label7 IL_0133: Label10 IL_0133: Label12 IL_0133: br => Label13 IL_0138: Label0 IL_0138: ldarg.2 IL_0139: ldfld Flags Vehicle::m_flags IL_013E: ldc.i4 512 IL_0143: and IL_0144: brfalse => Label14 IL_0149: ldarg.2 IL_014A: ldfld Flags Vehicle::m_flags IL_014F: ldc.i4.4 IL_0150: and IL_0151: brfalse => Label15 IL_0156: ldarg.2 IL_0157: dup IL_0158: ldfld System.Byte Vehicle::m_waitCounter IL_015D: ldc.i4.1 IL_015E: add IL_015F: conv.u1 IL_0160: dup IL_0161: stloc.1 IL_0162: stfld System.Byte Vehicle::m_waitCounter IL_0167: ldloc.1 IL_0168: ldc.i4.s 16 IL_016A: bne.un => Label16 IL_016F: ldarg.2 IL_0170: dup IL_0171: ldfld Flags Vehicle::m_flags IL_0176: ldc.i4 -33554945 IL_017B: and IL_017C: stfld Flags Vehicle::m_flags IL_0181: ldarg.2 IL_0182: ldc.i4.0 IL_0183: stfld System.Byte Vehicle::m_waitCounter IL_0188: Label15 IL_0188: Label16 IL_0188: br => Label17 IL_018D: Label14 IL_018D: ldarg.2 IL_018E: ldfld Flags Vehicle::m_flags IL_0193: ldc.i4 262144 IL_0198: and IL_0199: brtrue => Label18 IL_019E: ldarg.2 IL_019F: ldfld System.UInt16 Vehicle::m_targetBuilding IL_01A4: brfalse => Label19 IL_01A9: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_01AE: ldfld Array16`1 BuildingManager::m_buildings IL_01B3: ldfld Building[] Array16`1::m_buffer IL_01B8: ldarg.2 IL_01B9: ldfld System.UInt16 Vehicle::m_targetBuilding IL_01BE: ldelema Building IL_01C3: ldfld Flags Building::m_flags IL_01C8: ldc.i4 131072 IL_01CD: and IL_01CE: brtrue => Label20 IL_01D3: ldarg.0 IL_01D4: ldarg.1 IL_01D5: ldarg.2 IL_01D6: ldc.i4.0 IL_01D7: callvirt virtual System.Void VehicleAI::SetTarget(System.UInt16 vehicleID, Vehicle& data, System.UInt16 targetBuilding) IL_01DC: Label13 IL_01DC: Label17 IL_01DC: Label18 IL_01DC: Label19 IL_01DC: Label20 IL_01DC: ldarg.0 IL_01DD: ldarg.1 IL_01DE: ldarg.2 IL_01DF: ldarg.3 IL_01E0: call virtual System.Void TrainAI::SimulationStep(System.UInt16 vehicleID, Vehicle& data, UnityEngine.Vector3 physicsLodRefPos) IL_01E5: // end original IL_01E5: ret DONE ### Patch: virtual System.Void HumanAI::SimulationStep(System.UInt16 instanceID, CitizenInstance& citizenData, Frame& frameData, System.Boolean lodPhysics) ### Replacement: static System.Void HumanAI::HumanAI.SimulationStep_Patch0(HumanAI this, System.UInt16 instanceID, CitizenInstance& citizenData, Frame& frameData, System.Boolean lodPhysics) IL_0000: Local var 0: System.Single IL_0000: Local var 1: System.Single IL_0000: Local var 2: System.Single IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: System.Single IL_0000: Local var 6: System.UInt32 IL_0000: Local var 7: UnityEngine.Vector3 IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Single IL_0000: Local var 11: System.Boolean IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Byte IL_0000: Local var 14: PathUnit/Position IL_0000: Local var 15: System.Boolean IL_0000: Local var 16: System.Boolean IL_0000: Local var 17: TransferManager/TransferOffer IL_0000: Local var 18: NetManager IL_0000: Local var 19: System.Byte IL_0000: Local var 20: PathManager IL_0000: Local var 21: PathUnit/Position IL_0000: Local var 22: System.Single IL_0000: Local var 23: System.Single IL_0000: Local var 24: System.Single IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: System.Single IL_0000: Local var 30: System.Boolean IL_0000: Local var 31: System.UInt16 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: System.Single IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: System.Single IL_0000: // start original IL_0000: ldarg.2 IL_0001: ldfld Flags CitizenInstance::m_flags IL_0006: ldc.i4 33554432 IL_000B: and IL_000C: brfalse => Label0 IL_0011: ldarg.3 IL_0012: dup IL_0013: ldfld UnityEngine.Vector3 Frame::m_position IL_0018: ldarg.3 IL_0019: ldfld UnityEngine.Vector3 Frame::m_velocity IL_001E: ldc.r4 0.5 IL_0023: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0028: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_002D: stfld UnityEngine.Vector3 Frame::m_position IL_0032: ldarg.3 IL_0033: ldflda UnityEngine.Vector3 Frame::m_velocity IL_0038: dup IL_0039: ldfld System.Single UnityEngine.Vector3::y IL_003E: ldc.r4 2.4525 IL_0043: sub IL_0044: stfld System.Single UnityEngine.Vector3::y IL_0049: ldarg.3 IL_004A: dup IL_004B: ldfld UnityEngine.Vector3 Frame::m_velocity IL_0050: ldc.r4 0.99 IL_0055: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_005A: stfld UnityEngine.Vector3 Frame::m_velocity IL_005F: ldarg.3 IL_0060: dup IL_0061: ldfld UnityEngine.Vector3 Frame::m_position IL_0066: ldarg.3 IL_0067: ldfld UnityEngine.Vector3 Frame::m_velocity IL_006C: ldc.r4 0.5 IL_0071: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0076: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_007B: stfld UnityEngine.Vector3 Frame::m_position IL_0080: call static TerrainManager ColossalFramework.Singleton`1::get_instance() IL_0085: ldarg.3 IL_0086: ldfld UnityEngine.Vector3 Frame::m_position IL_008B: callvirt System.Single TerrainManager::SampleDetailHeight(UnityEngine.Vector3 worldPos) IL_0090: stloc.0 IL_0091: ldloc.0 IL_0092: ldarg.3 IL_0093: ldflda UnityEngine.Vector3 Frame::m_position IL_0098: ldfld System.Single UnityEngine.Vector3::y IL_009D: ble.un => Label1 IL_00A2: ldarg.3 IL_00A3: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero() IL_00A8: stfld UnityEngine.Vector3 Frame::m_velocity IL_00AD: ldarg.3 IL_00AE: ldflda UnityEngine.Vector3 Frame::m_position IL_00B3: ldloc.0 IL_00B4: stfld System.Single UnityEngine.Vector3::y IL_00B9: ldarg.2 IL_00BA: ldarg.2 IL_00BB: ldfld System.Byte CitizenInstance::m_waitCounter IL_00C0: ldc.i4.1 IL_00C1: add IL_00C2: ldc.i4 255 IL_00C7: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_00CC: conv.u1 IL_00CD: stfld System.Byte CitizenInstance::m_waitCounter IL_00D2: ldarg.2 IL_00D3: ldfld System.Byte CitizenInstance::m_waitCounter IL_00D8: ldc.i4.s 100 IL_00DA: blt => Label2 IL_00DF: ldarg.2 IL_00E0: ldarg.1 IL_00E1: call System.Void CitizenInstance::Unspawn(System.UInt16 instanceID) IL_00E6: br => Label114 IL_00EB: Label2 IL_00EB: br => Label3 IL_00F0: Label1 IL_00F0: ldarg.2 IL_00F1: ldc.i4.0 IL_00F2: stfld System.Byte CitizenInstance::m_waitCounter IL_00F7: Label3 IL_00F7: br => Label4 IL_00FC: Label0 IL_00FC: ldarg.2 IL_00FD: ldfld Flags CitizenInstance::m_flags IL_0102: ldc.i4 67108864 IL_0107: and IL_0108: brfalse => Label5 IL_010D: ldarg.3 IL_010E: dup IL_010F: ldfld UnityEngine.Vector3 Frame::m_position IL_0114: ldarg.3 IL_0115: ldfld UnityEngine.Vector3 Frame::m_velocity IL_011A: ldc.r4 0.5 IL_011F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0124: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0129: stfld UnityEngine.Vector3 Frame::m_position IL_012E: ldarg.2 IL_012F: ldarg.2 IL_0130: ldfld System.Byte CitizenInstance::m_waitCounter IL_0135: ldc.i4.1 IL_0136: add IL_0137: ldc.i4 255 IL_013C: call static System.Int32 UnityEngine.Mathf::Min(System.Int32 a, System.Int32 b) IL_0141: conv.u1 IL_0142: stfld System.Byte CitizenInstance::m_waitCounter IL_0147: call static TerrainManager ColossalFramework.Singleton`1::get_instance() IL_014C: ldarg.3 IL_014D: ldfld UnityEngine.Vector3 Frame::m_position IL_0152: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0157: ldloca.s 1 (System.Single) IL_0159: ldloca.s 2 (System.Single) IL_015B: ldloca.s 3 (UnityEngine.Vector3) IL_015D: ldloca.s 4 (UnityEngine.Vector3) IL_015F: callvirt System.Boolean TerrainManager::SampleWaterData(UnityEngine.Vector2 position, System.Single& terrainHeight, System.Single& waterHeight, UnityEngine.Vector3& velocity, UnityEngine.Vector3& normal) IL_0164: pop IL_0165: ldloc.2 IL_0166: ldloc.1 IL_0167: sub IL_0168: ldc.r4 1 IL_016D: ble.un => Label6 IL_0172: ldloc.3 IL_0173: ldc.r4 0.2666667 IL_0178: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_017D: stloc.3 IL_017E: ldarg.3 IL_017F: ldarg.3 IL_0180: ldfld UnityEngine.Vector3 Frame::m_velocity IL_0185: ldloc.3 IL_0186: ldc.r4 1 IL_018B: call static UnityEngine.Vector3 UnityEngine.Vector3::MoveTowards(UnityEngine.Vector3 current, UnityEngine.Vector3 target, System.Single maxDistanceDelta) IL_0190: stfld UnityEngine.Vector3 Frame::m_velocity IL_0195: ldarg.2 IL_0196: ldfld System.Byte CitizenInstance::m_waitCounter IL_019B: conv.r4 IL_019C: ldc.r4 0.05 IL_01A1: mul IL_01A2: ldc.r4 1 IL_01A7: ldloc.2 IL_01A8: ldloc.1 IL_01A9: sub IL_01AA: call static System.Single UnityEngine.Mathf::Clamp(System.Single value, System.Single min, System.Single max) IL_01AF: stloc.s 5 (System.Single) IL_01B1: ldarg.3 IL_01B2: ldflda UnityEngine.Vector3 Frame::m_velocity IL_01B7: ldarg.3 IL_01B8: ldflda UnityEngine.Vector3 Frame::m_velocity IL_01BD: ldfld System.Single UnityEngine.Vector3::y IL_01C2: ldc.r4 0.5 IL_01C7: mul IL_01C8: ldloc.2 IL_01C9: ldloc.s 5 (System.Single) IL_01CB: sub IL_01CC: ldarg.3 IL_01CD: ldflda UnityEngine.Vector3 Frame::m_position IL_01D2: ldfld System.Single UnityEngine.Vector3::y IL_01D7: sub IL_01D8: ldc.r4 0.5 IL_01DD: mul IL_01DE: add IL_01DF: stfld System.Single UnityEngine.Vector3::y IL_01E4: br => Label7 IL_01E9: Label6 IL_01E9: call static TerrainManager ColossalFramework.Singleton`1::get_instance() IL_01EE: ldarg.3 IL_01EF: ldfld UnityEngine.Vector3 Frame::m_position IL_01F4: callvirt System.Single TerrainManager::SampleDetailHeight(UnityEngine.Vector3 worldPos) IL_01F9: stloc.1 IL_01FA: ldarg.3 IL_01FB: ldarg.3 IL_01FC: ldfld UnityEngine.Vector3 Frame::m_velocity IL_0201: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero() IL_0206: ldc.r4 1 IL_020B: call static UnityEngine.Vector3 UnityEngine.Vector3::MoveTowards(UnityEngine.Vector3 current, UnityEngine.Vector3 target, System.Single maxDistanceDelta) IL_0210: stfld UnityEngine.Vector3 Frame::m_velocity IL_0215: ldarg.3 IL_0216: ldflda UnityEngine.Vector3 Frame::m_velocity IL_021B: ldarg.3 IL_021C: ldflda UnityEngine.Vector3 Frame::m_velocity IL_0221: ldfld System.Single UnityEngine.Vector3::y IL_0226: ldc.r4 0.5 IL_022B: mul IL_022C: ldloc.1 IL_022D: ldarg.3 IL_022E: ldflda UnityEngine.Vector3 Frame::m_position IL_0233: ldfld System.Single UnityEngine.Vector3::y IL_0238: sub IL_0239: ldc.r4 0.5 IL_023E: mul IL_023F: add IL_0240: stfld System.Single UnityEngine.Vector3::y IL_0245: Label7 IL_0245: ldarg.3 IL_0246: dup IL_0247: ldfld UnityEngine.Vector3 Frame::m_position IL_024C: ldarg.3 IL_024D: ldfld UnityEngine.Vector3 Frame::m_velocity IL_0252: ldc.r4 0.5 IL_0257: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_025C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0261: stfld UnityEngine.Vector3 Frame::m_position IL_0266: ldarg.2 IL_0267: ldfld System.Byte CitizenInstance::m_waitCounter IL_026C: ldc.i4.s 100 IL_026E: blt => Label8 IL_0273: ldarg.2 IL_0274: ldarg.1 IL_0275: call System.Void CitizenInstance::Unspawn(System.UInt16 instanceID) IL_027A: br => Label115 IL_027F: Label8 IL_027F: br => Label9 IL_0284: Label5 IL_0284: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0289: ldfld System.UInt32 SimulationManager::m_currentFrameIndex IL_028E: stloc.s 6 (System.UInt32) IL_0290: ldarg.2 IL_0291: ldfld UnityEngine.Vector4 CitizenInstance::m_targetPos IL_0296: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_029B: ldarg.3 IL_029C: ldfld UnityEngine.Vector3 Frame::m_position IL_02A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02A6: stloc.s 7 (UnityEngine.Vector3) IL_02A8: ldarg.s 4 IL_02AA: brtrue => Label10 IL_02AF: ldarg.2 IL_02B0: ldflda UnityEngine.Vector4 CitizenInstance::m_targetPos IL_02B5: ldfld System.Single UnityEngine.Vector4::w IL_02BA: ldc.r4 0.001 IL_02BF: ble.un => Label11 IL_02C4: ldloc.s 7 (UnityEngine.Vector3) IL_02C6: call static System.Single ColossalFramework.Math.VectorUtils::LengthSqrXZ(UnityEngine.Vector3 v) IL_02CB: stloc.s 8 (System.Single) IL_02CD: br => Label12 IL_02D2: Label10 IL_02D2: Label11 IL_02D2: ldloca.s 7 (UnityEngine.Vector3) IL_02D4: call System.Single UnityEngine.Vector3::get_sqrMagnitude() IL_02D9: stloc.s 8 (System.Single) IL_02DB: Label12 IL_02DB: ldarg.3 IL_02DC: ldflda UnityEngine.Vector3 Frame::m_velocity IL_02E1: call System.Single UnityEngine.Vector3::get_sqrMagnitude() IL_02E6: stloc.s 9 (System.Single) IL_02E8: ldloc.s 9 (System.Single) IL_02EA: ldc.r4 3 IL_02EF: mul IL_02F0: ldc.r4 3 IL_02F5: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_02FA: stloc.s 10 (System.Single) IL_02FC: ldarg.s 4 IL_02FE: brfalse => Label13 IL_0303: ldloc.s 6 (System.UInt32) IL_0305: ldc.i4.4 IL_0306: shr.un IL_0307: ldc.i4.3 IL_0308: and IL_0309: conv.u8 IL_030A: ldarg.1 IL_030B: ldc.i4.3 IL_030C: and IL_030D: conv.i8 IL_030E: bne.un => Label14 IL_0313: ldloc.s 10 (System.Single) IL_0315: ldc.r4 4 IL_031A: mul IL_031B: stloc.s 10 (System.Single) IL_031D: Label13 IL_031D: Label14 IL_031D: ldc.i4.0 IL_031E: stloc.s 11 (System.Boolean) IL_0320: ldarg.2 IL_0321: ldfld Flags CitizenInstance::m_flags IL_0326: ldc.i4 1024 IL_032B: and IL_032C: brfalse => Label15 IL_0331: ldc.i4.1 IL_0332: stloc.s 12 (System.Boolean) IL_0334: ldarg.2 IL_0335: dup IL_0336: ldfld System.Byte CitizenInstance::m_waitCounter IL_033B: ldc.i4.1 IL_033C: add IL_033D: conv.u1 IL_033E: dup IL_033F: stloc.s 13 (System.Byte) IL_0341: stfld System.Byte CitizenInstance::m_waitCounter IL_0346: ldloc.s 13 (System.Byte) IL_0348: ldc.i4 255 IL_034D: beq => Label16 IL_0352: ldarg.2 IL_0353: ldfld System.UInt32 CitizenInstance::m_path IL_0358: brtrue => Label17 IL_035D: Label16 IL_035D: ldc.i4.0 IL_035E: stloc.s 12 (System.Boolean) IL_0360: Label17 IL_0360: ldloc.s 12 (System.Boolean) IL_0362: brfalse => Label18 IL_0367: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_036C: ldfld Array32`1 PathManager::m_pathUnits IL_0371: ldfld PathUnit[] Array32`1::m_buffer IL_0376: ldarg.2 IL_0377: ldfld System.UInt32 CitizenInstance::m_path IL_037C: conv.u IL_037D: ldelema PathUnit IL_0382: ldarg.2 IL_0383: ldfld System.Byte CitizenInstance::m_pathPositionIndex IL_0388: ldc.i4.1 IL_0389: shr IL_038A: ldloca.s 14 (PathUnit+Position) IL_038C: call System.Boolean PathUnit::GetPosition(System.Int32 index, Position& position) IL_0391: stloc.s 12 (System.Boolean) IL_0393: ldloc.s 12 (System.Boolean) IL_0395: brfalse => Label19 IL_039A: ldarg.0 IL_039B: ldarg.1 IL_039C: ldarg.2 IL_039D: ldloc.s 14 (PathUnit+Position) IL_039F: callvirt virtual System.Boolean CitizenAI::SpawnVehicle(System.UInt16 instanceID, CitizenInstance& citizenData, Position pathPos) IL_03A4: stloc.s 12 (System.Boolean) IL_03A6: Label18 IL_03A6: Label19 IL_03A6: ldloc.s 12 (System.Boolean) IL_03A8: brtrue => Label20 IL_03AD: ldarg.2 IL_03AE: dup IL_03AF: ldfld Flags CitizenInstance::m_flags IL_03B4: ldc.i4 -1025 IL_03B9: and IL_03BA: stfld Flags CitizenInstance::m_flags IL_03BF: ldarg.2 IL_03C0: dup IL_03C1: ldfld Flags CitizenInstance::m_flags IL_03C6: ldc.i4 -4097 IL_03CB: and IL_03CC: stfld Flags CitizenInstance::m_flags IL_03D1: ldarg.2 IL_03D2: ldc.i4.0 IL_03D3: stfld System.Byte CitizenInstance::m_waitCounter IL_03D8: ldarg.0 IL_03D9: ldarg.1 IL_03DA: ldarg.2 IL_03DB: call System.Void CitizenAI::InvalidPath(System.UInt16 instanceID, CitizenInstance& citizenData) IL_03E0: Label20 IL_03E0: br => Label21 IL_03E5: Label15 IL_03E5: ldarg.2 IL_03E6: ldfld Flags CitizenInstance::m_flags IL_03EB: ldc.i4 512 IL_03F0: and IL_03F1: brfalse => Label22 IL_03F6: ldc.i4.1 IL_03F7: stloc.s 15 (System.Boolean) IL_03F9: ldarg.2 IL_03FA: ldfld System.Byte CitizenInstance::m_waitCounter IL_03FF: ldc.i4 255 IL_0404: bge => Label23 IL_0409: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_040E: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0413: ldarg.2 IL_0414: call static System.UInt32 CargoHoldFix.HAI_SimulationStep::GetWaitFactor(CitizenInstance& citizenData) IL_0419: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_041E: brtrue => Label24 IL_0423: ldarg.2 IL_0424: dup IL_0425: ldfld System.Byte CitizenInstance::m_waitCounter IL_042A: ldc.i4.1 IL_042B: add IL_042C: conv.u1 IL_042D: stfld System.Byte CitizenInstance::m_waitCounter IL_0432: Label24 IL_0432: br => Label25 IL_0437: Label23 IL_0437: ldarg.2 IL_0438: ldfld Flags CitizenInstance::m_flags IL_043D: ldc.i4 4096 IL_0442: and IL_0443: brtrue => Label26 IL_0448: ldarg.2 IL_0449: dup IL_044A: ldfld Flags CitizenInstance::m_flags IL_044F: ldc.i4 4096 IL_0454: or IL_0455: stfld Flags CitizenInstance::m_flags IL_045A: ldarg.2 IL_045B: ldc.i4.0 IL_045C: stfld System.Byte CitizenInstance::m_waitCounter IL_0461: br => Label27 IL_0466: Label26 IL_0466: ldarg.2 IL_0467: dup IL_0468: ldfld Flags CitizenInstance::m_flags IL_046D: ldc.i4 -513 IL_0472: and IL_0473: stfld Flags CitizenInstance::m_flags IL_0478: ldarg.2 IL_0479: dup IL_047A: ldfld Flags CitizenInstance::m_flags IL_047F: ldc.i4 -4097 IL_0484: and IL_0485: stfld Flags CitizenInstance::m_flags IL_048A: ldarg.2 IL_048B: dup IL_048C: ldfld Flags CitizenInstance::m_flags IL_0491: ldc.i4 8192 IL_0496: or IL_0497: stfld Flags CitizenInstance::m_flags IL_049C: ldarg.2 IL_049D: ldc.i4.0 IL_049E: stfld System.Byte CitizenInstance::m_waitCounter IL_04A3: ldc.i4.0 IL_04A4: stloc.s 15 (System.Boolean) IL_04A6: ldarg.0 IL_04A7: ldarg.1 IL_04A8: ldarg.2 IL_04A9: call System.Void CitizenAI::InvalidPath(System.UInt16 instanceID, CitizenInstance& citizenData) IL_04AE: Label25 IL_04AE: Label27 IL_04AE: ldloc.s 15 (System.Boolean) IL_04B0: brfalse => Label28 IL_04B5: ldloc.s 8 (System.Single) IL_04B7: ldloc.s 10 (System.Single) IL_04B9: bge.un => Label29 IL_04BE: ldloc.s 6 (System.UInt32) IL_04C0: ldc.i4.4 IL_04C1: shr.un IL_04C2: ldc.i4.7 IL_04C3: and IL_04C4: conv.u8 IL_04C5: ldarg.1 IL_04C6: ldc.i4.7 IL_04C7: and IL_04C8: conv.i8 IL_04C9: bne.un => Label30 IL_04CE: ldarg.2 IL_04CF: ldarg.0 IL_04D0: ldarg.1 IL_04D1: ldarg.2 IL_04D2: ldarg.3 IL_04D3: ldloc.s 10 (System.Single) IL_04D5: call UnityEngine.Vector4 HumanAI::GetTransportWaitPosition(System.UInt16 instanceID, CitizenInstance& citizenData, Frame& frameData, System.Single minSqrDistance) IL_04DA: stfld UnityEngine.Vector4 CitizenInstance::m_targetPos IL_04DF: Label30 IL_04DF: ldarg.2 IL_04E0: ldfld UnityEngine.Vector4 CitizenInstance::m_targetPos IL_04E5: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_04EA: ldarg.3 IL_04EB: ldfld UnityEngine.Vector3 Frame::m_position IL_04F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04F5: stloc.s 7 (UnityEngine.Vector3) IL_04F7: ldarg.s 4 IL_04F9: brtrue => Label31 IL_04FE: ldarg.2 IL_04FF: ldflda UnityEngine.Vector4 CitizenInstance::m_targetPos IL_0504: ldfld System.Single UnityEngine.Vector4::w IL_0509: ldc.r4 0.001 IL_050E: ble.un => Label32 IL_0513: ldloc.s 7 (UnityEngine.Vector3) IL_0515: call static System.Single ColossalFramework.Math.VectorUtils::LengthSqrXZ(UnityEngine.Vector3 v) IL_051A: stloc.s 8 (System.Single) IL_051C: br => Label33 IL_0521: Label31 IL_0521: Label32 IL_0521: ldloca.s 7 (UnityEngine.Vector3) IL_0523: call System.Single UnityEngine.Vector3::get_sqrMagnitude() IL_0528: stloc.s 8 (System.Single) IL_052A: Label28 IL_052A: Label29 IL_052A: Label33 IL_052A: br => Label34 IL_052F: Label22 IL_052F: ldarg.2 IL_0530: ldfld Flags CitizenInstance::m_flags IL_0535: ldc.i4 4194304 IL_053A: and IL_053B: brfalse => Label35 IL_0540: ldc.i4.0 IL_0541: stloc.s 16 (System.Boolean) IL_0543: ldarg.2 IL_0544: ldfld System.UInt32 CitizenInstance::m_citizen IL_0549: brfalse => Label36 IL_054E: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0553: ldfld Array32`1 CitizenManager::m_citizens IL_0558: ldfld Citizen[] Array32`1::m_buffer IL_055D: ldarg.2 IL_055E: ldfld System.UInt32 CitizenInstance::m_citizen IL_0563: conv.u IL_0564: ldelema Citizen IL_0569: ldfld System.UInt16 Citizen::m_vehicle IL_056E: ldc.i4.0 IL_056F: ceq IL_0571: ldc.i4.0 IL_0572: ceq IL_0574: stloc.s 16 (System.Boolean) IL_0576: ldloc.s 16 (System.Boolean) IL_0578: brtrue => Label37 IL_057D: ldloc.s 6 (System.UInt32) IL_057F: ldc.i4.4 IL_0580: shr.un IL_0581: ldc.i4.s 15 IL_0583: and IL_0584: conv.u8 IL_0585: ldarg.1 IL_0586: ldc.i4.s 15 IL_0588: and IL_0589: conv.i8 IL_058A: bne.un => Label38 IL_058F: ldloca.s 17 (TransferManager+TransferOffer) IL_0591: initobj TransferManager+TransferOffer IL_0597: ldloca.s 17 (TransferManager+TransferOffer) IL_0599: ldc.i4.7 IL_059A: call System.Void TransferOffer::set_Priority(System.Int32 value) IL_059F: ldloca.s 17 (TransferManager+TransferOffer) IL_05A1: ldarg.2 IL_05A2: ldfld System.UInt32 CitizenInstance::m_citizen IL_05A7: call System.Void TransferOffer::set_Citizen(System.UInt32 value) IL_05AC: ldloca.s 17 (TransferManager+TransferOffer) IL_05AE: ldarg.3 IL_05AF: ldfld UnityEngine.Vector3 Frame::m_position IL_05B4: call System.Void TransferOffer::set_Position(UnityEngine.Vector3 value) IL_05B9: ldloca.s 17 (TransferManager+TransferOffer) IL_05BB: ldc.i4.1 IL_05BC: call System.Void TransferOffer::set_Amount(System.Int32 value) IL_05C1: ldloca.s 17 (TransferManager+TransferOffer) IL_05C3: ldc.i4.0 IL_05C4: call System.Void TransferOffer::set_Active(System.Boolean value) IL_05C9: call static TransferManager ColossalFramework.Singleton`1::get_instance() IL_05CE: ldc.i4.s 61 IL_05D0: ldloc.s 17 (TransferManager+TransferOffer) IL_05D2: callvirt System.Void TransferManager::AddIncomingOffer(TransferReason material, TransferOffer offer) IL_05D7: Label36 IL_05D7: Label37 IL_05D7: Label38 IL_05D7: ldarg.2 IL_05D8: ldfld System.Byte CitizenInstance::m_waitCounter IL_05DD: ldc.i4 255 IL_05E2: bge => Label39 IL_05E7: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_05EC: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_05F1: ldc.i4.2 IL_05F2: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_05F7: brtrue => Label40 IL_05FC: ldarg.2 IL_05FD: dup IL_05FE: ldfld System.Byte CitizenInstance::m_waitCounter IL_0603: ldc.i4.1 IL_0604: add IL_0605: conv.u1 IL_0606: stfld System.Byte CitizenInstance::m_waitCounter IL_060B: Label40 IL_060B: br => Label41 IL_0610: Label39 IL_0610: ldarg.2 IL_0611: ldfld Flags CitizenInstance::m_flags IL_0616: ldc.i4 4096 IL_061B: and IL_061C: brtrue => Label42 IL_0621: ldarg.2 IL_0622: dup IL_0623: ldfld Flags CitizenInstance::m_flags IL_0628: ldc.i4 4096 IL_062D: or IL_062E: stfld Flags CitizenInstance::m_flags IL_0633: ldarg.2 IL_0634: ldc.i4.0 IL_0635: stfld System.Byte CitizenInstance::m_waitCounter IL_063A: br => Label43 IL_063F: Label42 IL_063F: ldloc.s 16 (System.Boolean) IL_0641: brtrue => Label44 IL_0646: ldarg.2 IL_0647: dup IL_0648: ldfld Flags CitizenInstance::m_flags IL_064D: ldc.i4 -4194305 IL_0652: and IL_0653: stfld Flags CitizenInstance::m_flags IL_0658: ldarg.2 IL_0659: dup IL_065A: ldfld Flags CitizenInstance::m_flags IL_065F: ldc.i4 -4097 IL_0664: and IL_0665: stfld Flags CitizenInstance::m_flags IL_066A: ldarg.2 IL_066B: dup IL_066C: ldfld Flags CitizenInstance::m_flags IL_0671: ldc.i4 8388608 IL_0676: or IL_0677: stfld Flags CitizenInstance::m_flags IL_067C: ldarg.2 IL_067D: ldc.i4.0 IL_067E: stfld System.Byte CitizenInstance::m_waitCounter IL_0683: ldarg.0 IL_0684: ldarg.1 IL_0685: ldarg.2 IL_0686: call System.Void CitizenAI::InvalidPath(System.UInt16 instanceID, CitizenInstance& citizenData) IL_068B: Label41 IL_068B: Label43 IL_068B: Label44 IL_068B: br => Label45 IL_0690: Label35 IL_0690: ldarg.2 IL_0691: ldfld Flags CitizenInstance::m_flags IL_0696: ldc.i4 2048 IL_069B: and IL_069C: brfalse => Label46 IL_06A1: ldloc.s 8 (System.Single) IL_06A3: ldloc.s 10 (System.Single) IL_06A5: bge.un => Label47 IL_06AA: ldarg.2 IL_06AB: ldarg.0 IL_06AC: ldarg.1 IL_06AD: ldarg.2 IL_06AE: ldloc.s 10 (System.Single) IL_06B0: callvirt virtual UnityEngine.Vector4 HumanAI::GetVehicleEnterPosition(System.UInt16 instanceID, CitizenInstance& citizenData, System.Single minSqrDistance) IL_06B5: stfld UnityEngine.Vector4 CitizenInstance::m_targetPos IL_06BA: ldarg.2 IL_06BB: ldfld UnityEngine.Vector4 CitizenInstance::m_targetPos IL_06C0: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_06C5: ldarg.3 IL_06C6: ldfld UnityEngine.Vector3 Frame::m_position IL_06CB: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_06D0: stloc.s 7 (UnityEngine.Vector3) IL_06D2: ldarg.s 4 IL_06D4: brtrue => Label48 IL_06D9: ldarg.2 IL_06DA: ldflda UnityEngine.Vector4 CitizenInstance::m_targetPos IL_06DF: ldfld System.Single UnityEngine.Vector4::w IL_06E4: ldc.r4 0.001 IL_06E9: ble.un => Label49 IL_06EE: ldloc.s 7 (UnityEngine.Vector3) IL_06F0: call static System.Single ColossalFramework.Math.VectorUtils::LengthSqrXZ(UnityEngine.Vector3 v) IL_06F5: stloc.s 8 (System.Single) IL_06F7: br => Label50 IL_06FC: Label48 IL_06FC: Label49 IL_06FC: ldloca.s 7 (UnityEngine.Vector3) IL_06FE: call System.Single UnityEngine.Vector3::get_sqrMagnitude() IL_0703: stloc.s 8 (System.Single) IL_0705: Label47 IL_0705: Label50 IL_0705: br => Label51 IL_070A: Label46 IL_070A: ldarg.2 IL_070B: ldfld System.UInt32 CitizenInstance::m_path IL_0710: brfalse => Label52 IL_0715: ldarg.2 IL_0716: ldfld Flags CitizenInstance::m_flags IL_071B: ldc.i4 256 IL_0720: and IL_0721: brtrue => Label53 IL_0726: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_072B: stloc.s 18 (NetManager) IL_072D: ldarg.2 IL_072E: ldfld System.Byte CitizenInstance::m_pathPositionIndex IL_0733: stloc.s 19 (System.Byte) IL_0735: ldloc.s 19 (System.Byte) IL_0737: ldc.i4 255 IL_073C: bne.un => Label54 IL_0741: ldc.i4.0 IL_0742: stloc.s 19 (System.Byte) IL_0744: Label54 IL_0744: call static PathManager ColossalFramework.Singleton`1::get_instance() IL_0749: stloc.s 20 (PathManager) IL_074B: ldloc.s 20 (PathManager) IL_074D: ldfld Array32`1 PathManager::m_pathUnits IL_0752: ldfld PathUnit[] Array32`1::m_buffer IL_0757: ldarg.2 IL_0758: ldfld System.UInt32 CitizenInstance::m_path IL_075D: conv.u IL_075E: ldelema PathUnit IL_0763: ldloc.s 19 (System.Byte) IL_0765: ldc.i4.1 IL_0766: shr IL_0767: ldloca.s 21 (PathUnit+Position) IL_0769: call System.Boolean PathUnit::GetPosition(System.Int32 index, Position& position) IL_076E: brfalse => Label55 IL_0773: ldloc.s 18 (NetManager) IL_0775: ldfld Array16`1 NetManager::m_segments IL_077A: ldfld NetSegment[] Array16`1::m_buffer IL_077F: ldloca.s 21 (PathUnit+Position) IL_0781: ldfld System.UInt16 Position::m_segment IL_0786: ldelema NetSegment IL_078B: ldfld Flags NetSegment::m_flags IL_0790: ldc.i4 4194304 IL_0795: and IL_0796: brfalse => Label56 IL_079B: call static TerrainManager ColossalFramework.Singleton`1::get_instance() IL_07A0: ldarg.3 IL_07A1: ldfld UnityEngine.Vector3 Frame::m_position IL_07A6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_07AB: callvirt System.Boolean TerrainManager::HasWater(UnityEngine.Vector2 position) IL_07B0: brfalse => Label57 IL_07B5: ldarg.2 IL_07B6: dup IL_07B7: ldfld Flags CitizenInstance::m_flags IL_07BC: ldc.i4 67108864 IL_07C1: or IL_07C2: stfld Flags CitizenInstance::m_flags IL_07C7: Label52 IL_07C7: Label53 IL_07C7: Label55 IL_07C7: Label56 IL_07C7: Label57 IL_07C7: ldloc.s 8 (System.Single) IL_07C9: ldloc.s 10 (System.Single) IL_07CB: bge.un => Label58 IL_07D0: ldarg.2 IL_07D1: ldfld System.UInt32 CitizenInstance::m_path IL_07D6: brfalse => Label59 IL_07DB: ldarg.2 IL_07DC: ldfld Flags CitizenInstance::m_flags IL_07E1: ldc.i4 256 IL_07E6: and IL_07E7: brtrue => Label60 IL_07EC: ldarg.2 IL_07ED: ldarg.0 IL_07EE: ldarg.1 IL_07EF: ldarg.2 IL_07F0: ldarg.3 IL_07F1: ldloc.s 10 (System.Single) IL_07F3: call UnityEngine.Vector4 CitizenAI::GetPathTargetPosition(System.UInt16 instanceID, CitizenInstance& citizenData, Frame& frameData, System.Single minSqrDistance) IL_07F8: stfld UnityEngine.Vector4 CitizenInstance::m_targetPos IL_07FD: ldarg.2 IL_07FE: ldfld Flags CitizenInstance::m_flags IL_0803: ldc.i4 32768 IL_0808: and IL_0809: brtrue => Label61 IL_080E: ldarg.2 IL_080F: ldflda UnityEngine.Vector4 CitizenInstance::m_targetPos IL_0814: ldc.r4 1 IL_0819: stfld System.Single UnityEngine.Vector4::w IL_081E: Label60 IL_081E: Label61 IL_081E: br => Label62 IL_0823: Label59 IL_0823: ldarg.2 IL_0824: ldfld Flags CitizenInstance::m_flags IL_0829: ldc.i4 1048576 IL_082E: and IL_082F: brfalse => Label63 IL_0834: ldarg.2 IL_0835: ldfld System.UInt32 CitizenInstance::m_citizen IL_083A: brfalse => Label64 IL_083F: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0844: ldfld Array32`1 CitizenManager::m_citizens IL_0849: ldfld Citizen[] Array32`1::m_buffer IL_084E: ldarg.2 IL_084F: ldfld System.UInt32 CitizenInstance::m_citizen IL_0854: conv.u IL_0855: ldelema Citizen IL_085A: ldarg.2 IL_085B: ldfld System.UInt32 CitizenInstance::m_citizen IL_0860: ldc.i4.0 IL_0861: ldc.i4.0 IL_0862: call System.Void Citizen::SetVehicle(System.UInt32 citizenID, System.UInt16 vehicleID, System.UInt32 unitID) IL_0867: Label64 IL_0867: ldarg.2 IL_0868: dup IL_0869: ldfld Flags CitizenInstance::m_flags IL_086E: ldc.i4 -1048577 IL_0873: and IL_0874: stfld Flags CitizenInstance::m_flags IL_0879: Label63 IL_0879: ldarg.2 IL_087A: dup IL_087B: ldfld Flags CitizenInstance::m_flags IL_0880: ldc.i4 -2129921 IL_0885: and IL_0886: stfld Flags CitizenInstance::m_flags IL_088B: ldarg.2 IL_088C: ldfld System.UInt16 CitizenInstance::m_targetBuilding IL_0891: brfalse => Label65 IL_0896: ldarg.2 IL_0897: ldfld Flags CitizenInstance::m_flags IL_089C: ldc.i4 131072 IL_08A1: and IL_08A2: brfalse => Label66 IL_08A7: ldloc.s 6 (System.UInt32) IL_08A9: ldc.i4.4 IL_08AA: shr.un IL_08AB: ldc.i4.s 15 IL_08AD: and IL_08AE: conv.u8 IL_08AF: ldarg.1 IL_08B0: ldc.i4.s 15 IL_08B2: and IL_08B3: conv.i8 IL_08B4: bne.un => Label67 IL_08B9: Label66 IL_08B9: ldarg.0 IL_08BA: ldarg.1 IL_08BB: ldarg.2 IL_08BC: ldloc.s 10 (System.Single) IL_08BE: callvirt virtual System.Void HumanAI::GetBuildingTargetPosition(System.UInt16 instanceID, CitizenInstance& citizenData, System.Single minSqrDistance) IL_08C3: Label65 IL_08C3: Label67 IL_08C3: ldarg.2 IL_08C4: ldfld Flags CitizenInstance::m_flags IL_08C9: ldc.i4 16384 IL_08CE: and IL_08CF: brtrue => Label68 IL_08D4: ldc.i4.1 IL_08D5: stloc.s 11 (System.Boolean) IL_08D7: Label62 IL_08D7: Label68 IL_08D7: ldarg.2 IL_08D8: ldfld UnityEngine.Vector4 CitizenInstance::m_targetPos IL_08DD: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_08E2: ldarg.3 IL_08E3: ldfld UnityEngine.Vector3 Frame::m_position IL_08E8: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_08ED: stloc.s 7 (UnityEngine.Vector3) IL_08EF: ldarg.s 4 IL_08F1: brtrue => Label69 IL_08F6: ldarg.2 IL_08F7: ldflda UnityEngine.Vector4 CitizenInstance::m_targetPos IL_08FC: ldfld System.Single UnityEngine.Vector4::w IL_0901: ldc.r4 0.001 IL_0906: ble.un => Label70 IL_090B: ldloc.s 7 (UnityEngine.Vector3) IL_090D: call static System.Single ColossalFramework.Math.VectorUtils::LengthSqrXZ(UnityEngine.Vector3 v) IL_0912: stloc.s 8 (System.Single) IL_0914: br => Label71 IL_0919: Label69 IL_0919: Label70 IL_0919: ldloca.s 7 (UnityEngine.Vector3) IL_091B: call System.Single UnityEngine.Vector3::get_sqrMagnitude() IL_0920: stloc.s 8 (System.Single) IL_0922: Label21 IL_0922: Label34 IL_0922: Label45 IL_0922: Label51 IL_0922: Label58 IL_0922: Label71 IL_0922: ldarg.0 IL_0923: ldfld CitizenInfo CitizenAI::m_info IL_0928: ldfld System.Single CitizenInfo::m_walkSpeed IL_092D: stloc.s 22 (System.Single) IL_092F: ldc.r4 2 IL_0934: stloc.s 23 (System.Single) IL_0936: ldarg.2 IL_0937: ldfld Flags CitizenInstance::m_flags IL_093C: ldc.i4.s 64 IL_093E: and IL_093F: brfalse => Label72 IL_0944: ldloc.s 22 (System.Single) IL_0946: ldc.r4 0.5 IL_094B: mul IL_094C: ldc.r4 1 IL_0951: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0956: stloc.s 22 (System.Single) IL_0958: br => Label73 IL_095D: Label72 IL_095D: ldarg.2 IL_095E: ldfld Flags CitizenInstance::m_flags IL_0963: ldc.i4 1048576 IL_0968: and IL_0969: brfalse => Label74 IL_096E: ldarg.2 IL_096F: ldfld Flags CitizenInstance::m_flags IL_0974: ldc.i4 2097152 IL_0979: and IL_097A: brfalse => Label75 IL_097F: ldloc.s 22 (System.Single) IL_0981: ldc.r4 2 IL_0986: mul IL_0987: stloc.s 22 (System.Single) IL_0989: br => Label76 IL_098E: Label75 IL_098E: ldloc.s 22 (System.Single) IL_0990: ldc.r4 1.5 IL_0995: mul IL_0996: stloc.s 22 (System.Single) IL_0998: Label73 IL_0998: Label74 IL_0998: Label76 IL_0998: ldloc.s 9 (System.Single) IL_099A: ldc.r4 0.01 IL_099F: ble.un => Label77 IL_09A4: ldarg.3 IL_09A5: dup IL_09A6: ldfld UnityEngine.Vector3 Frame::m_position IL_09AB: ldarg.3 IL_09AC: ldfld UnityEngine.Vector3 Frame::m_velocity IL_09B1: ldc.r4 0.5 IL_09B6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_09BB: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09C0: stfld UnityEngine.Vector3 Frame::m_position IL_09C5: Label77 IL_09C5: ldloc.s 8 (System.Single) IL_09C7: ldc.r4 1 IL_09CC: bge.un => Label78 IL_09D1: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero() IL_09D6: stloc.s 7 (UnityEngine.Vector3) IL_09D8: ldarg.2 IL_09D9: ldfld Flags CitizenInstance::m_flags IL_09DE: ldc.i4 2048 IL_09E3: and IL_09E4: brfalse => Label79 IL_09E9: ldarg.0 IL_09EA: ldarg.1 IL_09EB: ldarg.2 IL_09EC: callvirt virtual System.Boolean HumanAI::EnterVehicle(System.UInt16 instanceID, CitizenInstance& citizenData) IL_09F1: brfalse => Label80 IL_09F6: br => Label116 IL_09FB: Label80 IL_09FB: br => Label81 IL_0A00: Label79 IL_0A00: ldloc.s 11 (System.Boolean) IL_0A02: brfalse => Label82 IL_0A07: ldarg.0 IL_0A08: ldarg.1 IL_0A09: ldarg.2 IL_0A0A: callvirt virtual System.Boolean HumanAI::ArriveAtTarget(System.UInt16 instanceID, CitizenInstance& citizenData) IL_0A0F: brfalse => Label83 IL_0A14: br => Label117 IL_0A19: Label83 IL_0A19: ldarg.2 IL_0A1A: dup IL_0A1B: ldfld Flags CitizenInstance::m_flags IL_0A20: ldc.i4 131072 IL_0A25: or IL_0A26: stfld Flags CitizenInstance::m_flags IL_0A2B: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0A30: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0A35: ldc.i4 256 IL_0A3A: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0A3F: brtrue => Label84 IL_0A44: ldarg.2 IL_0A45: call static SimulationManager ColossalFramework.Singleton`1::get_instance() IL_0A4A: ldflda ColossalFramework.Math.Randomizer SimulationManager::m_randomizer IL_0A4F: ldc.i4 256 IL_0A54: call System.Int32 ColossalFramework.Math.Randomizer::Int32(System.UInt32 range) IL_0A59: conv.u1 IL_0A5A: stfld System.Byte CitizenInstance::m_targetSeed IL_0A5F: ldarg.0 IL_0A60: ldarg.1 IL_0A61: ldarg.2 IL_0A62: callvirt virtual System.Void HumanAI::SwitchBuildingTargetPos(System.UInt16 instanceID, CitizenInstance& citizenData) IL_0A67: Label84 IL_0A67: br => Label85 IL_0A6C: Label82 IL_0A6C: ldarg.2 IL_0A6D: dup IL_0A6E: ldfld Flags CitizenInstance::m_flags IL_0A73: ldc.i4 -131073 IL_0A78: and IL_0A79: stfld Flags CitizenInstance::m_flags IL_0A7E: Label81 IL_0A7E: Label85 IL_0A7E: br => Label86 IL_0A83: Label78 IL_0A83: ldloc.s 8 (System.Single) IL_0A85: call static System.Single UnityEngine.Mathf::Sqrt(System.Single f) IL_0A8A: stloc.s 24 (System.Single) IL_0A8C: ldloc.s 9 (System.Single) IL_0A8E: call static System.Single UnityEngine.Mathf::Sqrt(System.Single f) IL_0A93: stloc.s 25 (System.Single) IL_0A95: ldc.r4 0 IL_0A9A: ldloc.s 7 (UnityEngine.Vector3) IL_0A9C: ldarg.3 IL_0A9D: ldfld UnityEngine.Vector3 Frame::m_velocity IL_0AA2: call static System.Single UnityEngine.Vector3::Dot(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs) IL_0AA7: ldc.r4 1 IL_0AAC: ldloc.s 25 (System.Single) IL_0AAE: ldloc.s 24 (System.Single) IL_0AB0: mul IL_0AB1: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0AB6: div IL_0AB7: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0ABC: stloc.s 26 (System.Single) IL_0ABE: ldc.r4 0.5 IL_0AC3: ldloc.s 22 (System.Single) IL_0AC5: ldloc.s 26 (System.Single) IL_0AC7: mul IL_0AC8: ldloc.s 26 (System.Single) IL_0ACA: mul IL_0ACB: ldloc.s 26 (System.Single) IL_0ACD: mul IL_0ACE: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0AD3: stloc.s 22 (System.Single) IL_0AD5: ldloc.s 7 (UnityEngine.Vector3) IL_0AD7: ldc.r4 0.577 IL_0ADC: ldloc.s 22 (System.Single) IL_0ADE: ldloc.s 24 (System.Single) IL_0AE0: div IL_0AE1: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0AE6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0AEB: stloc.s 7 (UnityEngine.Vector3) IL_0AED: ldarg.2 IL_0AEE: dup IL_0AEF: ldfld Flags CitizenInstance::m_flags IL_0AF4: ldc.i4 -131073 IL_0AF9: and IL_0AFA: stfld Flags CitizenInstance::m_flags IL_0AFF: ldarg.2 IL_0B00: ldfld Flags CitizenInstance::m_flags IL_0B05: ldc.i4 262144 IL_0B0A: and IL_0B0B: brfalse => Label87 IL_0B10: ldarg.2 IL_0B11: ldfld System.Byte CitizenInstance::m_waitCounter IL_0B16: ldc.i4.8 IL_0B17: bge => Label88 IL_0B1C: ldarg.2 IL_0B1D: dup IL_0B1E: ldfld System.Byte CitizenInstance::m_waitCounter IL_0B23: ldc.i4.1 IL_0B24: add IL_0B25: conv.u1 IL_0B26: stfld System.Byte CitizenInstance::m_waitCounter IL_0B2B: ldarg.3 IL_0B2C: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero() IL_0B31: stfld UnityEngine.Vector3 Frame::m_velocity IL_0B36: br => Label118 IL_0B3B: Label86 IL_0B3B: Label87 IL_0B3B: Label88 IL_0B3B: ldarg.3 IL_0B3C: ldarg.2 IL_0B3D: ldfld Flags CitizenInstance::m_flags IL_0B42: ldc.i4.4 IL_0B43: and IL_0B44: ldc.i4.0 IL_0B45: ceq IL_0B47: ldc.i4.0 IL_0B48: ceq IL_0B4A: stfld System.Boolean Frame::m_underground IL_0B4F: ldarg.3 IL_0B50: ldarg.2 IL_0B51: ldfld Flags CitizenInstance::m_flags IL_0B56: ldc.i4 128 IL_0B5B: and IL_0B5C: ldc.i4.0 IL_0B5D: ceq IL_0B5F: ldc.i4.0 IL_0B60: ceq IL_0B62: stfld System.Boolean Frame::m_insideBuilding IL_0B67: ldarg.3 IL_0B68: ldarg.2 IL_0B69: ldfld Flags CitizenInstance::m_flags IL_0B6E: ldc.i4 524288 IL_0B73: and IL_0B74: ldc.i4.0 IL_0B75: ceq IL_0B77: ldc.i4.0 IL_0B78: ceq IL_0B7A: stfld System.Boolean Frame::m_transition IL_0B7F: ldloc.s 8 (System.Single) IL_0B81: ldc.r4 1 IL_0B86: bge.un => Label89 IL_0B8B: ldloc.s 11 (System.Boolean) IL_0B8D: brfalse => Label90 IL_0B92: ldarg.2 IL_0B93: ldfld Flags CitizenInstance::m_flags IL_0B98: ldc.i4 65536 IL_0B9D: and IL_0B9E: brfalse => Label91 IL_0BA3: ldarg.2 IL_0BA4: dup IL_0BA5: ldfld Flags CitizenInstance::m_flags IL_0BAA: ldc.i4 262144 IL_0BAF: or IL_0BB0: stfld Flags CitizenInstance::m_flags IL_0BB5: ldarg.2 IL_0BB6: ldc.i4.0 IL_0BB7: stfld System.Byte CitizenInstance::m_waitCounter IL_0BBC: ldarg.3 IL_0BBD: ldarg.2 IL_0BBE: ldfld UnityEngine.Vector4 CitizenInstance::m_targetPos IL_0BC3: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0BC8: ldarg.3 IL_0BC9: ldfld UnityEngine.Vector3 Frame::m_position IL_0BCE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0BD3: ldc.r4 0.5 IL_0BD8: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0BDD: stfld UnityEngine.Vector3 Frame::m_velocity IL_0BE2: ldarg.3 IL_0BE3: dup IL_0BE4: ldfld UnityEngine.Vector3 Frame::m_position IL_0BE9: ldarg.3 IL_0BEA: ldfld UnityEngine.Vector3 Frame::m_velocity IL_0BEF: ldc.r4 0.5 IL_0BF4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0BF9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0BFE: stfld UnityEngine.Vector3 Frame::m_position IL_0C03: ldarg.2 IL_0C04: ldflda UnityEngine.Vector2 CitizenInstance::m_targetDir IL_0C09: call System.Single UnityEngine.Vector2::get_sqrMagnitude() IL_0C0E: ldc.r4 0.01 IL_0C13: ble.un => Label92 IL_0C18: ldarg.3 IL_0C19: ldarg.2 IL_0C1A: ldfld UnityEngine.Vector2 CitizenInstance::m_targetDir IL_0C1F: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::X_Y(UnityEngine.Vector2 v) IL_0C24: call static UnityEngine.Quaternion UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward) IL_0C29: stfld UnityEngine.Quaternion Frame::m_rotation IL_0C2E: Label92 IL_0C2E: br => Label93 IL_0C33: Label89 IL_0C33: Label90 IL_0C33: Label91 IL_0C33: ldarg.2 IL_0C34: dup IL_0C35: ldfld Flags CitizenInstance::m_flags IL_0C3A: ldc.i4 -262145 IL_0C3F: and IL_0C40: stfld Flags CitizenInstance::m_flags IL_0C45: ldloc.s 7 (UnityEngine.Vector3) IL_0C47: ldarg.3 IL_0C48: ldfld UnityEngine.Vector3 Frame::m_velocity IL_0C4D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0C52: stloc.s 27 (UnityEngine.Vector3) IL_0C54: ldloca.s 27 (UnityEngine.Vector3) IL_0C56: call System.Single UnityEngine.Vector3::get_magnitude() IL_0C5B: stloc.s 28 (System.Single) IL_0C5D: ldloc.s 27 (UnityEngine.Vector3) IL_0C5F: ldloc.s 23 (System.Single) IL_0C61: ldloc.s 28 (System.Single) IL_0C63: ldloc.s 23 (System.Single) IL_0C65: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0C6A: div IL_0C6B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0C70: stloc.s 27 (UnityEngine.Vector3) IL_0C72: ldarg.3 IL_0C73: dup IL_0C74: ldfld UnityEngine.Vector3 Frame::m_velocity IL_0C79: ldloc.s 27 (UnityEngine.Vector3) IL_0C7B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0C80: stfld UnityEngine.Vector3 Frame::m_velocity IL_0C85: ldarg.3 IL_0C86: dup IL_0C87: ldfld UnityEngine.Vector3 Frame::m_velocity IL_0C8C: ldc.r4 0 IL_0C91: ldarg.3 IL_0C92: ldfld UnityEngine.Vector3 Frame::m_position IL_0C97: ldarg.3 IL_0C98: ldfld UnityEngine.Vector3 Frame::m_velocity IL_0C9D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0CA2: ldarg.2 IL_0CA3: ldfld UnityEngine.Vector4 CitizenInstance::m_targetPos IL_0CA8: call static UnityEngine.Vector3 UnityEngine.Vector4::op_Implicit(UnityEngine.Vector4 v) IL_0CAD: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0CB2: ldarg.3 IL_0CB3: ldfld UnityEngine.Vector3 Frame::m_velocity IL_0CB8: call static System.Single UnityEngine.Vector3::Dot(UnityEngine.Vector3 lhs, UnityEngine.Vector3 rhs) IL_0CBD: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0CC2: ldc.r4 0.01 IL_0CC7: ldarg.3 IL_0CC8: ldflda UnityEngine.Vector3 Frame::m_velocity IL_0CCD: call System.Single UnityEngine.Vector3::get_sqrMagnitude() IL_0CD2: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0CD7: div IL_0CD8: ldarg.3 IL_0CD9: ldfld UnityEngine.Vector3 Frame::m_velocity IL_0CDE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(System.Single d, UnityEngine.Vector3 a) IL_0CE3: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0CE8: stfld UnityEngine.Vector3 Frame::m_velocity IL_0CED: ldarg.3 IL_0CEE: ldflda UnityEngine.Vector3 Frame::m_velocity IL_0CF3: call System.Single UnityEngine.Vector3::get_sqrMagnitude() IL_0CF8: stloc.s 29 (System.Single) IL_0CFA: ldarg.s 4 IL_0CFC: brtrue => Label94 IL_0D01: ldarg.2 IL_0D02: ldflda UnityEngine.Vector4 CitizenInstance::m_targetPos IL_0D07: ldfld System.Single UnityEngine.Vector4::w IL_0D0C: ldc.r4 0.001 IL_0D11: ble.un => Label95 IL_0D16: ldloc.s 29 (System.Single) IL_0D18: ldc.r4 0.01 IL_0D1D: bgt => Label96 IL_0D22: ldloc.s 9 (System.Single) IL_0D24: ldc.r4 0.01 IL_0D29: cgt IL_0D2B: br => Label97 IL_0D30: Label96 IL_0D30: ldc.i4.1 IL_0D31: Label97 IL_0D31: br => Label98 IL_0D36: Label94 IL_0D36: Label95 IL_0D36: ldc.i4.0 IL_0D37: Label98 IL_0D37: stloc.s 30 (System.Boolean) IL_0D39: ldloc.s 30 (System.Boolean) IL_0D3B: brfalse => Label99 IL_0D40: ldarg.3 IL_0D41: ldfld UnityEngine.Vector3 Frame::m_position IL_0D46: ldarg.3 IL_0D47: ldfld UnityEngine.Vector3 Frame::m_velocity IL_0D4C: ldc.r4 0.5 IL_0D51: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0D56: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0D5B: stloc.s 32 (UnityEngine.Vector3) IL_0D5D: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0D62: ldloc.s 32 (UnityEngine.Vector3) IL_0D64: callvirt System.UInt16 BuildingManager::GetWalkingBuilding(UnityEngine.Vector3 worldPos) IL_0D69: stloc.s 31 (System.UInt16) IL_0D6B: br => Label100 IL_0D70: Label99 IL_0D70: ldc.i4.0 IL_0D71: stloc.s 31 (System.UInt16) IL_0D73: Label100 IL_0D73: ldloc.s 29 (System.Single) IL_0D75: ldc.r4 0.01 IL_0D7A: ble.un => Label101 IL_0D7F: ldarg.s 4 IL_0D81: brtrue => Label102 IL_0D86: call static UnityEngine.Vector3 UnityEngine.Vector3::get_zero() IL_0D8B: stloc.s 33 (UnityEngine.Vector3) IL_0D8D: ldc.r4 0 IL_0D92: stloc.s 34 (System.Single) IL_0D94: ldarg.0 IL_0D95: ldarg.1 IL_0D96: ldarg.2 IL_0D97: ldarg.3 IL_0D98: ldfld UnityEngine.Vector3 Frame::m_position IL_0D9D: ldarg.3 IL_0D9E: ldfld UnityEngine.Vector3 Frame::m_position IL_0DA3: ldarg.3 IL_0DA4: ldfld UnityEngine.Vector3 Frame::m_velocity IL_0DA9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0DAE: ldloc.s 31 (System.UInt16) IL_0DB0: ldloca.s 33 (UnityEngine.Vector3) IL_0DB2: ldloca.s 34 (System.Single) IL_0DB4: call System.Void CitizenAI::CheckCollisions(System.UInt16 instanceID, CitizenInstance& citizenData, UnityEngine.Vector3 sourcePos, UnityEngine.Vector3 targetPos, System.UInt16 buildingID, UnityEngine.Vector3& pushAmount, System.Single& pushDivider) IL_0DB9: ldloc.s 34 (System.Single) IL_0DBB: ldc.r4 0.01 IL_0DC0: ble.un => Label103 IL_0DC5: ldloc.s 33 (UnityEngine.Vector3) IL_0DC7: ldc.r4 1 IL_0DCC: ldloc.s 34 (System.Single) IL_0DCE: div IL_0DCF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0DD4: stloc.s 33 (UnityEngine.Vector3) IL_0DD6: ldloc.s 33 (UnityEngine.Vector3) IL_0DD8: ldloc.s 29 (System.Single) IL_0DDA: call static System.Single UnityEngine.Mathf::Sqrt(System.Single f) IL_0DDF: ldc.r4 0.9 IL_0DE4: mul IL_0DE5: call static UnityEngine.Vector3 UnityEngine.Vector3::ClampMagnitude(UnityEngine.Vector3 vector, System.Single maxLength) IL_0DEA: stloc.s 33 (UnityEngine.Vector3) IL_0DEC: ldarg.3 IL_0DED: dup IL_0DEE: ldfld UnityEngine.Vector3 Frame::m_velocity IL_0DF3: ldloc.s 33 (UnityEngine.Vector3) IL_0DF5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0DFA: stfld UnityEngine.Vector3 Frame::m_velocity IL_0DFF: Label102 IL_0DFF: Label103 IL_0DFF: ldarg.3 IL_0E00: dup IL_0E01: ldfld UnityEngine.Vector3 Frame::m_position IL_0E06: ldarg.3 IL_0E07: ldfld UnityEngine.Vector3 Frame::m_velocity IL_0E0C: ldc.r4 0.5 IL_0E11: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0E16: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0E1B: stfld UnityEngine.Vector3 Frame::m_position IL_0E20: ldarg.3 IL_0E21: ldfld UnityEngine.Vector3 Frame::m_velocity IL_0E26: stloc.s 35 (UnityEngine.Vector3) IL_0E28: ldarg.2 IL_0E29: ldfld Flags CitizenInstance::m_flags IL_0E2E: ldc.i4 1048576 IL_0E33: and IL_0E34: brtrue => Label104 IL_0E39: ldloca.s 35 (UnityEngine.Vector3) IL_0E3B: ldc.r4 0 IL_0E40: stfld System.Single UnityEngine.Vector3::y IL_0E45: Label104 IL_0E45: ldloca.s 35 (UnityEngine.Vector3) IL_0E47: call System.Single UnityEngine.Vector3::get_sqrMagnitude() IL_0E4C: ldc.r4 0.01 IL_0E51: ble.un => Label105 IL_0E56: ldarg.3 IL_0E57: ldloc.s 35 (UnityEngine.Vector3) IL_0E59: call static UnityEngine.Quaternion UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward) IL_0E5E: stfld UnityEngine.Quaternion Frame::m_rotation IL_0E63: Label105 IL_0E63: br => Label106 IL_0E68: Label101 IL_0E68: ldloc.s 8 (System.Single) IL_0E6A: ldc.r4 1 IL_0E6F: bge.un => Label107 IL_0E74: ldloc.s 11 (System.Boolean) IL_0E76: brfalse => Label108 IL_0E7B: ldarg.2 IL_0E7C: ldflda UnityEngine.Vector2 CitizenInstance::m_targetDir IL_0E81: call System.Single UnityEngine.Vector2::get_sqrMagnitude() IL_0E86: ldc.r4 0.01 IL_0E8B: ble.un => Label109 IL_0E90: ldarg.3 IL_0E91: ldarg.2 IL_0E92: ldfld UnityEngine.Vector2 CitizenInstance::m_targetDir IL_0E97: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::X_Y(UnityEngine.Vector2 v) IL_0E9C: call static UnityEngine.Quaternion UnityEngine.Quaternion::LookRotation(UnityEngine.Vector3 forward) IL_0EA1: stfld UnityEngine.Quaternion Frame::m_rotation IL_0EA6: Label106 IL_0EA6: Label107 IL_0EA6: Label108 IL_0EA6: Label109 IL_0EA6: ldloc.s 30 (System.Boolean) IL_0EA8: brfalse => Label110 IL_0EAD: ldarg.3 IL_0EAE: ldfld UnityEngine.Vector3 Frame::m_position IL_0EB3: stloc.s 36 (UnityEngine.Vector3) IL_0EB5: call static TerrainManager ColossalFramework.Singleton`1::get_instance() IL_0EBA: ldloc.s 36 (UnityEngine.Vector3) IL_0EBC: callvirt System.Single TerrainManager::SampleDetailHeight(UnityEngine.Vector3 worldPos) IL_0EC1: stloc.s 37 (System.Single) IL_0EC3: ldloc.s 31 (System.UInt16) IL_0EC5: brfalse => Label111 IL_0ECA: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_0ECF: ldfld Array16`1 BuildingManager::m_buildings IL_0ED4: ldfld Building[] Array16`1::m_buffer IL_0ED9: ldloc.s 31 (System.UInt16) IL_0EDB: ldelema Building IL_0EE0: ldloc.s 31 (System.UInt16) IL_0EE2: ldloc.s 36 (UnityEngine.Vector3) IL_0EE4: ldloc.s 37 (System.Single) IL_0EE6: call System.Single Building::SampleWalkingHeight(System.UInt16 buildingID, UnityEngine.Vector3 worldPos, System.Single terrainHeight) IL_0EEB: stloc.s 37 (System.Single) IL_0EED: ldloca.s 36 (UnityEngine.Vector3) IL_0EEF: ldloca.s 36 (UnityEngine.Vector3) IL_0EF1: ldfld System.Single UnityEngine.Vector3::y IL_0EF6: ldloc.s 37 (System.Single) IL_0EF8: ldloca.s 36 (UnityEngine.Vector3) IL_0EFA: ldfld System.Single UnityEngine.Vector3::y IL_0EFF: sub IL_0F00: ldc.r4 1 IL_0F05: ldarg.2 IL_0F06: ldflda UnityEngine.Vector4 CitizenInstance::m_targetPos IL_0F0B: ldfld System.Single UnityEngine.Vector4::w IL_0F10: ldc.r4 4 IL_0F15: mul IL_0F16: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0F1B: mul IL_0F1C: add IL_0F1D: stfld System.Single UnityEngine.Vector3::y IL_0F22: ldarg.3 IL_0F23: ldflda UnityEngine.Vector3 Frame::m_position IL_0F28: ldloca.s 36 (UnityEngine.Vector3) IL_0F2A: ldfld System.Single UnityEngine.Vector3::y IL_0F2F: stfld System.Single UnityEngine.Vector3::y IL_0F34: br => Label112 IL_0F39: Label111 IL_0F39: ldloc.s 37 (System.Single) IL_0F3B: ldloca.s 36 (UnityEngine.Vector3) IL_0F3D: ldfld System.Single UnityEngine.Vector3::y IL_0F42: sub IL_0F43: call static System.Single UnityEngine.Mathf::Abs(System.Single f) IL_0F48: ldc.r4 2 IL_0F4D: bge.un => Label113 IL_0F52: ldloca.s 36 (UnityEngine.Vector3) IL_0F54: ldloca.s 36 (UnityEngine.Vector3) IL_0F56: ldfld System.Single UnityEngine.Vector3::y IL_0F5B: ldloc.s 37 (System.Single) IL_0F5D: ldloca.s 36 (UnityEngine.Vector3) IL_0F5F: ldfld System.Single UnityEngine.Vector3::y IL_0F64: sub IL_0F65: ldc.r4 1 IL_0F6A: ldarg.2 IL_0F6B: ldflda UnityEngine.Vector4 CitizenInstance::m_targetPos IL_0F70: ldfld System.Single UnityEngine.Vector4::w IL_0F75: ldc.r4 4 IL_0F7A: mul IL_0F7B: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0F80: mul IL_0F81: add IL_0F82: stfld System.Single UnityEngine.Vector3::y IL_0F87: ldarg.3 IL_0F88: ldflda UnityEngine.Vector3 Frame::m_position IL_0F8D: ldloca.s 36 (UnityEngine.Vector3) IL_0F8F: ldfld System.Single UnityEngine.Vector3::y IL_0F94: stfld System.Single UnityEngine.Vector3::y IL_0F99: // end original IL_0F99: Label4 IL_0F99: Label9 IL_0F99: Label93 IL_0F99: Label110 IL_0F99: Label112 IL_0F99: Label113 IL_0F99: Label114 IL_0F99: Label115 IL_0F99: Label116 IL_0F99: Label117 IL_0F99: Label118 IL_0F99: ret DONE ### Harmony id=com.github.algernon-A.csl.lifecyclerebalancerevisited, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static System.Void LifecycleRebalance.Patcher::ApplyPrefix(System.Reflection.MethodInfo originalMethod, System.Reflection.MethodInfo patchMethod), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F2BAC60 ### At 2022-09-14 06.36.26 ### Patch: System.Int32 ResidentAI::GetCarProbability(System.UInt16 instanceID, CitizenInstance& citizenData, AgeGroup ageGroup) ### Replacement: static System.Int32 ResidentAI::ResidentAI.GetCarProbability_Patch1(ResidentAI this, System.UInt16 instanceID, CitizenInstance& citizenData, AgeGroup ageGroup) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 0 (System.Int32) IL_0009: ldc.i4 0 IL_000E: stloc 1 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 1 (System.Boolean) IL_0017: ldloc 1 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldloca 0 (System.Int32) IL_0024: ldarg 2 IL_0028: ldarg 3 IL_002C: call static System.Boolean LifecycleRebalance.ResidentAITransport::GetCarProbability(System.Int32& __result, CitizenInstance& citizenData, AgeGroup ageGroup) IL_0031: stloc 1 (System.Boolean) IL_0035: Label1 IL_0035: nop IL_0036: ldloc 1 (System.Boolean) IL_003A: brfalse => Label0 IL_003F: // start original IL_003F: ldarg.0 IL_0040: ldarg.3 IL_0041: call System.Int32 ResidentAI::GetCarProbability(AgeGroup ageGroup) IL_0046: // end original IL_0046: stloc 0 (System.Int32) IL_004A: Label0 IL_004A: ldloc 0 (System.Int32) IL_004E: ret DONE ### Harmony id=com.github.algernon-A.csl.lifecyclerebalancerevisited, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static System.Void LifecycleRebalance.Patcher::ApplyPrefix(System.Reflection.MethodInfo originalMethod, System.Reflection.MethodInfo patchMethod), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F2BAC60 ### At 2022-09-14 06.36.26 ### Patch: System.Int32 ResidentAI::GetBikeProbability(System.UInt16 instanceID, CitizenInstance& citizenData, AgeGroup ageGroup) ### Replacement: static System.Int32 ResidentAI::ResidentAI.GetBikeProbability_Patch1(ResidentAI this, System.UInt16 instanceID, CitizenInstance& citizenData, AgeGroup ageGroup) IL_0000: Local var 0: CitizenManager IL_0000: Local var 1: System.UInt32 IL_0000: Local var 2: System.UInt16 IL_0000: Local var 3: System.Int32 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: DistrictManager IL_0000: Local var 6: System.Byte IL_0000: Local var 7: DistrictPolicies/CityPlanning IL_0000: Local var 8: System.Int32 IL_0000: Local var 9: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 8 (System.Int32) IL_0009: ldc.i4 0 IL_000E: stloc 9 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 9 (System.Boolean) IL_0017: ldloc 9 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldloca 8 (System.Int32) IL_0024: ldarg 3 IL_0028: call static System.Boolean LifecycleRebalance.ResidentAITransport::GetBikeProbability(System.Int32& __result, AgeGroup ageGroup) IL_002D: stloc 9 (System.Boolean) IL_0031: Label1 IL_0031: nop IL_0032: ldloc 9 (System.Boolean) IL_0036: brfalse => Label0 IL_003B: // start original IL_003B: call static CitizenManager ColossalFramework.Singleton`1::get_instance() IL_0040: stloc.0 IL_0041: ldarg.2 IL_0042: ldfld System.UInt32 CitizenInstance::m_citizen IL_0047: stloc.1 IL_0048: ldloc.0 IL_0049: ldfld Array32`1 CitizenManager::m_citizens IL_004E: ldfld Citizen[] Array32`1::m_buffer IL_0053: ldloc.1 IL_0054: conv.u IL_0055: ldelema Citizen IL_005A: ldfld System.UInt16 Citizen::m_homeBuilding IL_005F: stloc.2 IL_0060: ldc.i4.0 IL_0061: stloc.3 IL_0062: ldloc.2 IL_0063: brfalse => Label2 IL_0068: call static BuildingManager ColossalFramework.Singleton`1::get_instance() IL_006D: ldfld Array16`1 BuildingManager::m_buildings IL_0072: ldfld Building[] Array16`1::m_buffer IL_0077: ldloc.2 IL_0078: ldelema Building IL_007D: ldfld UnityEngine.Vector3 Building::m_position IL_0082: stloc.s 4 (UnityEngine.Vector3) IL_0084: call static DistrictManager ColossalFramework.Singleton`1::get_instance() IL_0089: stloc.s 5 (DistrictManager) IL_008B: ldloc.s 5 (DistrictManager) IL_008D: ldloc.s 4 (UnityEngine.Vector3) IL_008F: callvirt System.Byte DistrictManager::GetDistrict(UnityEngine.Vector3 worldPos) IL_0094: stloc.s 6 (System.Byte) IL_0096: ldloc.s 5 (DistrictManager) IL_0098: ldfld Array8`1 DistrictManager::m_districts IL_009D: ldfld District[] Array8`1::m_buffer IL_00A2: ldloc.s 6 (System.Byte) IL_00A4: ldelema District IL_00A9: ldfld CityPlanning District::m_cityPlanningPolicies IL_00AE: stloc.s 7 (DistrictPolicies+CityPlanning) IL_00B0: ldloc.s 7 (DistrictPolicies+CityPlanning) IL_00B2: ldc.i4.s 64 IL_00B4: and IL_00B5: brfalse => Label3 IL_00BA: ldc.i4.s 10 IL_00BC: stloc.3 IL_00BD: Label2 IL_00BD: Label3 IL_00BD: ldarg.3 IL_00BE: switch => Labels4,5,6,7,8 IL_00D7: br => Label9 IL_00DC: Label4 IL_00DC: ldc.i4.s 40 IL_00DE: ldloc.3 IL_00DF: add IL_00E0: br => Label10 IL_00E5: Label5 IL_00E5: ldc.i4.s 30 IL_00E7: ldloc.3 IL_00E8: add IL_00E9: br => Label11 IL_00EE: Label6 IL_00EE: ldc.i4.s 20 IL_00F0: ldloc.3 IL_00F1: add IL_00F2: br => Label12 IL_00F7: Label7 IL_00F7: ldc.i4.s 10 IL_00F9: ldloc.3 IL_00FA: add IL_00FB: br => Label13 IL_0100: Label8 IL_0100: ldloc.3 IL_0101: br => Label14 IL_0106: Label9 IL_0106: ldc.i4.0 IL_0107: // end original IL_0107: Label10 IL_0107: Label11 IL_0107: Label12 IL_0107: Label13 IL_0107: Label14 IL_0107: stloc 8 (System.Int32) IL_010B: Label0 IL_010B: ldloc 8 (System.Int32) IL_010F: ret DONE ### Harmony id=com.github.algernon-A.csl.lifecyclerebalancerevisited, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from static System.Void LifecycleRebalance.Patcher::ApplyPrefix(System.Reflection.MethodInfo originalMethod, System.Reflection.MethodInfo patchMethod), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F2BAC60 ### At 2022-09-14 06.36.26 ### Patch: System.Int32 ResidentAI::GetTaxiProbability(System.UInt16 instanceID, CitizenInstance& citizenData, AgeGroup ageGroup) ### Replacement: static System.Int32 ResidentAI::ResidentAI.GetTaxiProbability_Patch1(ResidentAI this, System.UInt16 instanceID, CitizenInstance& citizenData, AgeGroup ageGroup) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 0 (System.Int32) IL_0009: ldc.i4 0 IL_000E: stloc 1 (System.Boolean) IL_0012: ldc.i4.1 IL_0013: stloc 1 (System.Boolean) IL_0017: ldloc 1 (System.Boolean) IL_001B: brfalse => Label1 IL_0020: ldloca 0 (System.Int32) IL_0024: ldarg 3 IL_0028: call static System.Boolean LifecycleRebalance.ResidentAITransport::GetTaxiProbability(System.Int32& __result, AgeGroup ageGroup) IL_002D: stloc 1 (System.Boolean) IL_0031: Label1 IL_0031: nop IL_0032: ldloc 1 (System.Boolean) IL_0036: brfalse => Label0 IL_003B: // start original IL_003B: ldarg.3 IL_003C: switch => Labels2,3,4,5,6 IL_0055: br => Label7 IL_005A: Label2 IL_005A: ldc.i4.0 IL_005B: br => Label8 IL_0060: Label3 IL_0060: ldc.i4.2 IL_0061: br => Label9 IL_0066: Label4 IL_0066: ldc.i4.2 IL_0067: br => Label10 IL_006C: Label5 IL_006C: ldc.i4.4 IL_006D: br => Label11 IL_0072: Label6 IL_0072: ldc.i4.6 IL_0073: br => Label12 IL_0078: Label7 IL_0078: ldc.i4.0 IL_0079: // end original IL_0079: Label8 IL_0079: Label9 IL_0079: Label10 IL_0079: Label11 IL_0079: Label12 IL_0079: stloc 0 (System.Int32) IL_007D: Label0 IL_007D: ldloc 0 (System.Int32) IL_0081: ret DONE ### Harmony id=com.github.algernon-A.csl.lsmr, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void AlgernonCommons.Patching.PatcherBase::UnpatchMethod(System.Reflection.MethodInfo target, System.Reflection.MethodInfo patch), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F59B280 ### At 2022-09-14 06.36.30 ### Patch: System.Void LoadingAnimation::SetImage(UnityEngine.Mesh mesh, UnityEngine.Material material, System.Single scale, System.Boolean showAnimation) ### Replacement: static System.Void LoadingAnimation::LoadingAnimation.SetImage_Patch0(LoadingAnimation this, UnityEngine.Mesh mesh, UnityEngine.Material material, System.Single scale, System.Boolean showAnimation) IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldfld System.Boolean LoadingAnimation::m_imageLoaded IL_0006: brfalse => Label0 IL_000B: ldarg.0 IL_000C: ldfld System.Single LoadingAnimation::m_imageAlpha IL_0011: ldc.r4 0 IL_0016: beq => Label1 IL_001B: ldarg.0 IL_001C: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial2 IL_0021: ldnull IL_0022: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_0027: brfalse => Label2 IL_002C: ldarg.0 IL_002D: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial2 IL_0032: call static System.Void UnityEngine.Object::Destroy(UnityEngine.Object obj) IL_0037: ldarg.0 IL_0038: ldnull IL_0039: stfld UnityEngine.Material LoadingAnimation::m_imageMaterial2 IL_003E: Label2 IL_003E: ldarg.0 IL_003F: ldarg.1 IL_0040: stfld UnityEngine.Mesh LoadingAnimation::m_imageMesh2 IL_0045: ldarg.0 IL_0046: ldarg.2 IL_0047: newobj System.Void UnityEngine.Material::.ctor(UnityEngine.Material source) IL_004C: stfld UnityEngine.Material LoadingAnimation::m_imageMaterial2 IL_0051: ldarg.0 IL_0052: ldc.i4.1 IL_0053: stfld System.Boolean LoadingAnimation::m_imageLoaded2 IL_0058: ldarg.0 IL_0059: ldarg.s 4 IL_005B: stfld System.Boolean LoadingAnimation::m_imageShowAnimation2 IL_0060: ldarg.0 IL_0061: ldarg.3 IL_0062: stfld System.Single LoadingAnimation::m_imageScale2 IL_0067: br => Label3 IL_006C: Label0 IL_006C: Label1 IL_006C: ldarg.0 IL_006D: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_0072: ldnull IL_0073: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_0078: brfalse => Label4 IL_007D: ldarg.0 IL_007E: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_0083: call static System.Void UnityEngine.Object::Destroy(UnityEngine.Object obj) IL_0088: ldarg.0 IL_0089: ldnull IL_008A: stfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_008F: Label4 IL_008F: ldarg.0 IL_0090: ldarg.1 IL_0091: stfld UnityEngine.Mesh LoadingAnimation::m_imageMesh IL_0096: ldarg.0 IL_0097: ldarg.2 IL_0098: newobj System.Void UnityEngine.Material::.ctor(UnityEngine.Material source) IL_009D: stfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_00A2: ldarg.0 IL_00A3: ldc.i4.1 IL_00A4: stfld System.Boolean LoadingAnimation::m_imageLoaded IL_00A9: ldarg.0 IL_00AA: ldarg.s 4 IL_00AC: stfld System.Boolean LoadingAnimation::m_imageShowAnimation IL_00B1: ldarg.0 IL_00B2: ldarg.3 IL_00B3: stfld System.Single LoadingAnimation::m_imageScale IL_00B8: ldarg.0 IL_00B9: ldc.r4 0 IL_00BE: stfld System.Single LoadingAnimation::m_imageAlpha IL_00C3: // end original IL_00C3: Label3 IL_00C3: ret DONE ### Harmony id=com.github.algernon-A.csl.lsmr, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void AlgernonCommons.Patching.PatcherBase::UnpatchMethod(System.Reflection.MethodInfo target, System.Reflection.MethodInfo patch), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F59B280 ### At 2022-09-14 06.36.30 ### Patch: System.Void LoadingAnimation::SetText(ColossalFramework.UI.UIFont font, UnityEngine.Color color, System.Single size, System.String title, System.String text) ### Replacement: static System.Void LoadingAnimation::LoadingAnimation.SetText_Patch0(LoadingAnimation this, ColossalFramework.UI.UIFont font, UnityEngine.Color color, System.Single size, System.String title, System.String text) IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldfld UnityEngine.Material LoadingAnimation::m_textMaterial IL_0006: ldnull IL_0007: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_000C: brfalse => Label0 IL_0011: ldarg.0 IL_0012: ldfld UnityEngine.Material LoadingAnimation::m_textMaterial IL_0017: call static System.Void UnityEngine.Object::Destroy(UnityEngine.Object obj) IL_001C: ldarg.0 IL_001D: ldnull IL_001E: stfld UnityEngine.Material LoadingAnimation::m_textMaterial IL_0023: Label0 IL_0023: ldarg.0 IL_0024: ldarg.1 IL_0025: callvirt abstract virtual UnityEngine.Material ColossalFramework.UI.UIFont::get_material() IL_002A: newobj System.Void UnityEngine.Material::.ctor(UnityEngine.Material source) IL_002F: stfld UnityEngine.Material LoadingAnimation::m_textMaterial IL_0034: ldarg.0 IL_0035: ldarg.1 IL_0036: stfld ColossalFramework.UI.UIFont LoadingAnimation::m_font IL_003B: ldarg.0 IL_003C: ldarg.2 IL_003D: stfld UnityEngine.Color LoadingAnimation::m_textColor IL_0042: ldarg.0 IL_0043: ldarg.3 IL_0044: stfld System.Single LoadingAnimation::m_textSize IL_0049: ldarg.s 4 IL_004B: brfalse => Label1 IL_0050: ldarg.s 4 IL_0052: callvirt System.String System.String::ToUpper() IL_0057: starg.s 4 IL_0059: Label1 IL_0059: ldarg.0 IL_005A: ldarg.s 4 IL_005C: stfld System.String LoadingAnimation::m_title IL_0061: ldarg.0 IL_0062: ldarg.s 5 IL_0064: stfld System.String LoadingAnimation::m_text IL_0069: ldarg.0 IL_006A: ldc.i4.1 IL_006B: stfld System.Boolean LoadingAnimation::m_textLoaded IL_0070: ldarg.0 IL_0071: ldc.r4 0 IL_0076: stfld System.Single LoadingAnimation::m_textAlpha IL_007B: ldarg.0 IL_007C: call System.Void LoadingAnimation::GenerateTextMesh() IL_0081: // end original IL_0081: ret DONE ### Harmony id=com.github.algernon-A.csl.lsmr, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void AlgernonCommons.Patching.PatcherBase::UnpatchMethod(System.Reflection.MethodInfo target, System.Reflection.MethodInfo patch), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F59B280 ### At 2022-09-14 06.36.30 ### Patch: System.Void LoadingAnimation::OnEnable() ### Replacement: static System.Void LoadingAnimation::LoadingAnimation.OnEnable_Patch0(LoadingAnimation this) IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldfld UnityEngine.Camera LoadingAnimation::m_camera IL_0006: ldc.i4.1 IL_0007: callvirt System.Void UnityEngine.Behaviour::set_enabled(System.Boolean value) IL_000C: ldarg.0 IL_000D: ldc.r4 1 IL_0012: stfld System.Single LoadingAnimation::m_totalAlpha IL_0017: ldarg.0 IL_0018: ldc.i4.0 IL_0019: stfld System.Boolean LoadingAnimation::m_fadeAway IL_001E: ldarg.0 IL_001F: ldc.i4.0 IL_0020: stfld System.Boolean LoadingAnimation::m_fadeImage IL_0025: ldarg.0 IL_0026: ldc.i4.0 IL_0027: stfld System.Boolean LoadingAnimation::m_skipped IL_002C: ldarg.0 IL_002D: ldc.r4 -1 IL_0032: stfld System.Single LoadingAnimation::m_progress IL_0037: ldarg.0 IL_0038: ldc.r4 -1 IL_003D: stfld System.Single LoadingAnimation::m_targetProgress IL_0042: ldarg.0 IL_0043: ldfld UnityEngine.Camera LoadingAnimation::m_camera IL_0048: ldc.i4.2 IL_0049: callvirt System.Void UnityEngine.Camera::set_clearFlags(UnityEngine.CameraClearFlags value) IL_004E: ldsfld ColossalFramework.UI.CallbackRequestCharacterInfo ColossalFramework.UI.UIFontManager::callbackRequestCharacterInfo IL_0053: ldarg.0 IL_0054: ldftn System.Void LoadingAnimation::RequestCharacterInfo() IL_005A: newobj System.Void ColossalFramework.UI.CallbackRequestCharacterInfo::.ctor(System.Object object, System.IntPtr method) IL_005F: call static System.Delegate System.Delegate::Combine(System.Delegate a, System.Delegate b) IL_0064: castclass ColossalFramework.UI.UIFontManager+CallbackRequestCharacterInfo IL_0069: stsfld ColossalFramework.UI.CallbackRequestCharacterInfo ColossalFramework.UI.UIFontManager::callbackRequestCharacterInfo IL_006E: ldarg.0 IL_006F: ldftn System.Void LoadingAnimation::FontTextureRebuilt(UnityEngine.Font font) IL_0075: newobj System.Void System.Action`1::.ctor(System.Object object, System.IntPtr method) IL_007A: call static System.Void UnityEngine.Font::add_textureRebuilt(System.Action`1 value) IL_007F: // end original IL_007F: ret DONE ### Harmony id=com.github.algernon-A.csl.lsmr, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void AlgernonCommons.Patching.PatcherBase::UnpatchMethod(System.Reflection.MethodInfo target, System.Reflection.MethodInfo patch), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F59B280 ### At 2022-09-14 06.36.30 ### Patch: System.Void LoadingAnimation::OnDisable() ### Replacement: static System.Void LoadingAnimation::LoadingAnimation.OnDisable_Patch0(LoadingAnimation this) IL_0000: // start original IL_0000: ldsfld ColossalFramework.UI.CallbackRequestCharacterInfo ColossalFramework.UI.UIFontManager::callbackRequestCharacterInfo IL_0005: ldarg.0 IL_0006: ldftn System.Void LoadingAnimation::RequestCharacterInfo() IL_000C: newobj System.Void ColossalFramework.UI.CallbackRequestCharacterInfo::.ctor(System.Object object, System.IntPtr method) IL_0011: call static System.Delegate System.Delegate::Remove(System.Delegate source, System.Delegate value) IL_0016: castclass ColossalFramework.UI.UIFontManager+CallbackRequestCharacterInfo IL_001B: stsfld ColossalFramework.UI.CallbackRequestCharacterInfo ColossalFramework.UI.UIFontManager::callbackRequestCharacterInfo IL_0020: ldarg.0 IL_0021: ldftn System.Void LoadingAnimation::FontTextureRebuilt(UnityEngine.Font font) IL_0027: newobj System.Void System.Action`1::.ctor(System.Object object, System.IntPtr method) IL_002C: call static System.Void UnityEngine.Font::remove_textureRebuilt(System.Action`1 value) IL_0031: ldarg.0 IL_0032: ldfld UnityEngine.Camera LoadingAnimation::m_camera IL_0037: ldc.i4.0 IL_0038: callvirt System.Void UnityEngine.Behaviour::set_enabled(System.Boolean value) IL_003D: ldarg.0 IL_003E: ldnull IL_003F: stfld UnityEngine.Mesh LoadingAnimation::m_imageMesh IL_0044: ldarg.0 IL_0045: ldc.i4.0 IL_0046: stfld System.Boolean LoadingAnimation::m_imageLoaded IL_004B: ldarg.0 IL_004C: ldc.r4 0 IL_0051: stfld System.Single LoadingAnimation::m_imageAlpha IL_0056: ldarg.0 IL_0057: ldnull IL_0058: stfld UnityEngine.Mesh LoadingAnimation::m_imageMesh2 IL_005D: ldarg.0 IL_005E: ldc.i4.0 IL_005F: stfld System.Boolean LoadingAnimation::m_imageLoaded2 IL_0064: ldarg.0 IL_0065: ldnull IL_0066: stfld ColossalFramework.UI.UIFont LoadingAnimation::m_font IL_006B: ldarg.0 IL_006C: ldnull IL_006D: stfld System.String LoadingAnimation::m_title IL_0072: ldarg.0 IL_0073: ldnull IL_0074: stfld System.String LoadingAnimation::m_text IL_0079: ldarg.0 IL_007A: ldc.i4.0 IL_007B: stfld System.Boolean LoadingAnimation::m_textLoaded IL_0080: ldarg.0 IL_0081: ldc.r4 0 IL_0086: stfld System.Single LoadingAnimation::m_textAlpha IL_008B: ldarg.0 IL_008C: ldc.r4 -1 IL_0091: stfld System.Single LoadingAnimation::m_progress IL_0096: ldarg.0 IL_0097: ldc.r4 -1 IL_009C: stfld System.Single LoadingAnimation::m_targetProgress IL_00A1: ldarg.0 IL_00A2: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_00A7: ldnull IL_00A8: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_00AD: brfalse => Label0 IL_00B2: ldarg.0 IL_00B3: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_00B8: call static System.Void UnityEngine.Object::Destroy(UnityEngine.Object obj) IL_00BD: ldarg.0 IL_00BE: ldnull IL_00BF: stfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_00C4: Label0 IL_00C4: ldarg.0 IL_00C5: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial2 IL_00CA: ldnull IL_00CB: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_00D0: brfalse => Label1 IL_00D5: ldarg.0 IL_00D6: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial2 IL_00DB: call static System.Void UnityEngine.Object::Destroy(UnityEngine.Object obj) IL_00E0: ldarg.0 IL_00E1: ldnull IL_00E2: stfld UnityEngine.Material LoadingAnimation::m_imageMaterial2 IL_00E7: Label1 IL_00E7: ldarg.0 IL_00E8: ldfld UnityEngine.Material LoadingAnimation::m_textMaterial IL_00ED: ldnull IL_00EE: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_00F3: brfalse => Label2 IL_00F8: ldarg.0 IL_00F9: ldfld UnityEngine.Material LoadingAnimation::m_textMaterial IL_00FE: call static System.Void UnityEngine.Object::Destroy(UnityEngine.Object obj) IL_0103: ldarg.0 IL_0104: ldnull IL_0105: stfld UnityEngine.Material LoadingAnimation::m_textMaterial IL_010A: Label2 IL_010A: ldarg.0 IL_010B: ldfld UnityEngine.Mesh LoadingAnimation::m_textMesh IL_0110: ldnull IL_0111: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_0116: brfalse => Label3 IL_011B: ldarg.0 IL_011C: ldfld UnityEngine.Mesh LoadingAnimation::m_textMesh IL_0121: call static System.Void UnityEngine.Object::Destroy(UnityEngine.Object obj) IL_0126: ldarg.0 IL_0127: ldnull IL_0128: stfld UnityEngine.Mesh LoadingAnimation::m_textMesh IL_012D: // end original IL_012D: Label3 IL_012D: ret DONE ### Harmony id=com.github.algernon-A.csl.lsmr, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void AlgernonCommons.Patching.PatcherBase::UnpatchMethod(System.Reflection.MethodInfo target, System.Reflection.MethodInfo patch), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F59B280 ### At 2022-09-14 06.36.30 ### Patch: System.Void LoadingAnimation::Update() ### Replacement: static System.Void LoadingAnimation::LoadingAnimation.Update_Patch0(LoadingAnimation this) IL_0000: Local var 0: System.Single IL_0000: // start original IL_0000: call static System.Boolean UnityEngine.Input::get_anyKey() IL_0005: brtrue => Label0 IL_000A: call static System.Boolean SteamController::GetAnyDigitalActionDown() IL_000F: brfalse => Label1 IL_0014: Label0 IL_0014: call static System.Void UnityEngine.Input::ResetInputAxes() IL_0019: ldarg.0 IL_001A: ldc.i4.1 IL_001B: stfld System.Boolean LoadingAnimation::m_skipped IL_0020: Label1 IL_0020: ldc.r4 0.03333334 IL_0025: call static System.Single UnityEngine.Time::get_deltaTime() IL_002A: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_002F: stloc.0 IL_0030: ldarg.0 IL_0031: dup IL_0032: ldfld System.Single LoadingAnimation::m_timer IL_0037: ldloc.0 IL_0038: add IL_0039: stfld System.Single LoadingAnimation::m_timer IL_003E: ldarg.0 IL_003F: ldfld System.Boolean LoadingAnimation::m_animationLoaded IL_0044: brfalse => Label2 IL_0049: ldarg.0 IL_004A: ldfld System.Boolean LoadingAnimation::m_imageLoaded IL_004F: brfalse => Label3 IL_0054: ldarg.0 IL_0055: ldfld System.Boolean LoadingAnimation::m_imageShowAnimation IL_005A: brtrue => Label4 IL_005F: ldarg.0 IL_0060: ldfld System.Boolean LoadingAnimation::m_fadeImage IL_0065: brfalse => Label5 IL_006A: Label3 IL_006A: Label4 IL_006A: ldarg.0 IL_006B: ldc.r4 1 IL_0070: ldarg.0 IL_0071: ldfld System.Single LoadingAnimation::m_animationAlpha IL_0076: ldloc.0 IL_0077: ldc.r4 2 IL_007C: mul IL_007D: add IL_007E: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0083: stfld System.Single LoadingAnimation::m_animationAlpha IL_0088: br => Label6 IL_008D: Label5 IL_008D: ldarg.0 IL_008E: ldc.r4 0 IL_0093: ldarg.0 IL_0094: ldfld System.Single LoadingAnimation::m_animationAlpha IL_0099: ldloc.0 IL_009A: ldc.r4 2 IL_009F: mul IL_00A0: sub IL_00A1: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00A6: stfld System.Single LoadingAnimation::m_animationAlpha IL_00AB: Label2 IL_00AB: Label6 IL_00AB: ldarg.0 IL_00AC: ldfld System.Single LoadingAnimation::m_targetProgress IL_00B1: ldc.r4 0 IL_00B6: blt.un => Label7 IL_00BB: ldarg.0 IL_00BC: ldfld System.Single LoadingAnimation::m_progress IL_00C1: ldc.r4 0 IL_00C6: bge.un => Label8 IL_00CB: ldarg.0 IL_00CC: ldc.r4 0 IL_00D1: stfld System.Single LoadingAnimation::m_progress IL_00D6: Label8 IL_00D6: ldarg.0 IL_00D7: dup IL_00D8: ldfld System.Single LoadingAnimation::m_progress IL_00DD: ldarg.0 IL_00DE: ldfld System.Single LoadingAnimation::m_targetProgress IL_00E3: ldc.r4 0.05 IL_00E8: add IL_00E9: call static System.Single UnityEngine.Mathf::Clamp01(System.Single value) IL_00EE: ldarg.0 IL_00EF: ldfld System.Single LoadingAnimation::m_progress IL_00F4: sub IL_00F5: ldloc.0 IL_00F6: mul IL_00F7: add IL_00F8: stfld System.Single LoadingAnimation::m_progress IL_00FD: Label7 IL_00FD: ldarg.0 IL_00FE: ldfld System.Boolean LoadingAnimation::m_imageLoaded IL_0103: brfalse => Label9 IL_0108: ldarg.0 IL_0109: ldfld System.Boolean LoadingAnimation::m_imageLoaded2 IL_010E: brtrue => Label10 IL_0113: ldarg.0 IL_0114: ldfld System.Boolean LoadingAnimation::m_fadeImage IL_0119: brfalse => Label11 IL_011E: Label10 IL_011E: ldarg.0 IL_011F: ldc.r4 0 IL_0124: ldarg.0 IL_0125: ldfld System.Single LoadingAnimation::m_imageAlpha IL_012A: ldloc.0 IL_012B: ldc.r4 2 IL_0130: mul IL_0131: sub IL_0132: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_0137: stfld System.Single LoadingAnimation::m_imageAlpha IL_013C: ldarg.0 IL_013D: ldfld System.Single LoadingAnimation::m_imageAlpha IL_0142: ldc.r4 0 IL_0147: bne.un => Label12 IL_014C: ldarg.0 IL_014D: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_0152: ldnull IL_0153: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_0158: brfalse => Label13 IL_015D: ldarg.0 IL_015E: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_0163: call static System.Void UnityEngine.Object::Destroy(UnityEngine.Object obj) IL_0168: ldarg.0 IL_0169: ldnull IL_016A: stfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_016F: Label13 IL_016F: ldarg.0 IL_0170: ldarg.0 IL_0171: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial2 IL_0176: stfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_017B: ldarg.0 IL_017C: ldnull IL_017D: stfld UnityEngine.Material LoadingAnimation::m_imageMaterial2 IL_0182: ldarg.0 IL_0183: ldarg.0 IL_0184: ldfld UnityEngine.Mesh LoadingAnimation::m_imageMesh2 IL_0189: stfld UnityEngine.Mesh LoadingAnimation::m_imageMesh IL_018E: ldarg.0 IL_018F: ldnull IL_0190: stfld UnityEngine.Mesh LoadingAnimation::m_imageMesh2 IL_0195: ldarg.0 IL_0196: ldarg.0 IL_0197: ldfld System.Boolean LoadingAnimation::m_imageLoaded2 IL_019C: stfld System.Boolean LoadingAnimation::m_imageLoaded IL_01A1: ldarg.0 IL_01A2: ldc.i4.0 IL_01A3: stfld System.Boolean LoadingAnimation::m_imageLoaded2 IL_01A8: ldarg.0 IL_01A9: ldarg.0 IL_01AA: ldfld System.Boolean LoadingAnimation::m_imageShowAnimation2 IL_01AF: stfld System.Boolean LoadingAnimation::m_imageShowAnimation IL_01B4: ldarg.0 IL_01B5: ldarg.0 IL_01B6: ldfld System.Single LoadingAnimation::m_imageScale2 IL_01BB: stfld System.Single LoadingAnimation::m_imageScale IL_01C0: Label12 IL_01C0: br => Label14 IL_01C5: Label11 IL_01C5: ldarg.0 IL_01C6: ldc.r4 1 IL_01CB: ldarg.0 IL_01CC: ldfld System.Single LoadingAnimation::m_imageAlpha IL_01D1: ldloc.0 IL_01D2: ldc.r4 2 IL_01D7: mul IL_01D8: add IL_01D9: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_01DE: stfld System.Single LoadingAnimation::m_imageAlpha IL_01E3: Label9 IL_01E3: Label14 IL_01E3: ldarg.0 IL_01E4: ldfld System.Boolean LoadingAnimation::m_textLoaded IL_01E9: brfalse => Label15 IL_01EE: ldarg.0 IL_01EF: ldc.r4 1 IL_01F4: ldarg.0 IL_01F5: ldfld System.Single LoadingAnimation::m_textAlpha IL_01FA: ldloc.0 IL_01FB: ldc.r4 2 IL_0200: mul IL_0201: add IL_0202: call static System.Single UnityEngine.Mathf::Min(System.Single a, System.Single b) IL_0207: stfld System.Single LoadingAnimation::m_textAlpha IL_020C: Label15 IL_020C: ldarg.0 IL_020D: ldfld System.Boolean LoadingAnimation::m_fadeAway IL_0212: brfalse => Label16 IL_0217: ldarg.0 IL_0218: ldfld UnityEngine.Camera LoadingAnimation::m_camera IL_021D: ldc.i4.4 IL_021E: callvirt System.Void UnityEngine.Camera::set_clearFlags(UnityEngine.CameraClearFlags value) IL_0223: ldarg.0 IL_0224: ldc.r4 0 IL_0229: ldarg.0 IL_022A: ldfld System.Single LoadingAnimation::m_totalAlpha IL_022F: ldloc.0 IL_0230: ldc.r4 4 IL_0235: mul IL_0236: sub IL_0237: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_023C: stfld System.Single LoadingAnimation::m_totalAlpha IL_0241: ldarg.0 IL_0242: ldfld System.Single LoadingAnimation::m_totalAlpha IL_0247: ldc.r4 0.001 IL_024C: bge.un => Label17 IL_0251: ldarg.0 IL_0252: ldc.i4.0 IL_0253: call System.Void UnityEngine.Behaviour::set_enabled(System.Boolean value) IL_0258: Label17 IL_0258: br => Label18 IL_025D: Label16 IL_025D: ldarg.0 IL_025E: ldfld UnityEngine.Camera LoadingAnimation::m_camera IL_0263: ldc.i4.2 IL_0264: callvirt System.Void UnityEngine.Camera::set_clearFlags(UnityEngine.CameraClearFlags value) IL_0269: // end original IL_0269: Label18 IL_0269: ret DONE ### Harmony id=com.github.algernon-A.csl.lsmr, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void AlgernonCommons.Patching.PatcherBase::UnpatchMethod(System.Reflection.MethodInfo target, System.Reflection.MethodInfo patch), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F59B280 ### At 2022-09-14 06.36.30 ### Patch: System.Void LoadingAnimation::OnPostRender() ### Replacement: static System.Void LoadingAnimation::LoadingAnimation.OnPostRender_Patch0(LoadingAnimation this) IL_0000: Local var 0: UnityEngine.Matrix4x4 IL_0000: Local var 1: System.Single IL_0000: Local var 2: System.Single IL_0000: Local var 3: UnityEngine.Texture2D IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Quaternion IL_0000: Local var 6: UnityEngine.Vector3 IL_0000: Local var 7: UnityEngine.Matrix4x4 IL_0000: Local var 8: System.Single IL_0000: Local var 9: UnityEngine.Vector3 IL_0000: Local var 10: UnityEngine.Quaternion IL_0000: Local var 11: UnityEngine.Vector3 IL_0000: Local var 12: UnityEngine.Matrix4x4 IL_0000: Local var 13: System.Single IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Quaternion IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Matrix4x4 IL_0000: Local var 18: System.Single IL_0000: Local var 19: UnityEngine.Vector3 IL_0000: Local var 20: UnityEngine.Quaternion IL_0000: Local var 21: UnityEngine.Vector3 IL_0000: // start original IL_0000: ldarg.0 IL_0001: ldfld System.Boolean LoadingAnimation::m_imageLoaded IL_0006: brfalse => Label0 IL_000B: ldloca.s 0 (UnityEngine.Matrix4x4) IL_000D: initobj UnityEngine.Matrix4x4 IL_0013: ldc.r4 1 IL_0018: stloc.1 IL_0019: ldc.r4 2 IL_001E: ldarg.0 IL_001F: ldfld System.Single LoadingAnimation::m_imageScale IL_0024: mul IL_0025: stloc.2 IL_0026: ldarg.0 IL_0027: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_002C: callvirt UnityEngine.Texture UnityEngine.Material::get_mainTexture() IL_0031: isinst UnityEngine.Texture2D IL_0036: stloc.3 IL_0037: ldloc.3 IL_0038: ldnull IL_0039: call static System.Boolean UnityEngine.Object::op_Inequality(UnityEngine.Object x, UnityEngine.Object y) IL_003E: brfalse => Label1 IL_0043: ldloc.3 IL_0044: callvirt virtual System.Int32 UnityEngine.Texture::get_width() IL_0049: conv.r4 IL_004A: ldloc.3 IL_004B: callvirt virtual System.Int32 UnityEngine.Texture::get_height() IL_0050: conv.r4 IL_0051: div IL_0052: stloc.1 IL_0053: Label1 IL_0053: ldloca.s 4 (UnityEngine.Vector3) IL_0055: ldc.r4 0 IL_005A: ldc.r4 0 IL_005F: ldc.r4 10 IL_0064: call System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0069: call static UnityEngine.Quaternion UnityEngine.Quaternion::get_identity() IL_006E: stloc.s 5 (UnityEngine.Quaternion) IL_0070: ldloca.s 6 (UnityEngine.Vector3) IL_0072: ldloc.2 IL_0073: ldloc.1 IL_0074: mul IL_0075: ldloc.2 IL_0076: ldloc.2 IL_0077: call System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_007C: ldloca.s 0 (UnityEngine.Matrix4x4) IL_007E: ldloc.s 4 (UnityEngine.Vector3) IL_0080: ldloc.s 5 (UnityEngine.Quaternion) IL_0082: ldloc.s 6 (UnityEngine.Vector3) IL_0084: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3 pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s) IL_0089: ldarg.0 IL_008A: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_008F: ldc.r4 1 IL_0094: ldc.r4 1 IL_0099: ldc.r4 1 IL_009E: ldarg.0 IL_009F: ldfld System.Single LoadingAnimation::m_imageAlpha IL_00A4: ldarg.0 IL_00A5: ldfld System.Single LoadingAnimation::m_totalAlpha IL_00AA: mul IL_00AB: newobj System.Void UnityEngine.Color::.ctor(System.Single r, System.Single g, System.Single b, System.Single a) IL_00B0: callvirt System.Void UnityEngine.Material::set_color(UnityEngine.Color value) IL_00B5: ldarg.0 IL_00B6: ldfld UnityEngine.Material LoadingAnimation::m_imageMaterial IL_00BB: ldc.i4.0 IL_00BC: callvirt System.Boolean UnityEngine.Material::SetPass(System.Int32 pass) IL_00C1: brfalse => Label2 IL_00C6: ldarg.0 IL_00C7: ldfld UnityEngine.Mesh LoadingAnimation::m_imageMesh IL_00CC: ldloc.0 IL_00CD: call static System.Void UnityEngine.Graphics::DrawMeshNow(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix) IL_00D2: Label0 IL_00D2: Label2 IL_00D2: ldarg.0 IL_00D3: ldfld System.Boolean LoadingAnimation::m_animationLoaded IL_00D8: brfalse => Label3 IL_00DD: ldloca.s 7 (UnityEngine.Matrix4x4) IL_00DF: initobj UnityEngine.Matrix4x4 IL_00E5: ldarg.0 IL_00E6: ldfld System.Single LoadingAnimation::m_animationScale IL_00EB: stloc.s 8 (System.Single) IL_00ED: ldloca.s 9 (UnityEngine.Vector3) IL_00EF: ldc.r4 0 IL_00F4: ldc.r4 0 IL_00F9: ldc.r4 10 IL_00FE: call System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0103: ldarg.0 IL_0104: ldfld System.Single LoadingAnimation::m_timer IL_0109: ldarg.0 IL_010A: ldfld System.Single LoadingAnimation::m_rotationSpeed IL_010F: mul IL_0110: call static UnityEngine.Vector3 UnityEngine.Vector3::get_back() IL_0115: call static UnityEngine.Quaternion UnityEngine.Quaternion::AngleAxis(System.Single angle, UnityEngine.Vector3 axis) IL_011A: stloc.s 10 (UnityEngine.Quaternion) IL_011C: ldloca.s 11 (UnityEngine.Vector3) IL_011E: ldloc.s 8 (System.Single) IL_0120: ldloc.s 8 (System.Single) IL_0122: ldloc.s 8 (System.Single) IL_0124: call System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0129: ldloca.s 7 (UnityEngine.Matrix4x4) IL_012B: ldloc.s 9 (UnityEngine.Vector3) IL_012D: ldloc.s 10 (UnityEngine.Quaternion) IL_012F: ldloc.s 11 (UnityEngine.Vector3) IL_0131: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3 pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s) IL_0136: ldarg.0 IL_0137: ldfld UnityEngine.Material LoadingAnimation::m_animationMaterial IL_013C: ldc.r4 1 IL_0141: ldc.r4 1 IL_0146: ldc.r4 1 IL_014B: ldarg.0 IL_014C: ldfld System.Single LoadingAnimation::m_animationAlpha IL_0151: ldarg.0 IL_0152: ldfld System.Single LoadingAnimation::m_totalAlpha IL_0157: mul IL_0158: newobj System.Void UnityEngine.Color::.ctor(System.Single r, System.Single g, System.Single b, System.Single a) IL_015D: callvirt System.Void UnityEngine.Material::set_color(UnityEngine.Color value) IL_0162: ldarg.0 IL_0163: ldfld UnityEngine.Material LoadingAnimation::m_animationMaterial IL_0168: ldc.i4.0 IL_0169: callvirt System.Boolean UnityEngine.Material::SetPass(System.Int32 pass) IL_016E: brfalse => Label4 IL_0173: ldarg.0 IL_0174: ldfld UnityEngine.Mesh LoadingAnimation::m_animationMesh IL_0179: ldloc.s 7 (UnityEngine.Matrix4x4) IL_017B: call static System.Void UnityEngine.Graphics::DrawMeshNow(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix) IL_0180: Label3 IL_0180: Label4 IL_0180: ldarg.0 IL_0181: ldfld System.Boolean LoadingAnimation::m_animationLoaded IL_0186: brfalse => Label5 IL_018B: ldarg.0 IL_018C: ldfld System.Single LoadingAnimation::m_progress IL_0191: ldc.r4 0 IL_0196: blt.un => Label6 IL_019B: ldloca.s 12 (UnityEngine.Matrix4x4) IL_019D: initobj UnityEngine.Matrix4x4 IL_01A3: ldarg.0 IL_01A4: ldfld System.Single LoadingAnimation::m_animationScale IL_01A9: stloc.s 13 (System.Single) IL_01AB: ldloca.s 14 (UnityEngine.Vector3) IL_01AD: ldc.r4 0 IL_01B2: ldarg.0 IL_01B3: ldfld System.Single LoadingAnimation::m_animationScale IL_01B8: ldc.r4 -0.8 IL_01BD: mul IL_01BE: ldc.r4 10 IL_01C3: call System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_01C8: call static UnityEngine.Quaternion UnityEngine.Quaternion::get_identity() IL_01CD: stloc.s 15 (UnityEngine.Quaternion) IL_01CF: ldloca.s 16 (UnityEngine.Vector3) IL_01D1: ldloc.s 13 (System.Single) IL_01D3: ldc.r4 2 IL_01D8: mul IL_01D9: ldloc.s 13 (System.Single) IL_01DB: ldc.r4 8 IL_01E0: div IL_01E1: ldloc.s 13 (System.Single) IL_01E3: call System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_01E8: ldloca.s 12 (UnityEngine.Matrix4x4) IL_01EA: ldloc.s 14 (UnityEngine.Vector3) IL_01EC: ldloc.s 15 (UnityEngine.Quaternion) IL_01EE: ldloc.s 16 (UnityEngine.Vector3) IL_01F0: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3 pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s) IL_01F5: ldarg.0 IL_01F6: ldfld UnityEngine.Material LoadingAnimation::m_barBGMaterial IL_01FB: ldc.r4 1 IL_0200: ldc.r4 1 IL_0205: ldc.r4 1 IL_020A: ldarg.0 IL_020B: ldfld System.Single LoadingAnimation::m_animationAlpha IL_0210: ldarg.0 IL_0211: ldfld System.Single LoadingAnimation::m_totalAlpha IL_0216: mul IL_0217: newobj System.Void UnityEngine.Color::.ctor(System.Single r, System.Single g, System.Single b, System.Single a) IL_021C: callvirt System.Void UnityEngine.Material::set_color(UnityEngine.Color value) IL_0221: ldarg.0 IL_0222: ldfld UnityEngine.Material LoadingAnimation::m_barBGMaterial IL_0227: ldc.i4.0 IL_0228: callvirt System.Boolean UnityEngine.Material::SetPass(System.Int32 pass) IL_022D: brfalse => Label7 IL_0232: ldarg.0 IL_0233: ldfld UnityEngine.Mesh LoadingAnimation::m_animationMesh IL_0238: ldloc.s 12 (UnityEngine.Matrix4x4) IL_023A: call static System.Void UnityEngine.Graphics::DrawMeshNow(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix) IL_023F: Label7 IL_023F: ldloca.s 16 (UnityEngine.Vector3) IL_0241: dup IL_0242: ldfld System.Single UnityEngine.Vector3::y IL_0247: ldc.r4 0.8 IL_024C: mul IL_024D: stfld System.Single UnityEngine.Vector3::y IL_0252: ldloca.s 16 (UnityEngine.Vector3) IL_0254: dup IL_0255: ldfld System.Single UnityEngine.Vector3::x IL_025A: ldc.r4 0.9875 IL_025F: mul IL_0260: stfld System.Single UnityEngine.Vector3::x IL_0265: ldloca.s 14 (UnityEngine.Vector3) IL_0267: dup IL_0268: ldfld System.Single UnityEngine.Vector3::x IL_026D: ldloca.s 16 (UnityEngine.Vector3) IL_026F: ldfld System.Single UnityEngine.Vector3::x IL_0274: ldc.r4 1 IL_0279: ldarg.0 IL_027A: ldfld System.Single LoadingAnimation::m_progress IL_027F: sub IL_0280: mul IL_0281: ldc.r4 0.5 IL_0286: mul IL_0287: sub IL_0288: stfld System.Single UnityEngine.Vector3::x IL_028D: ldloca.s 16 (UnityEngine.Vector3) IL_028F: dup IL_0290: ldfld System.Single UnityEngine.Vector3::x IL_0295: ldarg.0 IL_0296: ldfld System.Single LoadingAnimation::m_progress IL_029B: mul IL_029C: stfld System.Single UnityEngine.Vector3::x IL_02A1: ldloca.s 12 (UnityEngine.Matrix4x4) IL_02A3: ldloc.s 14 (UnityEngine.Vector3) IL_02A5: ldloc.s 15 (UnityEngine.Quaternion) IL_02A7: ldloc.s 16 (UnityEngine.Vector3) IL_02A9: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3 pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s) IL_02AE: ldarg.0 IL_02AF: ldfld UnityEngine.Material LoadingAnimation::m_barFGMaterial IL_02B4: ldc.r4 1 IL_02B9: ldc.r4 1 IL_02BE: ldc.r4 1 IL_02C3: ldarg.0 IL_02C4: ldfld System.Single LoadingAnimation::m_animationAlpha IL_02C9: ldarg.0 IL_02CA: ldfld System.Single LoadingAnimation::m_totalAlpha IL_02CF: mul IL_02D0: newobj System.Void UnityEngine.Color::.ctor(System.Single r, System.Single g, System.Single b, System.Single a) IL_02D5: callvirt System.Void UnityEngine.Material::set_color(UnityEngine.Color value) IL_02DA: ldarg.0 IL_02DB: ldfld UnityEngine.Material LoadingAnimation::m_barFGMaterial IL_02E0: ldc.i4.0 IL_02E1: callvirt System.Boolean UnityEngine.Material::SetPass(System.Int32 pass) IL_02E6: brfalse => Label8 IL_02EB: ldarg.0 IL_02EC: ldfld UnityEngine.Mesh LoadingAnimation::m_animationMesh IL_02F1: ldloc.s 12 (UnityEngine.Matrix4x4) IL_02F3: call static System.Void UnityEngine.Graphics::DrawMeshNow(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix) IL_02F8: Label5 IL_02F8: Label6 IL_02F8: Label8 IL_02F8: ldarg.0 IL_02F9: ldfld System.Boolean LoadingAnimation::m_textLoaded IL_02FE: brfalse => Label9 IL_0303: ldloca.s 17 (UnityEngine.Matrix4x4) IL_0305: initobj UnityEngine.Matrix4x4 IL_030B: ldc.r4 0.001851852 IL_0310: stloc.s 18 (System.Single) IL_0312: ldloca.s 19 (UnityEngine.Vector3) IL_0314: ldc.r4 0 IL_0319: ldarg.0 IL_031A: ldfld System.Single LoadingAnimation::m_animationScale IL_031F: ldc.r4 -1.2 IL_0324: mul IL_0325: ldc.r4 10 IL_032A: call System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_032F: call static UnityEngine.Quaternion UnityEngine.Quaternion::get_identity() IL_0334: stloc.s 20 (UnityEngine.Quaternion) IL_0336: ldloca.s 21 (UnityEngine.Vector3) IL_0338: ldloc.s 18 (System.Single) IL_033A: ldloc.s 18 (System.Single) IL_033C: ldloc.s 18 (System.Single) IL_033E: call System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0343: ldloca.s 17 (UnityEngine.Matrix4x4) IL_0345: ldloc.s 19 (UnityEngine.Vector3) IL_0347: ldloc.s 20 (UnityEngine.Quaternion) IL_0349: ldloc.s 21 (UnityEngine.Vector3) IL_034B: call System.Void UnityEngine.Matrix4x4::SetTRS(UnityEngine.Vector3 pos, UnityEngine.Quaternion q, UnityEngine.Vector3 s) IL_0350: ldarg.0 IL_0351: ldfld UnityEngine.Material LoadingAnimation::m_textMaterial IL_0356: ldc.r4 1 IL_035B: ldc.r4 1 IL_0360: ldc.r4 1 IL_0365: ldarg.0 IL_0366: ldfld System.Single LoadingAnimation::m_textAlpha IL_036B: ldarg.0 IL_036C: ldfld System.Single LoadingAnimation::m_totalAlpha IL_0371: mul IL_0372: newobj System.Void UnityEngine.Color::.ctor(System.Single r, System.Single g, System.Single b, System.Single a) IL_0377: callvirt System.Void UnityEngine.Material::set_color(UnityEngine.Color value) IL_037C: ldarg.0 IL_037D: ldfld UnityEngine.Material LoadingAnimation::m_textMaterial IL_0382: ldc.i4.0 IL_0383: callvirt System.Boolean UnityEngine.Material::SetPass(System.Int32 pass) IL_0388: brfalse => Label10 IL_038D: ldarg.0 IL_038E: ldfld UnityEngine.Mesh LoadingAnimation::m_textMesh IL_0393: ldloc.s 17 (UnityEngine.Matrix4x4) IL_0395: call static System.Void UnityEngine.Graphics::DrawMeshNow(UnityEngine.Mesh mesh, UnityEngine.Matrix4x4 matrix) IL_039A: // end original IL_039A: Label9 IL_039A: Label10 IL_039A: ret DONE ### Harmony id=com.github.algernon-A.csl.lsmr, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void AlgernonCommons.Patching.PatcherBase::UnpatchMethod(System.Reflection.MethodInfo target, System.Reflection.MethodInfo patch), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F59B280 ### At 2022-09-14 06.36.30 ### Patch: System.Void LoadingAnimation::OnGUI() ### Replacement: static System.Void LoadingAnimation::LoadingAnimation.OnGUI_Patch0(LoadingAnimation this) IL_0000: Local var 0: UnityEngine.EventType IL_0000: // start original IL_0000: call static UnityEngine.Event UnityEngine.Event::get_current() IL_0005: callvirt UnityEngine.EventType UnityEngine.Event::get_type() IL_000A: stloc.0 IL_000B: ldloc.0 IL_000C: ldc.i4.7 IL_000D: beq => Label0 IL_0012: ldloc.0 IL_0013: ldc.i4.8 IL_0014: beq => Label1 IL_0019: ldloc.0 IL_001A: brfalse => Label2 IL_001F: br => Label3 IL_0024: Label0 IL_0024: Label1 IL_0024: br => Label4 IL_0029: Label2 IL_0029: call static UnityEngine.Event UnityEngine.Event::get_current() IL_002E: callvirt System.Void UnityEngine.Event::Use() IL_0033: ldarg.0 IL_0034: ldc.i4.1 IL_0035: stfld System.Boolean LoadingAnimation::m_skipped IL_003A: br => Label5 IL_003F: Label3 IL_003F: call static UnityEngine.Event UnityEngine.Event::get_current() IL_0044: callvirt System.Void UnityEngine.Event::Use() IL_0049: br => Label6 IL_004E: // end original IL_004E: Label4 IL_004E: Label5 IL_004E: Label6 IL_004E: ret DONE ### Harmony id=com.github.algernon-A.csl.lsmr, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void AlgernonCommons.Patching.PatcherBase::UnpatchMethod(System.Reflection.MethodInfo target, System.Reflection.MethodInfo patch), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F59B280 ### At 2022-09-14 06.36.30 ### Patch: static System.String BuildConfig::ResolveCustomAssetName(System.String name) ### Replacement: static System.String BuildConfig::BuildConfig.ResolveCustomAssetName_Patch0(System.String name) IL_0000: Local var 0: ColossalFramework.Packaging.Package/Asset IL_0000: Local var 1: System.Collections.Generic.IEnumerator`1 IL_0000: Local var 2: System.String IL_0000: // start original IL_0000: ldc.i4.1 IL_0001: newarr ColossalFramework.Packaging.Package+AssetType IL_0006: dup IL_0007: ldc.i4.0 IL_0008: ldsfld ColossalFramework.Packaging.AssetType ColossalFramework.Packaging.AssetType::Object IL_000D: stelem.ref IL_000E: call static System.Collections.Generic.IEnumerable`1 ColossalFramework.Packaging.PackageManager::FilterAssets(AssetType[] assetTypes) IL_0013: callvirt abstract virtual System.Collections.Generic.IEnumerator`1 System.Collections.Generic.IEnumerable`1::GetEnumerator() IL_0018: stloc.1 .try { IL_0019: br => Label0 IL_001E: Label4 IL_001E: ldloc.1 IL_001F: callvirt abstract virtual ColossalFramework.Packaging.Asset System.Collections.Generic.IEnumerator`1::get_Current() IL_0024: stloc.0 IL_0025: ldloc.0 IL_0026: callvirt System.Boolean ColossalFramework.Packaging.Asset::get_isEnabled() IL_002B: brfalse => Label1 IL_0030: ldloc.0 IL_0031: callvirt System.String ColossalFramework.Packaging.Asset::get_name() IL_0036: ldarg.0 IL_0037: call static System.Boolean System.String::op_Equality(System.String a, System.String b) IL_003C: brfalse => Label2 IL_0041: ldloc.0 IL_0042: callvirt ColossalFramework.Packaging.Package ColossalFramework.Packaging.Asset::get_package() IL_0047: callvirt System.String ColossalFramework.Packaging.Package::get_packageName() IL_004C: ldstr "." IL_0051: ldarg.0 IL_0052: call static System.String System.String::Concat(System.String str0, System.String str1, System.String str2) IL_0057: stloc.2 IL_0058: leave => Label3 IL_005D: Label0 IL_005D: Label1 IL_005D: Label2 IL_005D: ldloc.1 IL_005E: callvirt abstract virtual System.Boolean System.Collections.IEnumerator::MoveNext() IL_0063: brtrue => Label4 IL_0068: leave => Label5 IL_006D: leave => (autogenerated) } // end try .finally { IL_0072: ldloc.1 IL_0073: brfalse => Label6 IL_0078: ldloc.1 IL_0079: callvirt abstract virtual System.Void System.IDisposable::Dispose() IL_007E: Label6 IL_007E: endfinally IL_007F: leave => (autogenerated) } // end handler IL_0080: Label5 IL_0080: ldarg.0 IL_0081: br => Label11 IL_0086: Label3 IL_0086: ldloc.2 IL_0087: // end original IL_0087: Label11 IL_0087: ret DONE ### Harmony id=com.github.algernon-A.csl.lsmr, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void AlgernonCommons.Patching.PatcherBase::UnpatchMethod(System.Reflection.MethodInfo target, System.Reflection.MethodInfo patch), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F59B280 ### At 2022-09-14 06.36.30 ### Patch: System.Byte[] ColossalFramework.Packaging.PackageReader::ReadByteArray() ### Replacement: static System.Byte[] ColossalFramework.Packaging.PackageReader::ColossalFramework.Packaging.PackageReader.ReadByteArray_Patch0(ColossalFramework.Packaging.PackageReader this) IL_0000: Local var 0: System.Int32 IL_0000: Local var 1: System.Byte[] IL_0000: Local var 2: System.Int32 IL_0000: // start original IL_0000: ldarg.0 IL_0001: callvirt virtual System.Int32 System.IO.BinaryReader::ReadInt32() IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: newarr System.Byte IL_000D: stloc.1 IL_000E: ldc.i4.0 IL_000F: stloc.2 IL_0010: br => Label0 IL_0015: Label1 IL_0015: ldloc.1 IL_0016: ldloc.2 IL_0017: ldarg.0 IL_0018: callvirt virtual System.Byte System.IO.BinaryReader::ReadByte() IL_001D: stelem.i1 IL_001E: ldloc.2 IL_001F: ldc.i4.1 IL_0020: add IL_0021: stloc.2 IL_0022: Label0 IL_0022: ldloc.2 IL_0023: ldloc.0 IL_0024: blt => Label1 IL_0029: ldloc.1 IL_002A: // end original IL_002A: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 06.40.03 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 06.40.10 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 06.40.13 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 06.40.20 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 06.42.15 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 06.42.18 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 06.42.20 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 06.42.24 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 06.43.15 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 06.43.17 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 06.43.17 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 06.43.24 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 06.46.37 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 06.46.57 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 06.47.57 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 06.47.59 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 06.54.41 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 06.54.41 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 06.54.41 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 06.54.55 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.10.26 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.10.31 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.10.31 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.10.42 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.10.42 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.10.45 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.10.56 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.11.08 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.11.16 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.11.20 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.12.15 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.12.25 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.12.31 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.12.40 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.20.01 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.20.12 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.20.50 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.20.52 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.20.55 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.20.57 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.21.03 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.21.12 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.21.48 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.21.49 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.21.54 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.22.08 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.22.41 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.22.42 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.22.45 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.22.51 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.23.11 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.23.18 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.25.07 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 07.25.13 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 08.03.44 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 08.04.03 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 08.05.00 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 08.05.05 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 08.05.07 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 08.05.09 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 08.11.48 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 08.11.53 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 08.13.37 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 08.13.39 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 08.13.57 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 08.13.58 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 08.13.58 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 08.13.58 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::UnpatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 08.13.58 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch0(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: // start original IL_0000: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0005: stloc.0 IL_0006: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0008: ldarg.1 IL_0009: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_000E: ldloc.0 IL_000F: ldfld Array16`1 NetManager::m_nodes IL_0014: ldfld NetNode[] Array16`1::m_buffer IL_0019: ldarg.2 IL_001A: ldfld System.UInt16 NetSegment::m_startNode IL_001F: ldelema NetNode IL_0024: ldfld UnityEngine.Vector3 NetNode::m_position IL_0029: stloc.2 IL_002A: ldloc.0 IL_002B: ldfld Array16`1 NetManager::m_nodes IL_0030: ldfld NetNode[] Array16`1::m_buffer IL_0035: ldarg.2 IL_0036: ldfld System.UInt16 NetSegment::m_endNode IL_003B: ldelema NetNode IL_0040: ldfld UnityEngine.Vector3 NetNode::m_position IL_0045: stloc.3 IL_0046: ldarg.2 IL_0047: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_004C: stloc.s 4 (UnityEngine.Vector3) IL_004E: ldarg.2 IL_004F: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0054: stloc.s 5 (UnityEngine.Vector3) IL_0056: ldloca.s 4 (UnityEngine.Vector3) IL_0058: ldfld System.Single UnityEngine.Vector3::x IL_005D: ldloca.s 5 (UnityEngine.Vector3) IL_005F: ldfld System.Single UnityEngine.Vector3::x IL_0064: mul IL_0065: ldloca.s 4 (UnityEngine.Vector3) IL_0067: ldfld System.Single UnityEngine.Vector3::z IL_006C: ldloca.s 5 (UnityEngine.Vector3) IL_006E: ldfld System.Single UnityEngine.Vector3::z IL_0073: mul IL_0074: add IL_0075: stloc.s 6 (System.Single) IL_0077: ldloc.2 IL_0078: ldloc.s 4 (UnityEngine.Vector3) IL_007A: ldloc.3 IL_007B: ldloc.s 5 (UnityEngine.Vector3) IL_007D: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_0082: ldc.i4.0 IL_0083: ceq IL_0085: stloc.s 7 (System.Boolean) IL_0087: ldc.r4 8 IL_008C: ldarg.0 IL_008D: ldfld NetInfo NetAI::m_info IL_0092: ldfld System.Single NetInfo::m_halfWidth IL_0097: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_009C: stloc.s 8 (System.Single) IL_009E: ldc.r4 32 IL_00A3: stloc.s 9 (System.Single) IL_00A5: ldloc.s 8 (System.Single) IL_00A7: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00AC: stloc.s 10 (System.Int32) IL_00AE: ldloc.s 7 (System.Boolean) IL_00B0: brfalse => Label0 IL_00B5: ldloc.3 IL_00B6: ldloc.2 IL_00B7: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00BC: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00C1: stloc.s 11 (System.Single) IL_00C3: ldloca.s 4 (UnityEngine.Vector3) IL_00C5: ldfld System.Single UnityEngine.Vector3::x IL_00CA: ldloca.s 5 (UnityEngine.Vector3) IL_00CC: ldfld System.Single UnityEngine.Vector3::z IL_00D1: mul IL_00D2: ldloca.s 4 (UnityEngine.Vector3) IL_00D4: ldfld System.Single UnityEngine.Vector3::z IL_00D9: ldloca.s 5 (UnityEngine.Vector3) IL_00DB: ldfld System.Single UnityEngine.Vector3::x IL_00E0: mul IL_00E1: sub IL_00E2: ldc.r4 0 IL_00E7: cgt IL_00E9: stloc.s 12 (System.Boolean) IL_00EB: ldloc.s 6 (System.Single) IL_00ED: ldc.r4 -0.8 IL_00F2: blt => Label1 IL_00F7: ldloc.s 11 (System.Single) IL_00F9: ldc.r4 50 IL_00FE: cgt IL_0100: br => Label2 IL_0105: Label1 IL_0105: ldc.i4.1 IL_0106: Label2 IL_0106: stloc.s 13 (System.Boolean) IL_0108: ldloc.s 12 (System.Boolean) IL_010A: brfalse => Label3 IL_010F: ldloc.s 8 (System.Single) IL_0111: neg IL_0112: stloc.s 8 (System.Single) IL_0114: ldloc.s 9 (System.Single) IL_0116: neg IL_0117: stloc.s 9 (System.Single) IL_0119: Label3 IL_0119: ldloc.2 IL_011A: ldloca.s 4 (UnityEngine.Vector3) IL_011C: ldfld System.Single UnityEngine.Vector3::z IL_0121: ldc.r4 0 IL_0126: ldloca.s 4 (UnityEngine.Vector3) IL_0128: ldfld System.Single UnityEngine.Vector3::x IL_012D: neg IL_012E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0133: ldloc.s 8 (System.Single) IL_0135: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_013A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_013F: stloc.s 14 (UnityEngine.Vector3) IL_0141: ldloc.3 IL_0142: ldloca.s 5 (UnityEngine.Vector3) IL_0144: ldfld System.Single UnityEngine.Vector3::z IL_0149: ldc.r4 0 IL_014E: ldloca.s 5 (UnityEngine.Vector3) IL_0150: ldfld System.Single UnityEngine.Vector3::x IL_0155: neg IL_0156: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_015B: ldloc.s 8 (System.Single) IL_015D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0162: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0167: stloc.s 15 (UnityEngine.Vector3) IL_0169: ldloc.s 14 (UnityEngine.Vector3) IL_016B: ldloc.s 4 (UnityEngine.Vector3) IL_016D: ldloc.s 15 (UnityEngine.Vector3) IL_016F: ldloc.s 5 (UnityEngine.Vector3) IL_0171: ldc.i4.1 IL_0172: ldc.i4.1 IL_0173: ldloca.s 16 (UnityEngine.Vector3) IL_0175: ldloca.s 17 (UnityEngine.Vector3) IL_0177: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_017C: ldloc.s 13 (System.Boolean) IL_017E: brfalse => Label4 IL_0183: ldloc.s 6 (System.Single) IL_0185: ldc.r4 0.025 IL_018A: mul IL_018B: ldc.r4 0.04 IL_0190: add IL_0191: stloc.s 18 (System.Single) IL_0193: ldloc.s 6 (System.Single) IL_0195: ldc.r4 0.025 IL_019A: mul IL_019B: ldc.r4 0.06 IL_01A0: add IL_01A1: stloc.s 19 (System.Single) IL_01A3: ldloc.s 6 (System.Single) IL_01A5: ldc.r4 -0.9 IL_01AA: bge.un => Label5 IL_01AF: ldloc.s 18 (System.Single) IL_01B1: stloc.s 19 (System.Single) IL_01B3: Label5 IL_01B3: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01B5: ldloc.s 14 (UnityEngine.Vector3) IL_01B7: ldloc.s 16 (UnityEngine.Vector3) IL_01B9: ldloc.s 17 (UnityEngine.Vector3) IL_01BB: ldloc.s 15 (UnityEngine.Vector3) IL_01BD: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01C2: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01C4: ldloc.s 18 (System.Single) IL_01C6: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01CB: stloc.s 14 (UnityEngine.Vector3) IL_01CD: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01CF: ldc.r4 0.5 IL_01D4: ldloc.s 19 (System.Single) IL_01D6: sub IL_01D7: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01DC: stloc.s 16 (UnityEngine.Vector3) IL_01DE: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E0: ldc.r4 0.5 IL_01E5: ldloc.s 19 (System.Single) IL_01E7: add IL_01E8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01ED: stloc.s 17 (UnityEngine.Vector3) IL_01EF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F1: ldc.r4 1 IL_01F6: ldloc.s 18 (System.Single) IL_01F8: sub IL_01F9: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FE: stloc.s 15 (UnityEngine.Vector3) IL_0200: br => Label6 IL_0205: Label4 IL_0205: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0207: ldloc.s 14 (UnityEngine.Vector3) IL_0209: ldloc.s 16 (UnityEngine.Vector3) IL_020B: ldloc.s 17 (UnityEngine.Vector3) IL_020D: ldloc.s 15 (UnityEngine.Vector3) IL_020F: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0214: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0216: ldc.r4 0.86 IL_021B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0220: stloc.s 16 (UnityEngine.Vector3) IL_0222: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0224: ldc.r4 0.14 IL_0229: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_022E: stloc.s 14 (UnityEngine.Vector3) IL_0230: Label6 IL_0230: ldloc.s 16 (UnityEngine.Vector3) IL_0232: ldloc.s 14 (UnityEngine.Vector3) IL_0234: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0239: ldloca.s 22 (System.Single) IL_023B: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0240: stloc.s 23 (UnityEngine.Vector3) IL_0242: ldloc.s 22 (System.Single) IL_0244: ldc.r4 8 IL_0249: div IL_024A: ldc.r4 0.01 IL_024F: add IL_0250: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0255: stloc.s 24 (System.Int32) IL_0257: ldloc.s 22 (System.Single) IL_0259: ldc.r4 0.5 IL_025E: mul IL_025F: ldloc.s 24 (System.Int32) IL_0261: ldc.i4.8 IL_0262: sub IL_0263: conv.r4 IL_0264: ldloc.s 12 (System.Boolean) IL_0266: brfalse => Label7 IL_026B: ldc.r4 4 IL_0270: br => Label8 IL_0275: Label7 IL_0275: ldc.r4 -4 IL_027A: Label8 IL_027A: mul IL_027B: add IL_027C: stloc.s 25 (System.Single) IL_027E: ldloc.s 24 (System.Int32) IL_0280: brfalse => Label9 IL_0285: ldloc.s 12 (System.Boolean) IL_0287: brfalse => Label10 IL_028C: ldloca.s 23 (UnityEngine.Vector3) IL_028E: ldfld System.Single UnityEngine.Vector3::x IL_0293: neg IL_0294: ldloca.s 23 (UnityEngine.Vector3) IL_0296: ldfld System.Single UnityEngine.Vector3::z IL_029B: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02A0: br => Label11 IL_02A5: Label10 IL_02A5: ldloca.s 23 (UnityEngine.Vector3) IL_02A7: ldfld System.Single UnityEngine.Vector3::x IL_02AC: ldloca.s 23 (UnityEngine.Vector3) IL_02AE: ldfld System.Single UnityEngine.Vector3::z IL_02B3: neg IL_02B4: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02B9: Label11 IL_02B9: stloc.s 26 (System.Single) IL_02BB: ldloc.s 14 (UnityEngine.Vector3) IL_02BD: ldloca.s 23 (UnityEngine.Vector3) IL_02BF: ldfld System.Single UnityEngine.Vector3::x IL_02C4: ldloc.s 25 (System.Single) IL_02C6: mul IL_02C7: ldloca.s 23 (UnityEngine.Vector3) IL_02C9: ldfld System.Single UnityEngine.Vector3::z IL_02CE: ldloc.s 9 (System.Single) IL_02D0: mul IL_02D1: sub IL_02D2: ldc.r4 0 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::z IL_02DE: ldloc.s 25 (System.Single) IL_02E0: mul IL_02E1: ldloca.s 23 (UnityEngine.Vector3) IL_02E3: ldfld System.Single UnityEngine.Vector3::x IL_02E8: ldloc.s 9 (System.Single) IL_02EA: mul IL_02EB: add IL_02EC: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_02F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_02F6: stloc.s 27 (UnityEngine.Vector3) IL_02F8: ldloc.s 12 (System.Boolean) IL_02FA: brfalse => Label12 IL_02FF: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0304: ldarg.2 IL_0305: ldflda System.UInt16 NetSegment::m_blockStartRight IL_030A: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_030C: ldarg.1 IL_030D: ldloc.s 27 (UnityEngine.Vector3) IL_030F: ldloc.s 26 (System.Single) IL_0311: ldloc.s 24 (System.Int32) IL_0313: ldloc.s 10 (System.Int32) IL_0315: ldarg.2 IL_0316: ldfld System.UInt32 NetSegment::m_buildIndex IL_031B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0320: pop IL_0321: br => Label13 IL_0326: Label12 IL_0326: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_032B: ldarg.2 IL_032C: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0331: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0333: ldarg.1 IL_0334: ldloc.s 27 (UnityEngine.Vector3) IL_0336: ldloc.s 26 (System.Single) IL_0338: ldloc.s 24 (System.Int32) IL_033A: ldloc.s 10 (System.Int32) IL_033C: ldarg.2 IL_033D: ldfld System.UInt32 NetSegment::m_buildIndex IL_0342: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0347: pop IL_0348: Label9 IL_0348: Label13 IL_0348: ldloc.s 13 (System.Boolean) IL_034A: brfalse => Label14 IL_034F: ldloc.s 15 (UnityEngine.Vector3) IL_0351: ldloc.s 17 (UnityEngine.Vector3) IL_0353: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0358: ldloca.s 22 (System.Single) IL_035A: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_035F: stloc.s 23 (UnityEngine.Vector3) IL_0361: ldloc.s 22 (System.Single) IL_0363: ldc.r4 8 IL_0368: div IL_0369: ldc.r4 0.01 IL_036E: add IL_036F: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0374: stloc.s 24 (System.Int32) IL_0376: ldloc.s 22 (System.Single) IL_0378: ldc.r4 0.5 IL_037D: mul IL_037E: ldloc.s 24 (System.Int32) IL_0380: ldc.i4.8 IL_0381: sub IL_0382: conv.r4 IL_0383: ldloc.s 12 (System.Boolean) IL_0385: brfalse => Label15 IL_038A: ldc.r4 4 IL_038F: br => Label16 IL_0394: Label15 IL_0394: ldc.r4 -4 IL_0399: Label16 IL_0399: mul IL_039A: add IL_039B: stloc.s 25 (System.Single) IL_039D: ldloc.s 24 (System.Int32) IL_039F: brfalse => Label17 IL_03A4: ldloc.s 12 (System.Boolean) IL_03A6: brfalse => Label18 IL_03AB: ldloca.s 23 (UnityEngine.Vector3) IL_03AD: ldfld System.Single UnityEngine.Vector3::x IL_03B2: neg IL_03B3: ldloca.s 23 (UnityEngine.Vector3) IL_03B5: ldfld System.Single UnityEngine.Vector3::z IL_03BA: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03BF: br => Label19 IL_03C4: Label18 IL_03C4: ldloca.s 23 (UnityEngine.Vector3) IL_03C6: ldfld System.Single UnityEngine.Vector3::x IL_03CB: ldloca.s 23 (UnityEngine.Vector3) IL_03CD: ldfld System.Single UnityEngine.Vector3::z IL_03D2: neg IL_03D3: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03D8: Label19 IL_03D8: stloc.s 28 (System.Single) IL_03DA: ldloc.s 17 (UnityEngine.Vector3) IL_03DC: ldloca.s 23 (UnityEngine.Vector3) IL_03DE: ldfld System.Single UnityEngine.Vector3::x IL_03E3: ldloc.s 25 (System.Single) IL_03E5: mul IL_03E6: ldloca.s 23 (UnityEngine.Vector3) IL_03E8: ldfld System.Single UnityEngine.Vector3::z IL_03ED: ldloc.s 9 (System.Single) IL_03EF: mul IL_03F0: sub IL_03F1: ldc.r4 0 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::z IL_03FD: ldloc.s 25 (System.Single) IL_03FF: mul IL_0400: ldloca.s 23 (UnityEngine.Vector3) IL_0402: ldfld System.Single UnityEngine.Vector3::x IL_0407: ldloc.s 9 (System.Single) IL_0409: mul IL_040A: add IL_040B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0410: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0415: stloc.s 29 (UnityEngine.Vector3) IL_0417: ldloc.s 12 (System.Boolean) IL_0419: brfalse => Label20 IL_041E: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0423: ldarg.2 IL_0424: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0429: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_042B: ldarg.1 IL_042C: ldloc.s 29 (UnityEngine.Vector3) IL_042E: ldloc.s 28 (System.Single) IL_0430: ldloc.s 24 (System.Int32) IL_0432: ldloc.s 10 (System.Int32) IL_0434: ldarg.2 IL_0435: ldfld System.UInt32 NetSegment::m_buildIndex IL_043A: ldc.i4.1 IL_043B: add IL_043C: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0441: pop IL_0442: br => Label21 IL_0447: Label20 IL_0447: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_044C: ldarg.2 IL_044D: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0452: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0454: ldarg.1 IL_0455: ldloc.s 29 (UnityEngine.Vector3) IL_0457: ldloc.s 28 (System.Single) IL_0459: ldloc.s 24 (System.Int32) IL_045B: ldloc.s 10 (System.Int32) IL_045D: ldarg.2 IL_045E: ldfld System.UInt32 NetSegment::m_buildIndex IL_0463: ldc.i4.1 IL_0464: add IL_0465: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_046A: pop IL_046B: Label14 IL_046B: Label17 IL_046B: Label21 IL_046B: ldloc.2 IL_046C: ldloca.s 4 (UnityEngine.Vector3) IL_046E: ldfld System.Single UnityEngine.Vector3::z IL_0473: ldc.r4 0 IL_0478: ldloca.s 4 (UnityEngine.Vector3) IL_047A: ldfld System.Single UnityEngine.Vector3::x IL_047F: neg IL_0480: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0485: ldloc.s 8 (System.Single) IL_0487: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_048C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0491: stloc.s 30 (UnityEngine.Vector3) IL_0493: ldloc.3 IL_0494: ldloca.s 5 (UnityEngine.Vector3) IL_0496: ldfld System.Single UnityEngine.Vector3::z IL_049B: ldc.r4 0 IL_04A0: ldloca.s 5 (UnityEngine.Vector3) IL_04A2: ldfld System.Single UnityEngine.Vector3::x IL_04A7: neg IL_04A8: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04AD: ldloc.s 8 (System.Single) IL_04AF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04B4: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04B9: stloc.s 31 (UnityEngine.Vector3) IL_04BB: ldloc.s 30 (UnityEngine.Vector3) IL_04BD: ldloc.s 4 (UnityEngine.Vector3) IL_04BF: ldloc.s 31 (UnityEngine.Vector3) IL_04C1: ldloc.s 5 (UnityEngine.Vector3) IL_04C3: ldc.i4.1 IL_04C4: ldc.i4.1 IL_04C5: ldloca.s 32 (UnityEngine.Vector3) IL_04C7: ldloca.s 33 (UnityEngine.Vector3) IL_04C9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_04CE: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04D0: ldloc.s 30 (UnityEngine.Vector3) IL_04D2: ldloc.s 32 (UnityEngine.Vector3) IL_04D4: ldloc.s 33 (UnityEngine.Vector3) IL_04D6: ldloc.s 31 (UnityEngine.Vector3) IL_04D8: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_04DD: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04DF: ldc.r4 0.5 IL_04E4: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04E9: stloc.s 35 (UnityEngine.Vector3) IL_04EB: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_04ED: ldc.r4 0.25 IL_04F2: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_04F7: stloc.s 36 (UnityEngine.Vector3) IL_04F9: ldloc.s 30 (UnityEngine.Vector3) IL_04FB: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0500: ldloc.s 35 (UnityEngine.Vector3) IL_0502: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0507: ldloc.s 36 (UnityEngine.Vector3) IL_0509: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_050E: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0513: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0518: stloc.s 36 (UnityEngine.Vector3) IL_051A: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051C: ldc.r4 0.75 IL_0521: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0526: stloc.s 37 (UnityEngine.Vector3) IL_0528: ldloc.s 31 (UnityEngine.Vector3) IL_052A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_052F: ldloc.s 35 (UnityEngine.Vector3) IL_0531: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0536: ldloc.s 37 (UnityEngine.Vector3) IL_0538: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_053D: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0542: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0547: stloc.s 37 (UnityEngine.Vector3) IL_0549: ldloc.s 30 (UnityEngine.Vector3) IL_054B: stloc.s 38 (UnityEngine.Vector3) IL_054D: ldloc.s 31 (UnityEngine.Vector3) IL_054F: stloc.s 39 (UnityEngine.Vector3) IL_0551: ldloc.2 IL_0552: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0557: ldloc.s 30 (UnityEngine.Vector3) IL_0559: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_055E: ldloc.s 38 (UnityEngine.Vector3) IL_0560: ldloc.s 36 (UnityEngine.Vector3) IL_0562: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0567: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056C: ldloc.s 35 (UnityEngine.Vector3) IL_056E: ldloc.s 36 (UnityEngine.Vector3) IL_0570: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0575: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_057A: ldloca.s 40 (System.Single) IL_057C: ldloca.s 41 (System.Single) IL_057E: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0583: brfalse => Label22 IL_0588: ldloc.2 IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: ldloc.2 IL_058C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0591: ldloc.s 40 (System.Single) IL_0593: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0598: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_059D: stloc.s 30 (UnityEngine.Vector3) IL_059F: Label22 IL_059F: ldloc.3 IL_05A0: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05A5: ldloc.s 31 (UnityEngine.Vector3) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloc.s 39 (UnityEngine.Vector3) IL_05AE: ldloc.s 37 (UnityEngine.Vector3) IL_05B0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05B5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05BA: ldloc.s 35 (UnityEngine.Vector3) IL_05BC: ldloc.s 37 (UnityEngine.Vector3) IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05C8: ldloca.s 40 (System.Single) IL_05CA: ldloca.s 41 (System.Single) IL_05CC: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05D1: brfalse => Label23 IL_05D6: ldloc.3 IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: ldloc.3 IL_05DA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05DF: ldloc.s 40 (System.Single) IL_05E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05EB: stloc.s 31 (UnityEngine.Vector3) IL_05ED: Label23 IL_05ED: ldloc.s 38 (UnityEngine.Vector3) IL_05EF: ldloc.s 36 (UnityEngine.Vector3) IL_05F1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F6: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FB: ldloc.s 35 (UnityEngine.Vector3) IL_05FD: ldloc.s 36 (UnityEngine.Vector3) IL_05FF: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0604: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0609: ldloc.s 39 (UnityEngine.Vector3) IL_060B: ldloc.s 37 (UnityEngine.Vector3) IL_060D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0612: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0617: ldloc.s 35 (UnityEngine.Vector3) IL_0619: ldloc.s 37 (UnityEngine.Vector3) IL_061B: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0620: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0625: ldloca.s 40 (System.Single) IL_0627: ldloca.s 41 (System.Single) IL_0629: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_062E: brfalse => Label24 IL_0633: ldloc.s 38 (UnityEngine.Vector3) IL_0635: ldloc.s 36 (UnityEngine.Vector3) IL_0637: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_063C: ldloc.s 35 (UnityEngine.Vector3) IL_063E: ldloc.s 38 (UnityEngine.Vector3) IL_0640: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0645: ldloc.s 40 (System.Single) IL_0647: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_064C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0651: stloc.s 35 (UnityEngine.Vector3) IL_0653: Label24 IL_0653: ldloc.s 35 (UnityEngine.Vector3) IL_0655: ldloc.s 30 (UnityEngine.Vector3) IL_0657: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_065C: ldloca.s 42 (System.Single) IL_065E: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0663: stloc.s 43 (UnityEngine.Vector3) IL_0665: ldloc.s 42 (System.Single) IL_0667: ldc.r4 8 IL_066C: div IL_066D: ldc.r4 0.01 IL_0672: add IL_0673: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0678: stloc.s 44 (System.Int32) IL_067A: ldloc.s 42 (System.Single) IL_067C: ldc.r4 0.5 IL_0681: mul IL_0682: ldloc.s 44 (System.Int32) IL_0684: ldc.i4.8 IL_0685: sub IL_0686: conv.r4 IL_0687: ldloc.s 12 (System.Boolean) IL_0689: brfalse => Label25 IL_068E: ldc.r4 -4 IL_0693: br => Label26 IL_0698: Label25 IL_0698: ldc.r4 4 IL_069D: Label26 IL_069D: mul IL_069E: add IL_069F: stloc.s 45 (System.Single) IL_06A1: ldloc.s 44 (System.Int32) IL_06A3: brfalse => Label27 IL_06A8: ldloc.s 12 (System.Boolean) IL_06AA: brfalse => Label28 IL_06AF: ldloca.s 43 (UnityEngine.Vector3) IL_06B1: ldfld System.Single UnityEngine.Vector3::x IL_06B6: ldloca.s 43 (UnityEngine.Vector3) IL_06B8: ldfld System.Single UnityEngine.Vector3::z IL_06BD: neg IL_06BE: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06C3: br => Label29 IL_06C8: Label28 IL_06C8: ldloca.s 43 (UnityEngine.Vector3) IL_06CA: ldfld System.Single UnityEngine.Vector3::x IL_06CF: neg IL_06D0: ldloca.s 43 (UnityEngine.Vector3) IL_06D2: ldfld System.Single UnityEngine.Vector3::z IL_06D7: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06DC: Label29 IL_06DC: stloc.s 46 (System.Single) IL_06DE: ldloc.s 30 (UnityEngine.Vector3) IL_06E0: ldloca.s 43 (UnityEngine.Vector3) IL_06E2: ldfld System.Single UnityEngine.Vector3::x IL_06E7: ldloc.s 45 (System.Single) IL_06E9: mul IL_06EA: ldloca.s 43 (UnityEngine.Vector3) IL_06EC: ldfld System.Single UnityEngine.Vector3::z IL_06F1: ldloc.s 9 (System.Single) IL_06F3: mul IL_06F4: add IL_06F5: ldc.r4 0 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::z IL_0701: ldloc.s 45 (System.Single) IL_0703: mul IL_0704: ldloca.s 43 (UnityEngine.Vector3) IL_0706: ldfld System.Single UnityEngine.Vector3::x IL_070B: ldloc.s 9 (System.Single) IL_070D: mul IL_070E: sub IL_070F: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0714: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0719: stloc.s 47 (UnityEngine.Vector3) IL_071B: ldloc.s 12 (System.Boolean) IL_071D: brfalse => Label30 IL_0722: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0727: ldarg.2 IL_0728: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_072D: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_072F: ldarg.1 IL_0730: ldloc.s 47 (UnityEngine.Vector3) IL_0732: ldloc.s 46 (System.Single) IL_0734: ldloc.s 44 (System.Int32) IL_0736: ldloc.s 10 (System.Int32) IL_0738: ldarg.2 IL_0739: ldfld System.UInt32 NetSegment::m_buildIndex IL_073E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0743: pop IL_0744: br => Label31 IL_0749: Label30 IL_0749: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_074E: ldarg.2 IL_074F: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0754: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0756: ldarg.1 IL_0757: ldloc.s 47 (UnityEngine.Vector3) IL_0759: ldloc.s 46 (System.Single) IL_075B: ldloc.s 44 (System.Int32) IL_075D: ldloc.s 10 (System.Int32) IL_075F: ldarg.2 IL_0760: ldfld System.UInt32 NetSegment::m_buildIndex IL_0765: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_076A: pop IL_076B: Label27 IL_076B: Label31 IL_076B: ldloc.s 31 (UnityEngine.Vector3) IL_076D: ldloc.s 35 (UnityEngine.Vector3) IL_076F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0774: ldloca.s 42 (System.Single) IL_0776: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_077B: stloc.s 43 (UnityEngine.Vector3) IL_077D: ldloc.s 42 (System.Single) IL_077F: ldc.r4 8 IL_0784: div IL_0785: ldc.r4 0.01 IL_078A: add IL_078B: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0790: stloc.s 44 (System.Int32) IL_0792: ldloc.s 42 (System.Single) IL_0794: ldc.r4 0.5 IL_0799: mul IL_079A: ldloc.s 44 (System.Int32) IL_079C: ldc.i4.8 IL_079D: sub IL_079E: conv.r4 IL_079F: ldloc.s 12 (System.Boolean) IL_07A1: brfalse => Label32 IL_07A6: ldc.r4 -4 IL_07AB: br => Label33 IL_07B0: Label32 IL_07B0: ldc.r4 4 IL_07B5: Label33 IL_07B5: mul IL_07B6: add IL_07B7: stloc.s 45 (System.Single) IL_07B9: ldloc.s 44 (System.Int32) IL_07BB: brfalse => Label34 IL_07C0: ldloc.s 12 (System.Boolean) IL_07C2: brfalse => Label35 IL_07C7: ldloca.s 43 (UnityEngine.Vector3) IL_07C9: ldfld System.Single UnityEngine.Vector3::x IL_07CE: ldloca.s 43 (UnityEngine.Vector3) IL_07D0: ldfld System.Single UnityEngine.Vector3::z IL_07D5: neg IL_07D6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07DB: br => Label36 IL_07E0: Label35 IL_07E0: ldloca.s 43 (UnityEngine.Vector3) IL_07E2: ldfld System.Single UnityEngine.Vector3::x IL_07E7: neg IL_07E8: ldloca.s 43 (UnityEngine.Vector3) IL_07EA: ldfld System.Single UnityEngine.Vector3::z IL_07EF: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_07F4: Label36 IL_07F4: stloc.s 48 (System.Single) IL_07F6: ldloc.s 35 (UnityEngine.Vector3) IL_07F8: ldloca.s 43 (UnityEngine.Vector3) IL_07FA: ldfld System.Single UnityEngine.Vector3::x IL_07FF: ldloc.s 45 (System.Single) IL_0801: mul IL_0802: ldloca.s 43 (UnityEngine.Vector3) IL_0804: ldfld System.Single UnityEngine.Vector3::z IL_0809: ldloc.s 9 (System.Single) IL_080B: mul IL_080C: add IL_080D: ldc.r4 0 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::z IL_0819: ldloc.s 45 (System.Single) IL_081B: mul IL_081C: ldloca.s 43 (UnityEngine.Vector3) IL_081E: ldfld System.Single UnityEngine.Vector3::x IL_0823: ldloc.s 9 (System.Single) IL_0825: mul IL_0826: sub IL_0827: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_082C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0831: stloc.s 49 (UnityEngine.Vector3) IL_0833: ldloc.s 12 (System.Boolean) IL_0835: brfalse => Label37 IL_083A: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_083F: ldarg.2 IL_0840: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0845: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0847: ldarg.1 IL_0848: ldloc.s 49 (UnityEngine.Vector3) IL_084A: ldloc.s 48 (System.Single) IL_084C: ldloc.s 44 (System.Int32) IL_084E: ldloc.s 10 (System.Int32) IL_0850: ldarg.2 IL_0851: ldfld System.UInt32 NetSegment::m_buildIndex IL_0856: ldc.i4.1 IL_0857: add IL_0858: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_085D: pop IL_085E: br => Label38 IL_0863: Label37 IL_0863: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0868: ldarg.2 IL_0869: ldflda System.UInt16 NetSegment::m_blockEndRight IL_086E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0870: ldarg.1 IL_0871: ldloc.s 49 (UnityEngine.Vector3) IL_0873: ldloc.s 48 (System.Single) IL_0875: ldloc.s 44 (System.Int32) IL_0877: ldloc.s 10 (System.Int32) IL_0879: ldarg.2 IL_087A: ldfld System.UInt32 NetSegment::m_buildIndex IL_087F: ldc.i4.1 IL_0880: add IL_0881: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0886: pop IL_0887: Label34 IL_0887: Label38 IL_0887: br => Label39 IL_088C: Label0 IL_088C: ldloc.s 8 (System.Single) IL_088E: ldloc.s 9 (System.Single) IL_0890: add IL_0891: stloc.s 8 (System.Single) IL_0893: ldloca.s 51 (UnityEngine.Vector2) IL_0895: ldloca.s 3 (UnityEngine.Vector3) IL_0897: ldfld System.Single UnityEngine.Vector3::x IL_089C: ldloca.s 2 (UnityEngine.Vector3) IL_089E: ldfld System.Single UnityEngine.Vector3::x IL_08A3: sub IL_08A4: ldloca.s 3 (UnityEngine.Vector3) IL_08A6: ldfld System.Single UnityEngine.Vector3::z IL_08AB: ldloca.s 2 (UnityEngine.Vector3) IL_08AD: ldfld System.Single UnityEngine.Vector3::z IL_08B2: sub IL_08B3: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08B8: ldloca.s 51 (UnityEngine.Vector2) IL_08BA: call System.Single UnityEngine.Vector2::get_magnitude() IL_08BF: stloc.s 50 (System.Single) IL_08C1: ldloc.s 50 (System.Single) IL_08C3: ldc.r4 8 IL_08C8: div IL_08C9: ldc.r4 0.1 IL_08CE: add IL_08CF: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_08D4: stloc.s 52 (System.Int32) IL_08D6: ldloc.s 52 (System.Int32) IL_08D8: ldc.i4.8 IL_08D9: ble => Label40 IL_08DE: ldloc.s 52 (System.Int32) IL_08E0: ldc.i4.1 IL_08E1: add IL_08E2: ldc.i4.1 IL_08E3: shr IL_08E4: br => Label41 IL_08E9: Label40 IL_08E9: ldloc.s 52 (System.Int32) IL_08EB: Label41 IL_08EB: stloc.s 53 (System.Int32) IL_08ED: ldloc.s 52 (System.Int32) IL_08EF: ldc.i4.8 IL_08F0: ble => Label42 IL_08F5: ldloc.s 52 (System.Int32) IL_08F7: ldc.i4.1 IL_08F8: shr IL_08F9: br => Label43 IL_08FE: Label42 IL_08FE: ldc.i4.0 IL_08FF: Label43 IL_08FF: stloc.s 54 (System.Int32) IL_0901: ldloc.s 53 (System.Int32) IL_0903: ldc.i4.0 IL_0904: ble => Label44 IL_0909: ldloca.s 4 (UnityEngine.Vector3) IL_090B: ldfld System.Single UnityEngine.Vector3::x IL_0910: ldloca.s 4 (UnityEngine.Vector3) IL_0912: ldfld System.Single UnityEngine.Vector3::z IL_0917: neg IL_0918: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_091D: stloc.s 55 (System.Single) IL_091F: ldloc.2 IL_0920: ldloca.s 4 (UnityEngine.Vector3) IL_0922: ldfld System.Single UnityEngine.Vector3::x IL_0927: ldc.r4 32 IL_092C: mul IL_092D: ldloca.s 4 (UnityEngine.Vector3) IL_092F: ldfld System.Single UnityEngine.Vector3::z IL_0934: ldloc.s 8 (System.Single) IL_0936: mul IL_0937: sub IL_0938: ldc.r4 0 IL_093D: ldloca.s 4 (UnityEngine.Vector3) IL_093F: ldfld System.Single UnityEngine.Vector3::z IL_0944: ldc.r4 32 IL_0949: mul IL_094A: ldloca.s 4 (UnityEngine.Vector3) IL_094C: ldfld System.Single UnityEngine.Vector3::x IL_0951: ldloc.s 8 (System.Single) IL_0953: mul IL_0954: add IL_0955: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_095A: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_095F: stloc.s 56 (UnityEngine.Vector3) IL_0961: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0966: ldarg.2 IL_0967: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_096C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_096E: ldarg.1 IL_096F: ldloc.s 56 (UnityEngine.Vector3) IL_0971: ldloc.s 55 (System.Single) IL_0973: ldloc.s 53 (System.Int32) IL_0975: ldloc.s 10 (System.Int32) IL_0977: ldarg.2 IL_0978: ldfld System.UInt32 NetSegment::m_buildIndex IL_097D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0982: pop IL_0983: ldloc.2 IL_0984: ldloca.s 4 (UnityEngine.Vector3) IL_0986: ldfld System.Single UnityEngine.Vector3::x IL_098B: ldloc.s 53 (System.Int32) IL_098D: ldc.i4.4 IL_098E: sub IL_098F: conv.r4 IL_0990: mul IL_0991: ldc.r4 8 IL_0996: mul IL_0997: ldloca.s 4 (UnityEngine.Vector3) IL_0999: ldfld System.Single UnityEngine.Vector3::z IL_099E: ldloc.s 8 (System.Single) IL_09A0: mul IL_09A1: add IL_09A2: ldc.r4 0 IL_09A7: ldloca.s 4 (UnityEngine.Vector3) IL_09A9: ldfld System.Single UnityEngine.Vector3::z IL_09AE: ldloc.s 53 (System.Int32) IL_09B0: ldc.i4.4 IL_09B1: sub IL_09B2: conv.r4 IL_09B3: mul IL_09B4: ldc.r4 8 IL_09B9: mul IL_09BA: ldloca.s 4 (UnityEngine.Vector3) IL_09BC: ldfld System.Single UnityEngine.Vector3::x IL_09C1: ldloc.s 8 (System.Single) IL_09C3: mul IL_09C4: sub IL_09C5: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_09CF: stloc.s 56 (UnityEngine.Vector3) IL_09D1: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_09D6: ldarg.2 IL_09D7: ldflda System.UInt16 NetSegment::m_blockStartRight IL_09DC: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09DE: ldarg.1 IL_09DF: ldloc.s 56 (UnityEngine.Vector3) IL_09E1: ldloc.s 55 (System.Single) IL_09E3: ldc.r4 3.141593 IL_09E8: add IL_09E9: ldloc.s 53 (System.Int32) IL_09EB: ldloc.s 10 (System.Int32) IL_09ED: ldarg.2 IL_09EE: ldfld System.UInt32 NetSegment::m_buildIndex IL_09F3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09F8: pop IL_09F9: Label44 IL_09F9: ldloc.s 54 (System.Int32) IL_09FB: ldc.i4.0 IL_09FC: ble => Label45 IL_0A01: ldloc.s 50 (System.Single) IL_0A03: ldloc.s 52 (System.Int32) IL_0A05: conv.r4 IL_0A06: ldc.r4 8 IL_0A0B: mul IL_0A0C: sub IL_0A0D: stloc.s 57 (System.Single) IL_0A0F: ldloca.s 5 (UnityEngine.Vector3) IL_0A11: ldfld System.Single UnityEngine.Vector3::x IL_0A16: ldloca.s 5 (UnityEngine.Vector3) IL_0A18: ldfld System.Single UnityEngine.Vector3::z IL_0A1D: neg IL_0A1E: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A23: stloc.s 58 (System.Single) IL_0A25: ldloc.3 IL_0A26: ldloca.s 5 (UnityEngine.Vector3) IL_0A28: ldfld System.Single UnityEngine.Vector3::x IL_0A2D: ldc.r4 32 IL_0A32: ldloc.s 57 (System.Single) IL_0A34: add IL_0A35: mul IL_0A36: ldloca.s 5 (UnityEngine.Vector3) IL_0A38: ldfld System.Single UnityEngine.Vector3::z IL_0A3D: ldloc.s 8 (System.Single) IL_0A3F: mul IL_0A40: sub IL_0A41: ldc.r4 0 IL_0A46: ldloca.s 5 (UnityEngine.Vector3) IL_0A48: ldfld System.Single UnityEngine.Vector3::z IL_0A4D: ldc.r4 32 IL_0A52: ldloc.s 57 (System.Single) IL_0A54: add IL_0A55: mul IL_0A56: ldloca.s 5 (UnityEngine.Vector3) IL_0A58: ldfld System.Single UnityEngine.Vector3::x IL_0A5D: ldloc.s 8 (System.Single) IL_0A5F: mul IL_0A60: add IL_0A61: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A66: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A6B: stloc.s 59 (UnityEngine.Vector3) IL_0A6D: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A72: ldarg.2 IL_0A73: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0A78: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A7A: ldarg.1 IL_0A7B: ldloc.s 59 (UnityEngine.Vector3) IL_0A7D: ldloc.s 58 (System.Single) IL_0A7F: ldloc.s 54 (System.Int32) IL_0A81: ldloc.s 10 (System.Int32) IL_0A83: ldarg.2 IL_0A84: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A89: ldc.i4.1 IL_0A8A: add IL_0A8B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A90: pop IL_0A91: ldloc.3 IL_0A92: ldloca.s 5 (UnityEngine.Vector3) IL_0A94: ldfld System.Single UnityEngine.Vector3::x IL_0A99: ldloc.s 54 (System.Int32) IL_0A9B: ldc.i4.4 IL_0A9C: sub IL_0A9D: conv.r4 IL_0A9E: ldc.r4 8 IL_0AA3: mul IL_0AA4: ldloc.s 57 (System.Single) IL_0AA6: add IL_0AA7: mul IL_0AA8: ldloca.s 5 (UnityEngine.Vector3) IL_0AAA: ldfld System.Single UnityEngine.Vector3::z IL_0AAF: ldloc.s 8 (System.Single) IL_0AB1: mul IL_0AB2: add IL_0AB3: ldc.r4 0 IL_0AB8: ldloca.s 5 (UnityEngine.Vector3) IL_0ABA: ldfld System.Single UnityEngine.Vector3::z IL_0ABF: ldloc.s 54 (System.Int32) IL_0AC1: ldc.i4.4 IL_0AC2: sub IL_0AC3: conv.r4 IL_0AC4: ldc.r4 8 IL_0AC9: mul IL_0ACA: ldloc.s 57 (System.Single) IL_0ACC: add IL_0ACD: mul IL_0ACE: ldloca.s 5 (UnityEngine.Vector3) IL_0AD0: ldfld System.Single UnityEngine.Vector3::x IL_0AD5: ldloc.s 8 (System.Single) IL_0AD7: mul IL_0AD8: sub IL_0AD9: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0ADE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0AE3: stloc.s 59 (UnityEngine.Vector3) IL_0AE5: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AEA: ldarg.2 IL_0AEB: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0AF0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AF2: ldarg.1 IL_0AF3: ldloc.s 59 (UnityEngine.Vector3) IL_0AF5: ldloc.s 58 (System.Single) IL_0AF7: ldc.r4 3.141593 IL_0AFC: add IL_0AFD: ldloc.s 54 (System.Int32) IL_0AFF: ldloc.s 10 (System.Int32) IL_0B01: ldarg.2 IL_0B02: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B07: ldc.i4.1 IL_0B08: add IL_0B09: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B0E: pop IL_0B0F: // end original IL_0B0F: Label39 IL_0B0F: Label45 IL_0B0F: ret DONE ### Harmony id=algernon-A.csl.zoningadjuster, version=2.0.4.0, location=C:\Program Files (x86)\Steam\steamapps\common\data-000000003B9425B0, env/clr=2.0.50727.1433, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows ### Started from System.Void ZoningAdjuster.Patcher::PatchCreateZoneBlocks(), location C:\Program Files (x86)\Steam\steamapps\common\data-000000003F44D0B0 ### At 2022-09-14 08.14.04 ### Patch: System.Void RoadAI::CreateZoneBlocks(System.UInt16 segment, NetSegment& data) ### Replacement: static System.Void RoadAI::RoadAI.CreateZoneBlocks_Patch1(RoadAI this, System.UInt16 segment, NetSegment& data) IL_0000: Local var 0: NetManager IL_0000: Local var 1: ColossalFramework.Math.Randomizer IL_0000: Local var 2: UnityEngine.Vector3 IL_0000: Local var 3: UnityEngine.Vector3 IL_0000: Local var 4: UnityEngine.Vector3 IL_0000: Local var 5: UnityEngine.Vector3 IL_0000: Local var 6: System.Single IL_0000: Local var 7: System.Boolean IL_0000: Local var 8: System.Single IL_0000: Local var 9: System.Single IL_0000: Local var 10: System.Int32 IL_0000: Local var 11: System.Single IL_0000: Local var 12: System.Boolean IL_0000: Local var 13: System.Boolean IL_0000: Local var 14: UnityEngine.Vector3 IL_0000: Local var 15: UnityEngine.Vector3 IL_0000: Local var 16: UnityEngine.Vector3 IL_0000: Local var 17: UnityEngine.Vector3 IL_0000: Local var 18: System.Single IL_0000: Local var 19: System.Single IL_0000: Local var 20: ColossalFramework.Math.Bezier3 IL_0000: Local var 21: ColossalFramework.Math.Bezier3 IL_0000: Local var 22: System.Single IL_0000: Local var 23: UnityEngine.Vector3 IL_0000: Local var 24: System.Int32 IL_0000: Local var 25: System.Single IL_0000: Local var 26: System.Single IL_0000: Local var 27: UnityEngine.Vector3 IL_0000: Local var 28: System.Single IL_0000: Local var 29: UnityEngine.Vector3 IL_0000: Local var 30: UnityEngine.Vector3 IL_0000: Local var 31: UnityEngine.Vector3 IL_0000: Local var 32: UnityEngine.Vector3 IL_0000: Local var 33: UnityEngine.Vector3 IL_0000: Local var 34: ColossalFramework.Math.Bezier3 IL_0000: Local var 35: UnityEngine.Vector3 IL_0000: Local var 36: UnityEngine.Vector3 IL_0000: Local var 37: UnityEngine.Vector3 IL_0000: Local var 38: UnityEngine.Vector3 IL_0000: Local var 39: UnityEngine.Vector3 IL_0000: Local var 40: System.Single IL_0000: Local var 41: System.Single IL_0000: Local var 42: System.Single IL_0000: Local var 43: UnityEngine.Vector3 IL_0000: Local var 44: System.Int32 IL_0000: Local var 45: System.Single IL_0000: Local var 46: System.Single IL_0000: Local var 47: UnityEngine.Vector3 IL_0000: Local var 48: System.Single IL_0000: Local var 49: UnityEngine.Vector3 IL_0000: Local var 50: System.Single IL_0000: Local var 51: UnityEngine.Vector2 IL_0000: Local var 52: System.Int32 IL_0000: Local var 53: System.Int32 IL_0000: Local var 54: System.Int32 IL_0000: Local var 55: System.Single IL_0000: Local var 56: UnityEngine.Vector3 IL_0000: Local var 57: System.Single IL_0000: Local var 58: System.Single IL_0000: Local var 59: UnityEngine.Vector3 IL_0000: Local var 60: System.Boolean IL_0000: ldc.i4 0 IL_0005: stloc 60 (System.Boolean) IL_0009: ldc.i4.1 IL_000A: stloc 60 (System.Boolean) IL_000E: ldloc 60 (System.Boolean) IL_0012: brfalse => Label1 IL_0017: ldarg 1 IL_001B: ldarg 2 IL_001F: call static System.Boolean ZoningAdjuster.CreateZoneBlocks::Prefix(System.UInt16 segment, NetSegment& data) IL_0024: stloc 60 (System.Boolean) IL_0028: Label1 IL_0028: nop IL_0029: ldloc 60 (System.Boolean) IL_002D: brfalse => Label0 IL_0032: // start original IL_0032: call static NetManager ColossalFramework.Singleton`1::get_instance() IL_0037: stloc.0 IL_0038: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_003A: ldarg.1 IL_003B: call System.Void ColossalFramework.Math.Randomizer::.ctor(System.Int32 _seed) IL_0040: ldloc.0 IL_0041: ldfld Array16`1 NetManager::m_nodes IL_0046: ldfld NetNode[] Array16`1::m_buffer IL_004B: ldarg.2 IL_004C: ldfld System.UInt16 NetSegment::m_startNode IL_0051: ldelema NetNode IL_0056: ldfld UnityEngine.Vector3 NetNode::m_position IL_005B: stloc.2 IL_005C: ldloc.0 IL_005D: ldfld Array16`1 NetManager::m_nodes IL_0062: ldfld NetNode[] Array16`1::m_buffer IL_0067: ldarg.2 IL_0068: ldfld System.UInt16 NetSegment::m_endNode IL_006D: ldelema NetNode IL_0072: ldfld UnityEngine.Vector3 NetNode::m_position IL_0077: stloc.3 IL_0078: ldarg.2 IL_0079: ldfld UnityEngine.Vector3 NetSegment::m_startDirection IL_007E: stloc.s 4 (UnityEngine.Vector3) IL_0080: ldarg.2 IL_0081: ldfld UnityEngine.Vector3 NetSegment::m_endDirection IL_0086: stloc.s 5 (UnityEngine.Vector3) IL_0088: ldloca.s 4 (UnityEngine.Vector3) IL_008A: ldfld System.Single UnityEngine.Vector3::x IL_008F: ldloca.s 5 (UnityEngine.Vector3) IL_0091: ldfld System.Single UnityEngine.Vector3::x IL_0096: mul IL_0097: ldloca.s 4 (UnityEngine.Vector3) IL_0099: ldfld System.Single UnityEngine.Vector3::z IL_009E: ldloca.s 5 (UnityEngine.Vector3) IL_00A0: ldfld System.Single UnityEngine.Vector3::z IL_00A5: mul IL_00A6: add IL_00A7: stloc.s 6 (System.Single) IL_00A9: ldloc.2 IL_00AA: ldloc.s 4 (UnityEngine.Vector3) IL_00AC: ldloc.3 IL_00AD: ldloc.s 5 (UnityEngine.Vector3) IL_00AF: call static System.Boolean NetSegment::IsStraight(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir) IL_00B4: ldc.i4.0 IL_00B5: ceq IL_00B7: stloc.s 7 (System.Boolean) IL_00B9: ldc.r4 8 IL_00BE: ldarg.0 IL_00BF: ldfld NetInfo NetAI::m_info IL_00C4: ldfld System.Single NetInfo::m_halfWidth IL_00C9: call static System.Single UnityEngine.Mathf::Max(System.Single a, System.Single b) IL_00CE: stloc.s 8 (System.Single) IL_00D0: ldc.r4 32 IL_00D5: stloc.s 9 (System.Single) IL_00D7: ldloc.s 8 (System.Single) IL_00D9: call static System.Int32 UnityEngine.Mathf::RoundToInt(System.Single f) IL_00DE: stloc.s 10 (System.Int32) IL_00E0: ldloc.s 7 (System.Boolean) IL_00E2: brfalse => Label2 IL_00E7: ldloc.3 IL_00E8: ldloc.2 IL_00E9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_00EE: call static System.Single ColossalFramework.Math.VectorUtils::LengthXZ(UnityEngine.Vector3 v) IL_00F3: stloc.s 11 (System.Single) IL_00F5: ldloca.s 4 (UnityEngine.Vector3) IL_00F7: ldfld System.Single UnityEngine.Vector3::x IL_00FC: ldloca.s 5 (UnityEngine.Vector3) IL_00FE: ldfld System.Single UnityEngine.Vector3::z IL_0103: mul IL_0104: ldloca.s 4 (UnityEngine.Vector3) IL_0106: ldfld System.Single UnityEngine.Vector3::z IL_010B: ldloca.s 5 (UnityEngine.Vector3) IL_010D: ldfld System.Single UnityEngine.Vector3::x IL_0112: mul IL_0113: sub IL_0114: ldc.r4 0 IL_0119: cgt IL_011B: stloc.s 12 (System.Boolean) IL_011D: ldloc.s 6 (System.Single) IL_011F: ldc.r4 -0.8 IL_0124: blt => Label3 IL_0129: ldloc.s 11 (System.Single) IL_012B: ldc.r4 50 IL_0130: cgt IL_0132: br => Label4 IL_0137: Label3 IL_0137: ldc.i4.1 IL_0138: Label4 IL_0138: stloc.s 13 (System.Boolean) IL_013A: ldloc.s 12 (System.Boolean) IL_013C: brfalse => Label5 IL_0141: ldloc.s 8 (System.Single) IL_0143: neg IL_0144: stloc.s 8 (System.Single) IL_0146: ldloc.s 9 (System.Single) IL_0148: neg IL_0149: stloc.s 9 (System.Single) IL_014B: Label5 IL_014B: ldloc.2 IL_014C: ldloca.s 4 (UnityEngine.Vector3) IL_014E: ldfld System.Single UnityEngine.Vector3::z IL_0153: ldc.r4 0 IL_0158: ldloca.s 4 (UnityEngine.Vector3) IL_015A: ldfld System.Single UnityEngine.Vector3::x IL_015F: neg IL_0160: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0165: ldloc.s 8 (System.Single) IL_0167: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_016C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0171: stloc.s 14 (UnityEngine.Vector3) IL_0173: ldloc.3 IL_0174: ldloca.s 5 (UnityEngine.Vector3) IL_0176: ldfld System.Single UnityEngine.Vector3::z IL_017B: ldc.r4 0 IL_0180: ldloca.s 5 (UnityEngine.Vector3) IL_0182: ldfld System.Single UnityEngine.Vector3::x IL_0187: neg IL_0188: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_018D: ldloc.s 8 (System.Single) IL_018F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0194: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0199: stloc.s 15 (UnityEngine.Vector3) IL_019B: ldloc.s 14 (UnityEngine.Vector3) IL_019D: ldloc.s 4 (UnityEngine.Vector3) IL_019F: ldloc.s 15 (UnityEngine.Vector3) IL_01A1: ldloc.s 5 (UnityEngine.Vector3) IL_01A3: ldc.i4.1 IL_01A4: ldc.i4.1 IL_01A5: ldloca.s 16 (UnityEngine.Vector3) IL_01A7: ldloca.s 17 (UnityEngine.Vector3) IL_01A9: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_01AE: ldloc.s 13 (System.Boolean) IL_01B0: brfalse => Label6 IL_01B5: ldloc.s 6 (System.Single) IL_01B7: ldc.r4 0.025 IL_01BC: mul IL_01BD: ldc.r4 0.04 IL_01C2: add IL_01C3: stloc.s 18 (System.Single) IL_01C5: ldloc.s 6 (System.Single) IL_01C7: ldc.r4 0.025 IL_01CC: mul IL_01CD: ldc.r4 0.06 IL_01D2: add IL_01D3: stloc.s 19 (System.Single) IL_01D5: ldloc.s 6 (System.Single) IL_01D7: ldc.r4 -0.9 IL_01DC: bge.un => Label7 IL_01E1: ldloc.s 18 (System.Single) IL_01E3: stloc.s 19 (System.Single) IL_01E5: Label7 IL_01E5: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01E7: ldloc.s 14 (UnityEngine.Vector3) IL_01E9: ldloc.s 16 (UnityEngine.Vector3) IL_01EB: ldloc.s 17 (UnityEngine.Vector3) IL_01ED: ldloc.s 15 (UnityEngine.Vector3) IL_01EF: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_01F4: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_01F6: ldloc.s 18 (System.Single) IL_01F8: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_01FD: stloc.s 14 (UnityEngine.Vector3) IL_01FF: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0201: ldc.r4 0.5 IL_0206: ldloc.s 19 (System.Single) IL_0208: sub IL_0209: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_020E: stloc.s 16 (UnityEngine.Vector3) IL_0210: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0212: ldc.r4 0.5 IL_0217: ldloc.s 19 (System.Single) IL_0219: add IL_021A: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_021F: stloc.s 17 (UnityEngine.Vector3) IL_0221: ldloca.s 20 (ColossalFramework.Math.Bezier3) IL_0223: ldc.r4 1 IL_0228: ldloc.s 18 (System.Single) IL_022A: sub IL_022B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0230: stloc.s 15 (UnityEngine.Vector3) IL_0232: br => Label8 IL_0237: Label6 IL_0237: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0239: ldloc.s 14 (UnityEngine.Vector3) IL_023B: ldloc.s 16 (UnityEngine.Vector3) IL_023D: ldloc.s 17 (UnityEngine.Vector3) IL_023F: ldloc.s 15 (UnityEngine.Vector3) IL_0241: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_0246: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0248: ldc.r4 0.86 IL_024D: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0252: stloc.s 16 (UnityEngine.Vector3) IL_0254: ldloca.s 21 (ColossalFramework.Math.Bezier3) IL_0256: ldc.r4 0.14 IL_025B: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0260: stloc.s 14 (UnityEngine.Vector3) IL_0262: Label8 IL_0262: ldloc.s 16 (UnityEngine.Vector3) IL_0264: ldloc.s 14 (UnityEngine.Vector3) IL_0266: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_026B: ldloca.s 22 (System.Single) IL_026D: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0272: stloc.s 23 (UnityEngine.Vector3) IL_0274: ldloc.s 22 (System.Single) IL_0276: ldc.r4 8 IL_027B: div IL_027C: ldc.r4 0.01 IL_0281: add IL_0282: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0287: stloc.s 24 (System.Int32) IL_0289: ldloc.s 22 (System.Single) IL_028B: ldc.r4 0.5 IL_0290: mul IL_0291: ldloc.s 24 (System.Int32) IL_0293: ldc.i4.8 IL_0294: sub IL_0295: conv.r4 IL_0296: ldloc.s 12 (System.Boolean) IL_0298: brfalse => Label9 IL_029D: ldc.r4 4 IL_02A2: br => Label10 IL_02A7: Label9 IL_02A7: ldc.r4 -4 IL_02AC: Label10 IL_02AC: mul IL_02AD: add IL_02AE: stloc.s 25 (System.Single) IL_02B0: ldloc.s 24 (System.Int32) IL_02B2: brfalse => Label11 IL_02B7: ldloc.s 12 (System.Boolean) IL_02B9: brfalse => Label12 IL_02BE: ldloca.s 23 (UnityEngine.Vector3) IL_02C0: ldfld System.Single UnityEngine.Vector3::x IL_02C5: neg IL_02C6: ldloca.s 23 (UnityEngine.Vector3) IL_02C8: ldfld System.Single UnityEngine.Vector3::z IL_02CD: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02D2: br => Label13 IL_02D7: Label12 IL_02D7: ldloca.s 23 (UnityEngine.Vector3) IL_02D9: ldfld System.Single UnityEngine.Vector3::x IL_02DE: ldloca.s 23 (UnityEngine.Vector3) IL_02E0: ldfld System.Single UnityEngine.Vector3::z IL_02E5: neg IL_02E6: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_02EB: Label13 IL_02EB: stloc.s 26 (System.Single) IL_02ED: ldloc.s 14 (UnityEngine.Vector3) IL_02EF: ldloca.s 23 (UnityEngine.Vector3) IL_02F1: ldfld System.Single UnityEngine.Vector3::x IL_02F6: ldloc.s 25 (System.Single) IL_02F8: mul IL_02F9: ldloca.s 23 (UnityEngine.Vector3) IL_02FB: ldfld System.Single UnityEngine.Vector3::z IL_0300: ldloc.s 9 (System.Single) IL_0302: mul IL_0303: sub IL_0304: ldc.r4 0 IL_0309: ldloca.s 23 (UnityEngine.Vector3) IL_030B: ldfld System.Single UnityEngine.Vector3::z IL_0310: ldloc.s 25 (System.Single) IL_0312: mul IL_0313: ldloca.s 23 (UnityEngine.Vector3) IL_0315: ldfld System.Single UnityEngine.Vector3::x IL_031A: ldloc.s 9 (System.Single) IL_031C: mul IL_031D: add IL_031E: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0323: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0328: stloc.s 27 (UnityEngine.Vector3) IL_032A: ldloc.s 12 (System.Boolean) IL_032C: brfalse => Label14 IL_0331: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0336: ldarg.2 IL_0337: ldflda System.UInt16 NetSegment::m_blockStartRight IL_033C: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_033E: ldarg.1 IL_033F: ldloc.s 27 (UnityEngine.Vector3) IL_0341: ldloc.s 26 (System.Single) IL_0343: ldloc.s 24 (System.Int32) IL_0345: ldloc.s 10 (System.Int32) IL_0347: ldarg.2 IL_0348: ldfld System.UInt32 NetSegment::m_buildIndex IL_034D: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0352: pop IL_0353: br => Label15 IL_0358: Label14 IL_0358: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_035D: ldarg.2 IL_035E: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_0363: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0365: ldarg.1 IL_0366: ldloc.s 27 (UnityEngine.Vector3) IL_0368: ldloc.s 26 (System.Single) IL_036A: ldloc.s 24 (System.Int32) IL_036C: ldloc.s 10 (System.Int32) IL_036E: ldarg.2 IL_036F: ldfld System.UInt32 NetSegment::m_buildIndex IL_0374: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0379: pop IL_037A: Label11 IL_037A: Label15 IL_037A: ldloc.s 13 (System.Boolean) IL_037C: brfalse => Label16 IL_0381: ldloc.s 15 (UnityEngine.Vector3) IL_0383: ldloc.s 17 (UnityEngine.Vector3) IL_0385: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_038A: ldloca.s 22 (System.Single) IL_038C: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0391: stloc.s 23 (UnityEngine.Vector3) IL_0393: ldloc.s 22 (System.Single) IL_0395: ldc.r4 8 IL_039A: div IL_039B: ldc.r4 0.01 IL_03A0: add IL_03A1: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_03A6: stloc.s 24 (System.Int32) IL_03A8: ldloc.s 22 (System.Single) IL_03AA: ldc.r4 0.5 IL_03AF: mul IL_03B0: ldloc.s 24 (System.Int32) IL_03B2: ldc.i4.8 IL_03B3: sub IL_03B4: conv.r4 IL_03B5: ldloc.s 12 (System.Boolean) IL_03B7: brfalse => Label17 IL_03BC: ldc.r4 4 IL_03C1: br => Label18 IL_03C6: Label17 IL_03C6: ldc.r4 -4 IL_03CB: Label18 IL_03CB: mul IL_03CC: add IL_03CD: stloc.s 25 (System.Single) IL_03CF: ldloc.s 24 (System.Int32) IL_03D1: brfalse => Label19 IL_03D6: ldloc.s 12 (System.Boolean) IL_03D8: brfalse => Label20 IL_03DD: ldloca.s 23 (UnityEngine.Vector3) IL_03DF: ldfld System.Single UnityEngine.Vector3::x IL_03E4: neg IL_03E5: ldloca.s 23 (UnityEngine.Vector3) IL_03E7: ldfld System.Single UnityEngine.Vector3::z IL_03EC: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_03F1: br => Label21 IL_03F6: Label20 IL_03F6: ldloca.s 23 (UnityEngine.Vector3) IL_03F8: ldfld System.Single UnityEngine.Vector3::x IL_03FD: ldloca.s 23 (UnityEngine.Vector3) IL_03FF: ldfld System.Single UnityEngine.Vector3::z IL_0404: neg IL_0405: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_040A: Label21 IL_040A: stloc.s 28 (System.Single) IL_040C: ldloc.s 17 (UnityEngine.Vector3) IL_040E: ldloca.s 23 (UnityEngine.Vector3) IL_0410: ldfld System.Single UnityEngine.Vector3::x IL_0415: ldloc.s 25 (System.Single) IL_0417: mul IL_0418: ldloca.s 23 (UnityEngine.Vector3) IL_041A: ldfld System.Single UnityEngine.Vector3::z IL_041F: ldloc.s 9 (System.Single) IL_0421: mul IL_0422: sub IL_0423: ldc.r4 0 IL_0428: ldloca.s 23 (UnityEngine.Vector3) IL_042A: ldfld System.Single UnityEngine.Vector3::z IL_042F: ldloc.s 25 (System.Single) IL_0431: mul IL_0432: ldloca.s 23 (UnityEngine.Vector3) IL_0434: ldfld System.Single UnityEngine.Vector3::x IL_0439: ldloc.s 9 (System.Single) IL_043B: mul IL_043C: add IL_043D: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0442: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0447: stloc.s 29 (UnityEngine.Vector3) IL_0449: ldloc.s 12 (System.Boolean) IL_044B: brfalse => Label22 IL_0450: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0455: ldarg.2 IL_0456: ldflda System.UInt16 NetSegment::m_blockEndRight IL_045B: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_045D: ldarg.1 IL_045E: ldloc.s 29 (UnityEngine.Vector3) IL_0460: ldloc.s 28 (System.Single) IL_0462: ldloc.s 24 (System.Int32) IL_0464: ldloc.s 10 (System.Int32) IL_0466: ldarg.2 IL_0467: ldfld System.UInt32 NetSegment::m_buildIndex IL_046C: ldc.i4.1 IL_046D: add IL_046E: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0473: pop IL_0474: br => Label23 IL_0479: Label22 IL_0479: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_047E: ldarg.2 IL_047F: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0484: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0486: ldarg.1 IL_0487: ldloc.s 29 (UnityEngine.Vector3) IL_0489: ldloc.s 28 (System.Single) IL_048B: ldloc.s 24 (System.Int32) IL_048D: ldloc.s 10 (System.Int32) IL_048F: ldarg.2 IL_0490: ldfld System.UInt32 NetSegment::m_buildIndex IL_0495: ldc.i4.1 IL_0496: add IL_0497: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_049C: pop IL_049D: Label16 IL_049D: Label19 IL_049D: Label23 IL_049D: ldloc.2 IL_049E: ldloca.s 4 (UnityEngine.Vector3) IL_04A0: ldfld System.Single UnityEngine.Vector3::z IL_04A5: ldc.r4 0 IL_04AA: ldloca.s 4 (UnityEngine.Vector3) IL_04AC: ldfld System.Single UnityEngine.Vector3::x IL_04B1: neg IL_04B2: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04B7: ldloc.s 8 (System.Single) IL_04B9: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04C3: stloc.s 30 (UnityEngine.Vector3) IL_04C5: ldloc.3 IL_04C6: ldloca.s 5 (UnityEngine.Vector3) IL_04C8: ldfld System.Single UnityEngine.Vector3::z IL_04CD: ldc.r4 0 IL_04D2: ldloca.s 5 (UnityEngine.Vector3) IL_04D4: ldfld System.Single UnityEngine.Vector3::x IL_04D9: neg IL_04DA: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_04DF: ldloc.s 8 (System.Single) IL_04E1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_04E6: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_04EB: stloc.s 31 (UnityEngine.Vector3) IL_04ED: ldloc.s 30 (UnityEngine.Vector3) IL_04EF: ldloc.s 4 (UnityEngine.Vector3) IL_04F1: ldloc.s 31 (UnityEngine.Vector3) IL_04F3: ldloc.s 5 (UnityEngine.Vector3) IL_04F5: ldc.i4.1 IL_04F6: ldc.i4.1 IL_04F7: ldloca.s 32 (UnityEngine.Vector3) IL_04F9: ldloca.s 33 (UnityEngine.Vector3) IL_04FB: call static System.Void NetSegment::CalculateMiddlePoints(UnityEngine.Vector3 startPos, UnityEngine.Vector3 startDir, UnityEngine.Vector3 endPos, UnityEngine.Vector3 endDir, System.Boolean smoothStart, System.Boolean smoothEnd, UnityEngine.Vector3& middlePos1, UnityEngine.Vector3& middlePos2) IL_0500: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0502: ldloc.s 30 (UnityEngine.Vector3) IL_0504: ldloc.s 32 (UnityEngine.Vector3) IL_0506: ldloc.s 33 (UnityEngine.Vector3) IL_0508: ldloc.s 31 (UnityEngine.Vector3) IL_050A: call System.Void ColossalFramework.Math.Bezier3::.ctor(UnityEngine.Vector3 _a, UnityEngine.Vector3 _b, UnityEngine.Vector3 _c, UnityEngine.Vector3 _d) IL_050F: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_0511: ldc.r4 0.5 IL_0516: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_051B: stloc.s 35 (UnityEngine.Vector3) IL_051D: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_051F: ldc.r4 0.25 IL_0524: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0529: stloc.s 36 (UnityEngine.Vector3) IL_052B: ldloc.s 30 (UnityEngine.Vector3) IL_052D: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0532: ldloc.s 35 (UnityEngine.Vector3) IL_0534: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0539: ldloc.s 36 (UnityEngine.Vector3) IL_053B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0540: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0545: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_054A: stloc.s 36 (UnityEngine.Vector3) IL_054C: ldloca.s 34 (ColossalFramework.Math.Bezier3) IL_054E: ldc.r4 0.75 IL_0553: call UnityEngine.Vector3 ColossalFramework.Math.Bezier3::Position(System.Single t) IL_0558: stloc.s 37 (UnityEngine.Vector3) IL_055A: ldloc.s 31 (UnityEngine.Vector3) IL_055C: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0561: ldloc.s 35 (UnityEngine.Vector3) IL_0563: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0568: ldloc.s 37 (UnityEngine.Vector3) IL_056A: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_056F: call static UnityEngine.Vector2 ColossalFramework.Math.Line2::Offset(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p) IL_0574: call static UnityEngine.Vector3 UnityEngine.Vector2::op_Implicit(UnityEngine.Vector2 v) IL_0579: stloc.s 37 (UnityEngine.Vector3) IL_057B: ldloc.s 30 (UnityEngine.Vector3) IL_057D: stloc.s 38 (UnityEngine.Vector3) IL_057F: ldloc.s 31 (UnityEngine.Vector3) IL_0581: stloc.s 39 (UnityEngine.Vector3) IL_0583: ldloc.2 IL_0584: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0589: ldloc.s 30 (UnityEngine.Vector3) IL_058B: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0590: ldloc.s 38 (UnityEngine.Vector3) IL_0592: ldloc.s 36 (UnityEngine.Vector3) IL_0594: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0599: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_059E: ldloc.s 35 (UnityEngine.Vector3) IL_05A0: ldloc.s 36 (UnityEngine.Vector3) IL_05A2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05A7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05AC: ldloca.s 40 (System.Single) IL_05AE: ldloca.s 41 (System.Single) IL_05B0: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_05B5: brfalse => Label24 IL_05BA: ldloc.2 IL_05BB: ldloc.s 30 (UnityEngine.Vector3) IL_05BD: ldloc.2 IL_05BE: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05C3: ldloc.s 40 (System.Single) IL_05C5: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_05CA: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05CF: stloc.s 30 (UnityEngine.Vector3) IL_05D1: Label24 IL_05D1: ldloc.3 IL_05D2: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05D7: ldloc.s 31 (UnityEngine.Vector3) IL_05D9: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05DE: ldloc.s 39 (UnityEngine.Vector3) IL_05E0: ldloc.s 37 (UnityEngine.Vector3) IL_05E2: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05E7: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05EC: ldloc.s 35 (UnityEngine.Vector3) IL_05EE: ldloc.s 37 (UnityEngine.Vector3) IL_05F0: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_05F5: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_05FA: ldloca.s 40 (System.Single) IL_05FC: ldloca.s 41 (System.Single) IL_05FE: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0603: brfalse => Label25 IL_0608: ldloc.3 IL_0609: ldloc.s 31 (UnityEngine.Vector3) IL_060B: ldloc.3 IL_060C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0611: ldloc.s 40 (System.Single) IL_0613: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_0618: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_061D: stloc.s 31 (UnityEngine.Vector3) IL_061F: Label25 IL_061F: ldloc.s 38 (UnityEngine.Vector3) IL_0621: ldloc.s 36 (UnityEngine.Vector3) IL_0623: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0628: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_062D: ldloc.s 35 (UnityEngine.Vector3) IL_062F: ldloc.s 36 (UnityEngine.Vector3) IL_0631: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0636: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_063B: ldloc.s 39 (UnityEngine.Vector3) IL_063D: ldloc.s 37 (UnityEngine.Vector3) IL_063F: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0644: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0649: ldloc.s 35 (UnityEngine.Vector3) IL_064B: ldloc.s 37 (UnityEngine.Vector3) IL_064D: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0652: call static UnityEngine.Vector2 ColossalFramework.Math.VectorUtils::XZ(UnityEngine.Vector3 v) IL_0657: ldloca.s 40 (System.Single) IL_0659: ldloca.s 41 (System.Single) IL_065B: call static System.Boolean ColossalFramework.Math.Line2::Intersect(UnityEngine.Vector2 a, UnityEngine.Vector2 b, UnityEngine.Vector2 p, UnityEngine.Vector2 q, System.Single& u, System.Single& v) IL_0660: brfalse => Label26 IL_0665: ldloc.s 38 (UnityEngine.Vector3) IL_0667: ldloc.s 36 (UnityEngine.Vector3) IL_0669: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_066E: ldloc.s 35 (UnityEngine.Vector3) IL_0670: ldloc.s 38 (UnityEngine.Vector3) IL_0672: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0677: ldloc.s 40 (System.Single) IL_0679: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Multiply(UnityEngine.Vector3 a, System.Single d) IL_067E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0683: stloc.s 35 (UnityEngine.Vector3) IL_0685: Label26 IL_0685: ldloc.s 35 (UnityEngine.Vector3) IL_0687: ldloc.s 30 (UnityEngine.Vector3) IL_0689: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_068E: ldloca.s 42 (System.Single) IL_0690: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_0695: stloc.s 43 (UnityEngine.Vector3) IL_0697: ldloc.s 42 (System.Single) IL_0699: ldc.r4 8 IL_069E: div IL_069F: ldc.r4 0.01 IL_06A4: add IL_06A5: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_06AA: stloc.s 44 (System.Int32) IL_06AC: ldloc.s 42 (System.Single) IL_06AE: ldc.r4 0.5 IL_06B3: mul IL_06B4: ldloc.s 44 (System.Int32) IL_06B6: ldc.i4.8 IL_06B7: sub IL_06B8: conv.r4 IL_06B9: ldloc.s 12 (System.Boolean) IL_06BB: brfalse => Label27 IL_06C0: ldc.r4 -4 IL_06C5: br => Label28 IL_06CA: Label27 IL_06CA: ldc.r4 4 IL_06CF: Label28 IL_06CF: mul IL_06D0: add IL_06D1: stloc.s 45 (System.Single) IL_06D3: ldloc.s 44 (System.Int32) IL_06D5: brfalse => Label29 IL_06DA: ldloc.s 12 (System.Boolean) IL_06DC: brfalse => Label30 IL_06E1: ldloca.s 43 (UnityEngine.Vector3) IL_06E3: ldfld System.Single UnityEngine.Vector3::x IL_06E8: ldloca.s 43 (UnityEngine.Vector3) IL_06EA: ldfld System.Single UnityEngine.Vector3::z IL_06EF: neg IL_06F0: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_06F5: br => Label31 IL_06FA: Label30 IL_06FA: ldloca.s 43 (UnityEngine.Vector3) IL_06FC: ldfld System.Single UnityEngine.Vector3::x IL_0701: neg IL_0702: ldloca.s 43 (UnityEngine.Vector3) IL_0704: ldfld System.Single UnityEngine.Vector3::z IL_0709: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_070E: Label31 IL_070E: stloc.s 46 (System.Single) IL_0710: ldloc.s 30 (UnityEngine.Vector3) IL_0712: ldloca.s 43 (UnityEngine.Vector3) IL_0714: ldfld System.Single UnityEngine.Vector3::x IL_0719: ldloc.s 45 (System.Single) IL_071B: mul IL_071C: ldloca.s 43 (UnityEngine.Vector3) IL_071E: ldfld System.Single UnityEngine.Vector3::z IL_0723: ldloc.s 9 (System.Single) IL_0725: mul IL_0726: add IL_0727: ldc.r4 0 IL_072C: ldloca.s 43 (UnityEngine.Vector3) IL_072E: ldfld System.Single UnityEngine.Vector3::z IL_0733: ldloc.s 45 (System.Single) IL_0735: mul IL_0736: ldloca.s 43 (UnityEngine.Vector3) IL_0738: ldfld System.Single UnityEngine.Vector3::x IL_073D: ldloc.s 9 (System.Single) IL_073F: mul IL_0740: sub IL_0741: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0746: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_074B: stloc.s 47 (UnityEngine.Vector3) IL_074D: ldloc.s 12 (System.Boolean) IL_074F: brfalse => Label32 IL_0754: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0759: ldarg.2 IL_075A: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_075F: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0761: ldarg.1 IL_0762: ldloc.s 47 (UnityEngine.Vector3) IL_0764: ldloc.s 46 (System.Single) IL_0766: ldloc.s 44 (System.Int32) IL_0768: ldloc.s 10 (System.Int32) IL_076A: ldarg.2 IL_076B: ldfld System.UInt32 NetSegment::m_buildIndex IL_0770: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0775: pop IL_0776: br => Label33 IL_077B: Label32 IL_077B: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0780: ldarg.2 IL_0781: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0786: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0788: ldarg.1 IL_0789: ldloc.s 47 (UnityEngine.Vector3) IL_078B: ldloc.s 46 (System.Single) IL_078D: ldloc.s 44 (System.Int32) IL_078F: ldloc.s 10 (System.Int32) IL_0791: ldarg.2 IL_0792: ldfld System.UInt32 NetSegment::m_buildIndex IL_0797: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_079C: pop IL_079D: Label29 IL_079D: Label33 IL_079D: ldloc.s 31 (UnityEngine.Vector3) IL_079F: ldloc.s 35 (UnityEngine.Vector3) IL_07A1: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Subtraction(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_07A6: ldloca.s 42 (System.Single) IL_07A8: call static UnityEngine.Vector3 ColossalFramework.Math.VectorUtils::NormalizeXZ(UnityEngine.Vector3 v, System.Single& len) IL_07AD: stloc.s 43 (UnityEngine.Vector3) IL_07AF: ldloc.s 42 (System.Single) IL_07B1: ldc.r4 8 IL_07B6: div IL_07B7: ldc.r4 0.01 IL_07BC: add IL_07BD: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_07C2: stloc.s 44 (System.Int32) IL_07C4: ldloc.s 42 (System.Single) IL_07C6: ldc.r4 0.5 IL_07CB: mul IL_07CC: ldloc.s 44 (System.Int32) IL_07CE: ldc.i4.8 IL_07CF: sub IL_07D0: conv.r4 IL_07D1: ldloc.s 12 (System.Boolean) IL_07D3: brfalse => Label34 IL_07D8: ldc.r4 -4 IL_07DD: br => Label35 IL_07E2: Label34 IL_07E2: ldc.r4 4 IL_07E7: Label35 IL_07E7: mul IL_07E8: add IL_07E9: stloc.s 45 (System.Single) IL_07EB: ldloc.s 44 (System.Int32) IL_07ED: brfalse => Label36 IL_07F2: ldloc.s 12 (System.Boolean) IL_07F4: brfalse => Label37 IL_07F9: ldloca.s 43 (UnityEngine.Vector3) IL_07FB: ldfld System.Single UnityEngine.Vector3::x IL_0800: ldloca.s 43 (UnityEngine.Vector3) IL_0802: ldfld System.Single UnityEngine.Vector3::z IL_0807: neg IL_0808: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_080D: br => Label38 IL_0812: Label37 IL_0812: ldloca.s 43 (UnityEngine.Vector3) IL_0814: ldfld System.Single UnityEngine.Vector3::x IL_0819: neg IL_081A: ldloca.s 43 (UnityEngine.Vector3) IL_081C: ldfld System.Single UnityEngine.Vector3::z IL_0821: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0826: Label38 IL_0826: stloc.s 48 (System.Single) IL_0828: ldloc.s 35 (UnityEngine.Vector3) IL_082A: ldloca.s 43 (UnityEngine.Vector3) IL_082C: ldfld System.Single UnityEngine.Vector3::x IL_0831: ldloc.s 45 (System.Single) IL_0833: mul IL_0834: ldloca.s 43 (UnityEngine.Vector3) IL_0836: ldfld System.Single UnityEngine.Vector3::z IL_083B: ldloc.s 9 (System.Single) IL_083D: mul IL_083E: add IL_083F: ldc.r4 0 IL_0844: ldloca.s 43 (UnityEngine.Vector3) IL_0846: ldfld System.Single UnityEngine.Vector3::z IL_084B: ldloc.s 45 (System.Single) IL_084D: mul IL_084E: ldloca.s 43 (UnityEngine.Vector3) IL_0850: ldfld System.Single UnityEngine.Vector3::x IL_0855: ldloc.s 9 (System.Single) IL_0857: mul IL_0858: sub IL_0859: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_085E: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0863: stloc.s 49 (UnityEngine.Vector3) IL_0865: ldloc.s 12 (System.Boolean) IL_0867: brfalse => Label39 IL_086C: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0871: ldarg.2 IL_0872: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0877: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0879: ldarg.1 IL_087A: ldloc.s 49 (UnityEngine.Vector3) IL_087C: ldloc.s 48 (System.Single) IL_087E: ldloc.s 44 (System.Int32) IL_0880: ldloc.s 10 (System.Int32) IL_0882: ldarg.2 IL_0883: ldfld System.UInt32 NetSegment::m_buildIndex IL_0888: ldc.i4.1 IL_0889: add IL_088A: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_088F: pop IL_0890: br => Label40 IL_0895: Label39 IL_0895: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_089A: ldarg.2 IL_089B: ldflda System.UInt16 NetSegment::m_blockEndRight IL_08A0: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_08A2: ldarg.1 IL_08A3: ldloc.s 49 (UnityEngine.Vector3) IL_08A5: ldloc.s 48 (System.Single) IL_08A7: ldloc.s 44 (System.Int32) IL_08A9: ldloc.s 10 (System.Int32) IL_08AB: ldarg.2 IL_08AC: ldfld System.UInt32 NetSegment::m_buildIndex IL_08B1: ldc.i4.1 IL_08B2: add IL_08B3: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_08B8: pop IL_08B9: Label36 IL_08B9: Label40 IL_08B9: br => Label41 IL_08BE: Label2 IL_08BE: ldloc.s 8 (System.Single) IL_08C0: ldloc.s 9 (System.Single) IL_08C2: add IL_08C3: stloc.s 8 (System.Single) IL_08C5: ldloca.s 51 (UnityEngine.Vector2) IL_08C7: ldloca.s 3 (UnityEngine.Vector3) IL_08C9: ldfld System.Single UnityEngine.Vector3::x IL_08CE: ldloca.s 2 (UnityEngine.Vector3) IL_08D0: ldfld System.Single UnityEngine.Vector3::x IL_08D5: sub IL_08D6: ldloca.s 3 (UnityEngine.Vector3) IL_08D8: ldfld System.Single UnityEngine.Vector3::z IL_08DD: ldloca.s 2 (UnityEngine.Vector3) IL_08DF: ldfld System.Single UnityEngine.Vector3::z IL_08E4: sub IL_08E5: call System.Void UnityEngine.Vector2::.ctor(System.Single x, System.Single y) IL_08EA: ldloca.s 51 (UnityEngine.Vector2) IL_08EC: call System.Single UnityEngine.Vector2::get_magnitude() IL_08F1: stloc.s 50 (System.Single) IL_08F3: ldloc.s 50 (System.Single) IL_08F5: ldc.r4 8 IL_08FA: div IL_08FB: ldc.r4 0.1 IL_0900: add IL_0901: call static System.Int32 UnityEngine.Mathf::FloorToInt(System.Single f) IL_0906: stloc.s 52 (System.Int32) IL_0908: ldloc.s 52 (System.Int32) IL_090A: ldc.i4.8 IL_090B: ble => Label42 IL_0910: ldloc.s 52 (System.Int32) IL_0912: ldc.i4.1 IL_0913: add IL_0914: ldc.i4.1 IL_0915: shr IL_0916: br => Label43 IL_091B: Label42 IL_091B: ldloc.s 52 (System.Int32) IL_091D: Label43 IL_091D: stloc.s 53 (System.Int32) IL_091F: ldloc.s 52 (System.Int32) IL_0921: ldc.i4.8 IL_0922: ble => Label44 IL_0927: ldloc.s 52 (System.Int32) IL_0929: ldc.i4.1 IL_092A: shr IL_092B: br => Label45 IL_0930: Label44 IL_0930: ldc.i4.0 IL_0931: Label45 IL_0931: stloc.s 54 (System.Int32) IL_0933: ldloc.s 53 (System.Int32) IL_0935: ldc.i4.0 IL_0936: ble => Label46 IL_093B: ldloca.s 4 (UnityEngine.Vector3) IL_093D: ldfld System.Single UnityEngine.Vector3::x IL_0942: ldloca.s 4 (UnityEngine.Vector3) IL_0944: ldfld System.Single UnityEngine.Vector3::z IL_0949: neg IL_094A: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_094F: stloc.s 55 (System.Single) IL_0951: ldloc.2 IL_0952: ldloca.s 4 (UnityEngine.Vector3) IL_0954: ldfld System.Single UnityEngine.Vector3::x IL_0959: ldc.r4 32 IL_095E: mul IL_095F: ldloca.s 4 (UnityEngine.Vector3) IL_0961: ldfld System.Single UnityEngine.Vector3::z IL_0966: ldloc.s 8 (System.Single) IL_0968: mul IL_0969: sub IL_096A: ldc.r4 0 IL_096F: ldloca.s 4 (UnityEngine.Vector3) IL_0971: ldfld System.Single UnityEngine.Vector3::z IL_0976: ldc.r4 32 IL_097B: mul IL_097C: ldloca.s 4 (UnityEngine.Vector3) IL_097E: ldfld System.Single UnityEngine.Vector3::x IL_0983: ldloc.s 8 (System.Single) IL_0985: mul IL_0986: add IL_0987: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_098C: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0991: stloc.s 56 (UnityEngine.Vector3) IL_0993: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0998: ldarg.2 IL_0999: ldflda System.UInt16 NetSegment::m_blockStartLeft IL_099E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_09A0: ldarg.1 IL_09A1: ldloc.s 56 (UnityEngine.Vector3) IL_09A3: ldloc.s 55 (System.Single) IL_09A5: ldloc.s 53 (System.Int32) IL_09A7: ldloc.s 10 (System.Int32) IL_09A9: ldarg.2 IL_09AA: ldfld System.UInt32 NetSegment::m_buildIndex IL_09AF: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_09B4: pop IL_09B5: ldloc.2 IL_09B6: ldloca.s 4 (UnityEngine.Vector3) IL_09B8: ldfld System.Single UnityEngine.Vector3::x IL_09BD: ldloc.s 53 (System.Int32) IL_09BF: ldc.i4.4 IL_09C0: sub IL_09C1: conv.r4 IL_09C2: mul IL_09C3: ldc.r4 8 IL_09C8: mul IL_09C9: ldloca.s 4 (UnityEngine.Vector3) IL_09CB: ldfld System.Single UnityEngine.Vector3::z IL_09D0: ldloc.s 8 (System.Single) IL_09D2: mul IL_09D3: add IL_09D4: ldc.r4 0 IL_09D9: ldloca.s 4 (UnityEngine.Vector3) IL_09DB: ldfld System.Single UnityEngine.Vector3::z IL_09E0: ldloc.s 53 (System.Int32) IL_09E2: ldc.i4.4 IL_09E3: sub IL_09E4: conv.r4 IL_09E5: mul IL_09E6: ldc.r4 8 IL_09EB: mul IL_09EC: ldloca.s 4 (UnityEngine.Vector3) IL_09EE: ldfld System.Single UnityEngine.Vector3::x IL_09F3: ldloc.s 8 (System.Single) IL_09F5: mul IL_09F6: sub IL_09F7: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_09FC: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A01: stloc.s 56 (UnityEngine.Vector3) IL_0A03: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0A08: ldarg.2 IL_0A09: ldflda System.UInt16 NetSegment::m_blockStartRight IL_0A0E: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0A10: ldarg.1 IL_0A11: ldloc.s 56 (UnityEngine.Vector3) IL_0A13: ldloc.s 55 (System.Single) IL_0A15: ldc.r4 3.141593 IL_0A1A: add IL_0A1B: ldloc.s 53 (System.Int32) IL_0A1D: ldloc.s 10 (System.Int32) IL_0A1F: ldarg.2 IL_0A20: ldfld System.UInt32 NetSegment::m_buildIndex IL_0A25: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0A2A: pop IL_0A2B: Label46 IL_0A2B: ldloc.s 54 (System.Int32) IL_0A2D: ldc.i4.0 IL_0A2E: ble => Label47 IL_0A33: ldloc.s 50 (System.Single) IL_0A35: ldloc.s 52 (System.Int32) IL_0A37: conv.r4 IL_0A38: ldc.r4 8 IL_0A3D: mul IL_0A3E: sub IL_0A3F: stloc.s 57 (System.Single) IL_0A41: ldloca.s 5 (UnityEngine.Vector3) IL_0A43: ldfld System.Single UnityEngine.Vector3::x IL_0A48: ldloca.s 5 (UnityEngine.Vector3) IL_0A4A: ldfld System.Single UnityEngine.Vector3::z IL_0A4F: neg IL_0A50: call static System.Single UnityEngine.Mathf::Atan2(System.Single y, System.Single x) IL_0A55: stloc.s 58 (System.Single) IL_0A57: ldloc.3 IL_0A58: ldloca.s 5 (UnityEngine.Vector3) IL_0A5A: ldfld System.Single UnityEngine.Vector3::x IL_0A5F: ldc.r4 32 IL_0A64: ldloc.s 57 (System.Single) IL_0A66: add IL_0A67: mul IL_0A68: ldloca.s 5 (UnityEngine.Vector3) IL_0A6A: ldfld System.Single UnityEngine.Vector3::z IL_0A6F: ldloc.s 8 (System.Single) IL_0A71: mul IL_0A72: sub IL_0A73: ldc.r4 0 IL_0A78: ldloca.s 5 (UnityEngine.Vector3) IL_0A7A: ldfld System.Single UnityEngine.Vector3::z IL_0A7F: ldc.r4 32 IL_0A84: ldloc.s 57 (System.Single) IL_0A86: add IL_0A87: mul IL_0A88: ldloca.s 5 (UnityEngine.Vector3) IL_0A8A: ldfld System.Single UnityEngine.Vector3::x IL_0A8F: ldloc.s 8 (System.Single) IL_0A91: mul IL_0A92: add IL_0A93: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0A98: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0A9D: stloc.s 59 (UnityEngine.Vector3) IL_0A9F: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0AA4: ldarg.2 IL_0AA5: ldflda System.UInt16 NetSegment::m_blockEndLeft IL_0AAA: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0AAC: ldarg.1 IL_0AAD: ldloc.s 59 (UnityEngine.Vector3) IL_0AAF: ldloc.s 58 (System.Single) IL_0AB1: ldloc.s 54 (System.Int32) IL_0AB3: ldloc.s 10 (System.Int32) IL_0AB5: ldarg.2 IL_0AB6: ldfld System.UInt32 NetSegment::m_buildIndex IL_0ABB: ldc.i4.1 IL_0ABC: add IL_0ABD: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0AC2: pop IL_0AC3: ldloc.3 IL_0AC4: ldloca.s 5 (UnityEngine.Vector3) IL_0AC6: ldfld System.Single UnityEngine.Vector3::x IL_0ACB: ldloc.s 54 (System.Int32) IL_0ACD: ldc.i4.4 IL_0ACE: sub IL_0ACF: conv.r4 IL_0AD0: ldc.r4 8 IL_0AD5: mul IL_0AD6: ldloc.s 57 (System.Single) IL_0AD8: add IL_0AD9: mul IL_0ADA: ldloca.s 5 (UnityEngine.Vector3) IL_0ADC: ldfld System.Single UnityEngine.Vector3::z IL_0AE1: ldloc.s 8 (System.Single) IL_0AE3: mul IL_0AE4: add IL_0AE5: ldc.r4 0 IL_0AEA: ldloca.s 5 (UnityEngine.Vector3) IL_0AEC: ldfld System.Single UnityEngine.Vector3::z IL_0AF1: ldloc.s 54 (System.Int32) IL_0AF3: ldc.i4.4 IL_0AF4: sub IL_0AF5: conv.r4 IL_0AF6: ldc.r4 8 IL_0AFB: mul IL_0AFC: ldloc.s 57 (System.Single) IL_0AFE: add IL_0AFF: mul IL_0B00: ldloca.s 5 (UnityEngine.Vector3) IL_0B02: ldfld System.Single UnityEngine.Vector3::x IL_0B07: ldloc.s 8 (System.Single) IL_0B09: mul IL_0B0A: sub IL_0B0B: newobj System.Void UnityEngine.Vector3::.ctor(System.Single x, System.Single y, System.Single z) IL_0B10: call static UnityEngine.Vector3 UnityEngine.Vector3::op_Addition(UnityEngine.Vector3 a, UnityEngine.Vector3 b) IL_0B15: stloc.s 59 (UnityEngine.Vector3) IL_0B17: call static ZoneManager ColossalFramework.Singleton`1::get_instance() IL_0B1C: ldarg.2 IL_0B1D: ldflda System.UInt16 NetSegment::m_blockEndRight IL_0B22: ldloca.s 1 (ColossalFramework.Math.Randomizer) IL_0B24: ldarg.1 IL_0B25: ldloc.s 59 (UnityEngine.Vector3) IL_0B27: ldloc.s 58 (System.Single) IL_0B29: ldc.r4 3.141593 IL_0B2E: add IL_0B2F: ldloc.s 54 (System.Int32) IL_0B31: ldloc.s 10 (System.Int32) IL_0B33: ldarg.2 IL_0B34: ldfld System.UInt32 NetSegment::m_buildIndex IL_0B39: ldc.i4.1 IL_0B3A: add IL_0B3B: callvirt System.Boolean ZoneManager::CreateBlock(System.UInt16& block, ColossalFramework.Math.Randomizer& randomizer, System.UInt16 segmentID, UnityEngine.Vector3 position, System.Single angle, System.Int32 rows, System.Int32 distance, System.UInt32 buildIndex) IL_0B40: pop IL_0B41: // end original IL_0B41: Label41 IL_0B41: Label47 IL_0B41: Label0 IL_0B41: ret DONE